====== Поиск важных событий в syslog ====== ===== Реклама ===== * Как быстро на вопрос "все ли у нас в порядке" поможет ответить просмотр лог файлов системы? Обычно за "роем" сообщений "ничего не видно". Давайте разберемся, как можно выделить то, что действительно важно ===== Техническое задание ===== * Отфильровать важные сообщения по ключевым словам (создать регулярное выражение с помощю LLM) * Настроить отдельный журнал для сообщений с высокой степенью критичности/уровнием важности * Разаработать приложение для уведомления только о важных сообщениях с помощю LLM ===== Запись вебинара ===== * Тэги: syslog, facility, PCRE * Рутуб: [[https://rutube.ru/video/13a07f510a46079c3cec91814f5b423b/]] * Ютуб: [[https://youtu.be/5PYHDZsuzqA]] ===== Шаг 1. Что у нас есть, для начала ===== * [[Развертывание стенда дома]] ===== Шаг 2. Поиск важных событий в системе ===== * Проверяем - все ли важные события содержат слово error, как это представлено в примере [[https://www.zabbix.com/documentation/5.2/ru/manual/config/items/itemtypes/log_items|Мониторинг файлов журналов]] zabbix documentation, и, является ли наличие его признаком важного события gate# journalctl -S -10m | grep -i error ... Aug 18 14:48:07 gate.corp13.un kernel: vmwgfx 0000:00:02.0: [drm] *ERROR* vmwgfx seems to be running on an unsupported hypervisor. ... * Добавляем [[Регистрация событий в Linux#Сервис rsyslog]] на gate (потребуется для zаbbix или отправки журналов на коллектор) gate# tail -f /var/log/syslog * Симулируем появление важного события, например, запускаем client-ы и [[Использовать чужой IP адрес в сети|Могут ли использовать чужой IP адрес в сети, как это обнаружить и предотвратить]] (для демонстрации можно отключить [[Настройка сети в Linux#Динамическая настройка ip параметров]] и назначить чужой через [[Настройка сети в Linux#Настройка параметров с использованием утилиты ip]] на client1) 2026-07-17T19:49:49.451736+03:00 gate dhcpd[943]: ICMP Echo reply while lease 192.168.13.101 valid. 2026-07-17T19:49:49.452103+03:00 gate dhcpd[943]: Abandoning IP address 192.168.13.101: pinged before offer 2026-07-17T19:49:54.446616+03:00 gate dhcpd[943]: DHCPDISCOVER from 08:00:27:98:57:d0 via eth0 * или, устаревании зоны DNS ([[Сервис DNS#Настройка вторичного сервера]]) Aug 7 05:33:27 ns named[617]: transfer of 'eusvc.bmstu.ru/IN/common' from 195.19.33.108#53: failed to connect: timed out 2026-07-31T12:21:16.642667+03:00 server named[4622]: zone comp13.un/IN/inside: refresh: NODATA response from primary 172.16.1.254#53 (source 0.0.0.0#0) 2026-07-31T12:25:23.495897+03:00 server named[4622]: zone comp13.un/IN/inside: expired * **Вариант 1**: отбираем события по важным словам, исключая отдадочные и, не представляющие интерес * [[https://www.zabbix.com/documentation/5.2/ru/manual/regular_expressions|Регулярные выражения]] zabbix documentation * **LLM промпты: ** - сгенерируй фильтр для поиска строк со словами error или abandon, исключая строки со словами test или debug, в любом регистре, задай уточняющие вопросы - сгенерируй регулярное выражение PCRE для поиска строк со словами error или abandon, исключая строки со словами test или debug, в любом регистре - сформируй тестовые данные без комментариев gate# cat /var/log/syslog | grep -P '^(?!.*(?i:test|debug|vmwgfx)).*(?i:error|abandon|fail|expire)' * **Вариант 2**: отбираем события по степени критичности/уровни важности событий в syslog * Создаем [[Регистрация событий в Linux#Журнал важных сообщений]] в rsyslog, пишем в него все события с указанием уровня важности (можно и источник события) * Убеждаемся, что они соответствуют примерам важных событий Jul 31 13:03:40 gate [info] dhcpd[716]: DHCPACK on 192.168.13.103 to 08:00:27:f9 :8e:73 (clientN) via eth0 Jul 31 13:03:44 gate [err] dhcpd[716]: Abandoning IP address 192.168.13.103: declined. Jul 31 13:03:44 gate [info] dhcpd[716]: DHCPDECLINE of 192.168.13.103 from 08:00:27:f9:8e:73 (clientN) via eth0: abandoned ... Aug 7 05:33:27 ns [local2.err] named[617]: transfer of 'eusvc.bmstu.ru/IN/common' from 195.19.33.108#53: failed to connect: timed out Jul 31 14:50:13 server [info] named[5042]: zone comp13.un/IN/inside: refresh: NODATA response from primary 172.16.1.254#53 (source 0.0.0.0#0) Jul 31 14:54:43 server [warning] named[5042]: zone comp13.un/IN/inside: expired * Добавляем фильтрацию неинтересных событий gate# cat /var/log/syslog.high | egrep -v 'PNP0A03|LPM|vmwgfx|ehci_hcd' * Добавляем фильтр в [[Регистрация событий в Linux#Журнал важных сообщений]] в rsyslog * Статья [[Эра велосипедостроения, ИИ]], как не пропустить что-то важное