Прежде всего, спасибо за любые советы и ваше время.Журналы и журналы 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"
}
}
Похоже, что вы можете выбирать различные данные, установив тип и делать, если тип еще этот тип. Но если они исходят из того же источника, как я могу указать разные типы?
:) Спасибо!
Удивительно, я попробую это. Спасибо. Знаете ли вы, можете ли я иметь несколько выходов, как это? Я сегодня возился с ним днем, когда у меня было время. (Тем не менее, чтобы быть успешным, ха-ха.) <Выход 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 –
Да, вы можете иметь несколько выходов в своей конфигурации, он будет копировать каждый журнал на каждый вывод, вы также можете делать то же самое со входами, однако все фильтры запускаются против каждого журнала, который вы проходите через –
. Также имейте в виду , что logstash выберет любой файл в каталоге config, поэтому, если у вас есть копия, он будет запускать их дважды и т. д., вы можете разделить ваши настройки на файл, например 00_inputs.conf, 01_filters.conf, 02_outputs.конф, число очень важно, как он читает их в порядке –