FLUENTD отправка Syslog и логов Nginx в Opensearch

В данной статье рассмотрим пример отправки Syslog и логов Nginx в Opensearch с помощью fluentd и визуализацию отправленных данных в Opensearch-dashboard

Для отправки syslog устанавливаем rsyslog:

apt install rsyslog

Настраиваем отправку системных логов в opensearch. В /etc/rsyslog.conf добавляем следующую строку:

*.* @127.0.0.1:5140

Необходимо предоставить возможность fluentd читать логи Nginx. По умолчанию логи создавались от пользователя www-data и группой adm. Доступ на чтение имел только владелец www-data и пользователи группы adm. Остальные пользователи не имели доступ.
Fluentd запускается и работает от пользователя _fluentd
В данном примере для разрешение доступа к логам добавим пользователю _fluentd группу adm:

usermod -a -G adm _fluentd

Переходим к настройке fluentd. Открываем на редактирование файл /etc/fluent/fluentd.conf:

#Настраиваем отправку логов с тегом opn.** в opensearch
<match opn.**>
@type opensearch
host localhost
port 9200
logstash_format true
logstash_prefix ${tag}
</match>

#Поднимаем порт 5140 для приема логов от rsyslog
<source>
@type syslog
port 5140
bind 0.0.0.0
tag opn.system
</source>

#Настраиваем парсинг логов Nginx
<source>
@type tail
pos_file /var/log/fluent/fluentd.pos
<parse>
@type nginx
expression /^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)>
time_format %d/%b/%Y:%H:%M:%S %z
#Указываем типы данных
types code:integer,size:integer
</parse>
read_from_head true
path /var/log/nginx/access.log
tag opn.nginx.access
</source>

Для просмотра логов в opensearch-dashboard необходимо создать шаблон индекса Dashboards Management -> Index patterns -> Create index pattern.
Для логов Nginx создаем шаблон индекса с названием opn.nginx*
Для системных логов создаем шаблон индекса с названием opn.system*

Далее переходим в раздел Discover и выбираем нужный шаблон индекса для просмотра логов

Понравилось? Расскажи о нас друзьям :)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *