Logsta sh - фильтрация системных журналов по ключевому слову - PullRequest
0 голосов
/ 07 мая 2020

Я новичок в ELK, у меня есть logsta sh, в котором хранятся системные журналы, созданные с нескольких сетевых устройств. Все типы событий помечаются на одном объекте (к сожалению), и меня интересует только хранение журналов с арендой DHCP. Ниже приведен образец журналов, сохраняемых logsta sh

host:10.10.2.21 tags:_grokparsefailure type:dhcp @timestamp:May 6, 2020 @ 22:50:35.176 message:<190>May 6 22:50:33 10.7.24.13 Kiwi_Syslog_Server 2020-05-07 02:50:35 MOPS-E200E-CE-1 %%01SYSTATE/6/HEALTH(l): cpu=23 totalmemory=390127084 curmemory=176017096 @version:1 _id:gjYK7XEBLIinXt5dutFF _type:_doc _index:dhcp-2020.05.07-001 _score: -
host:10.10.2.21 tags:_grokparsefailure type:dhcp @timestamp:May 6, 2020 @ 22:50:33.727 message:<186>May 6 22:50:32 10.6.5.2 Kiwi_Syslog_Server May 7 2020 02:50:33 Data_Center-S9306-AS-1 OSPF/2/IFAUTFAIL:OID 1.3.6.1.2.1.14.16.2.6: A packet is received on a non-virtual interface from a router whose authentication key or authentication type conflicts with the local authentication key or authentication type. (IfIpAddress=10.4.0.254, AddressLessIf=0, ProcessId=3, RouterId=10.6.64.11, PacketSrc=10.4.0.44, ConfigErrorType=5, PacketType=1, InstanceName=) @version:1 _id:WzYK7XEBLIinXt5dtMzM _type:_doc _index:dhcp-2020.05.07-001 _score: -
host:10.10.2.21 tags:_grokparsefailure type:dhcp @timestamp:May 6, 2020 @ 22:50:32.478 message:<188>May 6 22:50:31 10.7.32.7 Kiwi_Syslog_Server date=2020-05-06 time=22:50:32 devname=MOTP_GT-FS248D-CE-7 device_id=S248DN3X17000508 log_id=0103034134 type=event subtype=system pri=warning vd=root user="alertd" msg="[First Event] TEMPERATURE_SENSOR_1 (49.0C) cleared warning threshold of (50.0C)." @version:1 _id:4jYK7XEBLIinXt5dsMg6 _type:_doc _index:dhcp-2020.05.07-001 _score: -
message:<134>May 6 22:52:29 10.7.24.23 Kiwi_Syslog_Server May 6 22:52:30 National-Trust-CE-1 PRESSDHCPSERVER assigned 172.18.20.24 to E8:93:09:CC:2A:C6 type:dhcp host:10.10.2.21 @version:1 @timestamp:May 6, 2020 @ 22:52:30.528 _id:jjgM7XEBLIinXt5dfFvH _type:_doc _index:dhcp-2020.05.07-001 _score: -

. Я хочу сохранить только последнюю строку журнала, содержащую информацию DHCP. Я заметил, что в журналах с информацией DHCP есть слово «назначено», поэтому я ищу способ для logsta sh искать слово «назначен» и сохранять только эту строку журнала.

Ниже моя конфигурация для logsta sh

input {
  udp  {
    type => "dhcp"
    port => "518"
 }
}


filter {
 if [type] == "dhcp" {
   grok {
        match => {
            "message" => "assigned"
        }
    }

 }
}

output {
if [type] == "dhcp" {
  elasticsearch { hosts => ["localhost:9200"] 
  index => "dhcp-%{+yyyy.MM.dd}-001"
}
}
}

Не могли бы вы мне помочь, большое спасибо

1 Ответ

0 голосов
/ 27 мая 2020

Привет Нарендра Райкумар.

Я не уверен на 100%, что получил ваш вопрос, поэтому, пожалуйста, исправьте меня, если я ошибаюсь, и я отредактирую свой ответ.

Вы используете предоставленный logstash.conf файл, и вы получите в elasti c поиск в строках выше, которые также включают события, которые вам не интересны, и вы хотите, чтобы ES сохранял только те события, которые выглядят как последняя строка.

Если это так. правильно, вы можете заметить, что все другие события, кроме последней строки, имеют tag, называемое _grokparsefailure. это потому, что они действительно не включают ключевое слово «назначенное», поэтому они не являются «совпадением».

Просто измените раздел вывода logstash.conf соответствующим образом, и ненужные журналы будут удалены:

input {
    udp  {
        type => "dhcp"
        port => "518"
    }
}

filter {
    if [type] == "dhcp" {
        grok {
            match => {"message" => "assigned"}
        }
    }
}

output {
    if [type] == "dhcp" and "_grokparsefailure" not in [tags] {
        elasticsearch { 
            hosts => ["localhost:9200"] 
            index => "dhcp-%{+yyyy.MM.dd}-001"
        }
    }
}
...