2015-04-17 2 views
0

Прежде всего, спасибо за любые советы и ваше время.Журналы и журналы IIS

Недавно я установил стек Elk для компании, над которой я только начал работать. (Это мой первый опыт использования Logstash и Nxlog.) Я бы хотел, чтобы отправить журналы IIS и EventLogs с одного и того же веб-сервера в logstash с помощью nxlog.

Я просто не понимаю, как отправлять два типа журналов из одного источника, и logstash.conf правильно фильтровать эти данные.

Это мой nxlog.conf

## This is a sample configuration file. See the nxlog reference manual about the 
## configuration options. It should be installed locally and is also available 
## online at http://nxlog.org/nxlog-docs/en/nxlog-reference-manual.html 

## Please set the ROOT to the folder your nxlog was installed into, 
## otherwise it will not start. 

#define ROOT C:\Program Files\nxlog 
define ROOT C:\Program Files (x86)\nxlog 

Moduledir %ROOT%\modules 
CacheDir %ROOT%\data 
Pidfile %ROOT%\data\nxlog.pid 
SpoolDir %ROOT%\data 
LogFile %ROOT%\data\nxlog.log 

<Extension json> 
    Module xm_json 
</Extension> 
<Input iis_1> 
     Module im_file 
     File "F:\inetpub\logs\LogFiles\W3SVC1\u_ex*.log" 
    ReadFromLast True 
    SavePos True 
    Exec if $raw_event =~ /^#/ drop(); 
</Input> 
<Input iis_2> 
     Module im_file 
     File "F:\inetpub\logs\LogFiles\W3SVC2\u_ex*.log" 
    ReadFromLast True 
    SavePos True 
    Exec if $raw_event =~ /^#/ drop(); 
</Input> 
<Input iis_4> 
     Module im_file 
     File "F:\inetpub\logs\LogFiles\W3SVC4\u_ex*.log" 
    ReadFromLast True 
    SavePos True 
    Exec if $raw_event =~ /^#/ drop(); 
</Input> 
<Input eventlog> 
     Module im_msvistalog 
     Exec $EventReceivedTime = integer($EventReceivedTime)/1000000; to_json(); 
</Input> 
<Output out_iis> 
    Module om_tcp 
    Host 10.191.132.86 
    Port 5555 
    OutputType LineBased 
</Output> 
<Route 1> 
    Path iis_1, iis_2, iis_4, eventlog=> out_iis 
</Route> 

Мой текущий logstash.conf

input { 
     tcp { 
       type => "iis" 
       port => 5555 
       host => "10.191.132.86" 
     } 
} 
filter { 
    if [type] == "iis" { 
     grok { 
      match => ["@message", "%{TIMESTAMP_ISO8601:timestamp} %{IPORHOST:hostip} %{WORD:method} %{URIPATH:page} %{NOTSPACE:query} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clientip} %{NOTSPACE:useragent} %{NOTSPACE:referrer} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:scstatus} %{NUMBER:timetaken}"] 
     } 
    } 
} 
output { 
    elasticsearch { 
    protocol => "http" 
     host => "10.191.132.86" 
     port => "9200" 
    } 
} 

Похоже, что вы можете выбирать различные данные, установив тип и делать, если тип еще этот тип. Но если они исходят из того же источника, как я могу указать разные типы?

:) Спасибо!

ответ

0

способ сделать это фильтр с известным входом записи в каждом журнале, а также не существует в другом, например, [cs_bytes и т.д.]:

например,

if [iisfield] { 
    mark type as IIS 
else 
    mark type as EventLog 
} 

Я написал IIS и журнала событий агента, который захватывает журналы для Logit.io они уже могут делать все, что вы уже хотите

+0

Удивительно, я попробую это. Спасибо. Знаете ли вы, можете ли я иметь несколько выходов, как это? Я сегодня возился с ним днем, когда у меня было время. (Тем не менее, чтобы быть успешным, ха-ха.) <Выход out_iis> Module om_tcp Хост 10.191.132.86 Порт 5555 OutputType LineBased <Выход> out_events \t Module om_tcp \t \t хозяин 10.191.132.86 \t \t Порт 5556 Путь iis_1, iis_2, iis_4 => out_iis \t Путь даже tlog => out_iis2

+0

Да, вы можете иметь несколько выходов в своей конфигурации, он будет копировать каждый журнал на каждый вывод, вы также можете делать то же самое со входами, однако все фильтры запускаются против каждого журнала, который вы проходите через –

+0

. Также имейте в виду , что logstash выберет любой файл в каталоге config, поэтому, если у вас есть копия, он будет запускать их дважды и т. д., вы можете разделить ваши настройки на файл, например 00_inputs.conf, 01_filters.conf, 02_outputs.конф, число очень важно, как он читает их в порядке –

1

NXLog устанавливает поле SourceModuleName со значением iis_1, iis_2 и т. д. Вместо этого вы можете использовать это.

+0

Спасибо за этот отзыв, я искал пример синтаксиса, используя это, и я ничего не мог найти. (По крайней мере это было ясно.) У вас есть небольшой пример? –

Смежные вопросы