Прием логов и добавление их в Zabbix метрики

Настало время записать настройку позволяющую принимать логи на наш Zabbix сервер (как минимум) и делать триггеры на их основе (для продвинутых). Пройдемте под кат

Для начала убедимся что у нас установлен Rsyslog и что он запущен и работает

dpkg -l | grep rsyslog #проверка наличия установленного пакета
apt update && sudo apt install rsyslog #установка пакета если его нет
systemctl status rsyslog #проверить что служба запущена
systemctl enable rsyslog #включить службу

Теперь правим конфигурационный файл rsysloog

mcedit /etc/rsyslog.conf

Раскомментируем строчки:
module(load=»imudp») #модуль для приема логов по udp.
input(type=»imudp» port=»514″) #udp порт который будет слушать наш rsyslog.

Добавим в конец конфига rsyslog следующую строку
if $fromhost-ip contains ‘IP-address-your-log-source’ then /var/log/your-log-source.log
Здесь говориться если у хоста ip=IP-address-your-log-source то его логи записываем в файл /var/log/your-log-source.log

systemctl restart rsyslog #рестартуем службу rsyslog
ufw allow from IP-address-your-log-source to any port 514 proto udp #не забудем добавить правило файрвола разрешающее приемку логов от вашего источника

Дальше настроить отправку логов с вашего источника (например микротика) на адрес заббикс сервера. Логи будут приниматься rsyslog и складываться в отдельный файл

Дальше создаем Item в Zabbix Server чтобы собирать записи из лога в сам Заббикс

  • Имя элемента данных (называем его по имени клиента).
  • Тип Zabbix агент (активный) это обязательно.
  • Ключ — log[/var/log/your-log-source.log,,,10000,skip,,] – указываем путь к файлу который будем мониторить и считывать с него данные.
  • Тим информации – Журнал лог.

Не забудем настроить права доступа к этому файлу чтобы заббикс мог его читать

ls -la /var/log/your-log-source.log.log #проверим что сейчас с правами видим что группа adm может читать этот файл
-rw-r----- 1 syslog adm 971 Jul 27 21:08 /var/log/your-log-source.log.log 
usermod -a -G adm zabbix # Добавим пользователя zabbix в группу adm
systemctl restart zabbix-agent # рестартуем службу агента

В итоге у самого Заббикс-сервера должна появится еще одна метрика под названием как мы его назвали, и в истории будут отображаться логи с источника

Далее можно делать триггеры — насколько хватит фантазии и усидчивости.

Например такая задача: получать алерты каждый раз когда кто-нибудь входит в Микротик. Решить ее можно следующим образом

  • Создаем отдельный Item type=log, Key = log[/var/log/your-log-source.log,»account»,,1000,skip,,] в который собираем исключительно логи связанные с топиком Account (т.е. все строки, где найдется входение слова «account».
  • Создаем триггер с фукнцией find. Удобно можно его сделать через конструктор выражений
    • Name: Назовите как угодно, чтоб потом вам самим было понятно о чем речь
    • Severity: Information
    • Operational data: {ITEM.LASTVALUE}
    • Expression: find(/имя-заббикс-сервера/log[/var/log/your-log-source,»account»,,1000,skip,,],,,»logged in»)=1
    • Allow manual close: yes
    • Enabled: yes

Ключевое тут — функция поиска по Item вашего сервера, которая ищет вхождение «logged in» за последние 5 минут в этом Item. И будет самозакрываться. Но в алерт к нам будет прилетать информация об этом вместе с строкой Operational data, по которой он сработал — т.е. будет видно кто куда и когда вошел

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

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

Post Navigation

Яндекс.Метрика