LINUX.ORG.RU

История изменений

Исправление Nurmukh, (текущая версия) :

А попробуй свои регулярки проверить на сайте regex101.com.

Также в частности, важно понимать, что «все украдено до нас», например данные регулярки наверное, уже давно распарсены и находятся в Elasticsearch, Filebeat.

Я в свое время сильно упарывался по Postfix и помню как настраивал ElasticSearch как централизованное хранилище логов с множества Postfix серверов. Ну вот точно помню что регулярки уже были готовые. Rsyslog тоже вроде умеют в эти регулярки.

Вот загуглил и нашел такой пайплайн. попробуй регулярку отсюда.

PUT _ingest/pipeline/postfix-parser-pipeline
{
  "description": "Parses standard Postfix maillogs",
  "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": [
          "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} postfix/%{WORD:postfix_component}\\[%{POSINT:postfix_pid}\\]: %{HEX:postfix_queue_id}: client=%{DATA:postfix_client_hostname}\\[%{IP:postfix_client_ip}\\]",
          "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} postfix/%{WORD:postfix_component}\\[%{POSINT:postfix_pid}\\]: %{HEX:postfix_queue_id}: from=<%{DATA:postfix_from}>, size=%{POSINT:postfix_size}, nrcpt=%{POSINT:postfix_recipient_count}",
          "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} postfix/%{WORD:postfix_component}\\[%{POSINT:postfix_pid}\\]: %{HEX:postfix_queue_id}: to=<%{DATA:postfix_to}>, relay=%{DATA:postfix_relay}, delay=%{NUMBER:postfix_delay:float}, delays=%{DATA:postfix_delays}, dsn=%{DATA:postfix_dsn}, status=%{WORD:postfix_status}"
        ],
        "ignore_missing": true
      }
    },
    {
      "date": {
        "field": "syslog_timestamp",
        "formats": ["MMM  d HH:mm:ss", "MMM dd HH:mm:ss"],
        "target_field": "@timestamp"
      }
    }
  ]
}

Исходная версия Nurmukh, :

А попробуй свои регулярки проверить на сайте regex101.com.

Также в частности, важно понимать, что «все украдено до нас», например данные регулярки наверное, уже давно распарсены и находятся в Elasticsearch, Filebeat.

Я в свое время сильно упарывался по Postfix и помню как настраивал ElasticSearch как централизованное хранилище логов с множества Postfix серверов. Ну вот точно помню что регулярки уже были готовые. Rsyslog тоже вроде умеют в эти регулярки.

Вот загуглил и нашел такой пайплайн. попробуй регулярку отсюда.

PUT _ingest/pipeline/postfix-parser-pipeline { «description»: «Parses standard Postfix maillogs», «processors»: [ { «grok»: { «field»: «message», «patterns»: [ «%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} postfix/%{WORD:postfix_component}\[%{POSINT:postfix_pid}\]: %{HEX:postfix_queue_id}: client=%{DATA:postfix_client_hostname}\[%{IP:postfix_client_ip}\]», «%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} postfix/%{WORD:postfix_component}\[%{POSINT:postfix_pid}\]: %{HEX:postfix_queue_id}: from=<%{DATA:postfix_from}>, size=%{POSINT:postfix_size}, nrcpt=%{POSINT:postfix_recipient_count}», «%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} postfix/%{WORD:postfix_component}\[%{POSINT:postfix_pid}\]: %{HEX:postfix_queue_id}: to=<%{DATA:postfix_to}>, relay=%{DATA:postfix_relay}, delay=%{NUMBER:postfix_delay:float}, delays=%{DATA:postfix_delays}, dsn=%{DATA:postfix_dsn}, status=%{WORD:postfix_status}» ], «ignore_missing»: true } }, { «date»: { «field»: «syslog_timestamp», «formats»: [«MMM d HH:mm:ss», «MMM dd HH:mm:ss»], «target_field»: «@timestamp» } } ] }