This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
zabbix_logs [2026/08/08 17:42] val |
zabbix_logs [2026/08/19 12:49] (current) val [Шаг 3. Регистрация событий в Zabbix] |
||
|---|---|---|---|
| Line 8: | Line 8: | ||
| ===== Реклама ===== | ===== Реклама ===== | ||
| - | * Однажды мы получили сообщение от пользователей, что "не открывается" некоторый корпоративный ресурс. Как обычно, "никто ничего не менял" (log secondary zone not axfr) | + | * Однажды мы получили сообщение от пользователей, что "не открывается" некоторый корпоративный ресурс. Как обычно, "никто ничего не менял" но, как оказалось, что-то случилось 40 дней назад! |
| Line 22: | Line 22: | ||
| * Zabbix. Мониторинг IT инфраструктуры предприятия [[Zabbix. Мониторинг IT инфраструктуры предприятия#Модуль 5: Управление учетными записями и уведомлениями]] | * Zabbix. Мониторинг IT инфраструктуры предприятия [[Zabbix. Мониторинг IT инфраструктуры предприятия#Модуль 5: Управление учетными записями и уведомлениями]] | ||
| - | + | * http://192.168.13.10/zabbix/ | |
| - | * Добавляем [[Регистрация событий в Linux]] на gate | + | * http://192.168.13.10/mail/ |
| ===== Шаг 2. Анализ событий ===== | ===== Шаг 2. Анализ событий ===== | ||
| - | * [[Поиск важных событий в syslog]] | + | * [[Поиск важных событий в syslog]] на gate (1-й вариант) |
| ===== Шаг 3. Регистрация событий в Zabbix ===== | ===== Шаг 3. Регистрация событий в Zabbix ===== | ||
| <code> | <code> | ||
| - | gate# cat /etc/zabbix/zabbix_agentd.conf | + | gate# cat /etc/zabbix/zabbix_agentd.conf.d/corpX.conf |
| </code><code> | </code><code> | ||
| ... | ... | ||
| ServerActive=server | ServerActive=server | ||
| - | ... | ||
| </code><code> | </code><code> | ||
| + | gate# ps axu | grep zabbix | ||
| + | |||
| gate# ls -l /var/log/syslog | gate# ls -l /var/log/syslog | ||
| Line 42: | Line 43: | ||
| gate# service zabbix-agent restart | gate# service zabbix-agent restart | ||
| + | </code><code> | ||
| Host: gate.corpX.un | Host: gate.corpX.un | ||
| Item: | Item: | ||
| - | Name: Error|High log in syslog | + | Name: High|Error log in syslog |
| Type: Zabbix Agent(active) | Type: Zabbix Agent(active) | ||
| Key: log[/var/log/syslog,(?i)error,,,skip] | Key: log[/var/log/syslog,(?i)error,,,skip] | ||
| + | Key: log[/var/log/syslog,^(?!.*(?i:test|debug|vmwgfx)).*(?i:error|abandon|fail|expire),,,skip] | ||
| Key: log[/var/log/syslog.high,,,,skip] | Key: log[/var/log/syslog.high,,,,skip] | ||
| Update interval: 10s | Update interval: 10s | ||
| + | History: 1d | ||
| + | </code> | ||
| + | * [[Регистрация событий в Linux#Использование утилиты logger]] | ||
| + | * Перезагружаем для появления "неожиданных" сообщений | ||
| + | * **LLM промпт:** это важное сообщение? | ||
| + | <code> | ||
| Preprocessing: | Preprocessing: | ||
| Name: Does not match regular expression | Name: Does not match regular expression | ||
| - | Parameters: PNP0A03|LPM|vmwgfx|ehci_hcd | + | Parameters: LPM|ehci_hcd|collector initialized |
| - | Custom on fail: Discard Value | + | Custom on fail: Discard Value |
| - | History: 1d | + | Name: Does not match regular expression |
| + | Parameters: fail to add MMCONFIG information | ||
| + | Custom on fail: Discard Value | ||
| + | </code> | ||
| + | * Настраиваем Trigger | ||
| + | <code> | ||
| Trigger: | Trigger: | ||
| - | Name: Error|High log in syslog on {HOST.NAME} | + | Name: High|Error log in syslog on {HOST.NAME} |
| Severity: Warning | Severity: Warning | ||
| Expression: nodata(/gate.corpX.un/log[/var/log/syslog..., ... ],1m)=0 | Expression: nodata(/gate.corpX.un/log[/var/log/syslog..., ... ],1m)=0 | ||
| </code> | </code> | ||
| + | ===== Шаг 4. Обработка событий через скрипт с анализом в LLM ===== | ||
| * [[Сервис Zabbix#Настройка уведомлений о событиях]], Оставить только Problem Template и убрать из текста слова Problem и Severity | * [[Сервис Zabbix#Настройка уведомлений о событиях]], Оставить только Problem Template и убрать из текста слова Problem и Severity | ||
| Line 126: | Line 139: | ||
| with smtplib.SMTP(SMTP_SERVER) as server: | with smtplib.SMTP(SMTP_SERVER) as server: | ||
| server.sendmail(SENDER_EMAIL, [alert_sendto], msg.as_string()) | server.sendmail(SENDER_EMAIL, [alert_sendto], msg.as_string()) | ||
| - | |||
| </code> | </code> | ||
| - | ===== Разбор от DeepSeek ===== | ||
| - | <code> | ||
| - | Разбор текущей конфигурации: | ||
| - | 1. Подготовка системы (bash команды) | ||
| - | bash | ||
| - | # ###apt install rsyslog | ||
| - | Установка rsyslog (обычно уже есть) | ||
| - | |||
| - | bash | ||
| - | # cat /var/log/syslog | grep -i 'error' | ||
| - | Ручной поиск ошибок (для проверки) | ||
| - | |||
| - | bash | ||
| - | # cat /var/log/syslog | egrep -v 'DHCPACK|DHCPREQUEST|Wrote.*leases|sessionclean|ALLOWED|run-parts.*report' | ||
| - | Просмотр syslog без "шумных" сообщений (DHCP, сессии и т.д.) | ||
| - | |||
| - | bash | ||
| - | # usermod -aG adm zabbix | ||
| - | Критически важно! Добавляем пользователя zabbix в группу adm, чтобы он мог читать /var/log/syslog (обычно права 640, root:adm) | ||
| - | |||
| - | 2. Проблема в текущих Item'ах | ||
| - | У тебя два item'а, но в триггере почему-то три выражения: | ||
| - | |||
| - | Item 1: | ||
| - | |||
| - | text | ||
| - | Key: log[/var/log/syslog,rror] | ||
| - | Это ищет строки содержащие "rror" (опечатка? Должно быть "error"?) | ||
| - | |||
| - | Item 2: | ||
| - | |||
| - | text | ||
| - | Key: log[/var/log/syslog] | ||
| - | Preprocessing: Does not match regular expression | ||
| - | Это собирает ВСЕ строки, но отбрасывает те, что попадают под regex. | ||
| - | |||
| - | 3. Оптимизированная версия | ||
| - | Вот как лучше настроить: | ||
| - | |||
| - | bash | ||
| - | # /etc/zabbix/zabbix_agentd.conf | ||
| - | # Убедись, что активные проверки включены | ||
| - | ServerActive=zabbix.server.com | ||
| - | Hostname=abcd.corpX.un | ||
| - | HostMetadata=linux | ||
| - | Лучше сделать один item: | ||
| - | |||
| - | text | ||
| - | Item: | ||
| - | Name: Syslog errors and warnings | ||
| - | Type: Zabbix Agent (active) | ||
| - | Key: log[/var/log/syslog,"(?i)(error|fail|critical|alert)",,,skip,,] | ||
| - | Type of information: Log | ||
| - | History: 7d | ||
| - | Или два отдельных (для разделения важности): | ||
| - | |||
| - | text | ||
| - | # Item для реальных ошибок | ||
| - | Item: | ||
| - | Name: Syslog - Errors | ||
| - | Type: Zabbix Agent (active) | ||
| - | Key: log[/var/log/syslog,"(?i)error|fail|critical",,,skip,,] | ||
| - | Type: Log | ||
| - | History: 7d | ||
| - | |||
| - | # Item для всего остального (с фильтрацией шума) | ||
| - | Item: | ||
| - | Name: Syslog - Other important messages | ||
| - | Type: Zabbix Agent (active) | ||
| - | Key: log[/var/log/syslog] | ||
| - | Preprocessing: | ||
| - | - Name: Does not match regular expression | ||
| - | Parameters: DHCPACK|DHCPREQUEST|Wrote.*leases|sessionclean|ALLOWED|run-parts.*report|cron.*CMD|systemd.*Started | ||
| - | - Name: Custom on fail | ||
| - | Parameters: Discard value | ||
| - | 4. Правильный триггер | ||
| - | yaml | ||
| - | Trigger: | ||
| - | Name: Error in syslog on {HOST.NAME} | ||
| - | Severity: Average # или Warning | ||
| - | Expression: | | ||
| - | min(/Zabbix server/log[/var/log/syslog,"(?i)error|fail|critical"],5m) > 0 | ||
| - | Или для обоих типов: | ||
| - | |||
| - | yaml | ||
| - | Trigger: | ||
| - | Name: New error in syslog on {HOST.NAME} | ||
| - | Severity: High | ||
| - | Expression: | | ||
| - | min(/Zabbix server/log[/var/log/syslog,"(?i)error"],5m) > 0 | ||
| - | |||
| - | Trigger: | ||
| - | Name: New important message in syslog on {HOST.NAME} | ||
| - | Severity: Info | ||
| - | Expression: | | ||
| - | min(/Zabbix server/log[/var/log/syslog,"(?i)warn|unknown|invalid"],5m) > 0 | ||
| - | and | ||
| - | min(/Zabbix server/log[/var/log/syslog,"(?i)error|fail|critical"],5m) = 0 | ||
| - | 5. Дополнительные полезные настройки | ||
| - | В zabbix_agentd.conf можно добавить: | ||
| - | |||
| - | bash | ||
| - | # Увеличить буфер для логов | ||
| - | BufferSize=1000 | ||
| - | |||
| - | # Специфичные для логов параметры | ||
| - | LogRemoteCommands=0 | ||
| - | HostInterface=abcd.corpX.un | ||
| - | Проверка прав: | ||
| - | |||
| - | bash | ||
| - | # После usermod нужно проверить: | ||
| - | id zabbix | ||
| - | # Должно показать: uid=... gid=... groups=...,adm | ||
| - | |||
| - | # Перезапуск агента | ||
| - | systemctl restart zabbix-agent | ||
| - | |||
| - | # Проверка лога агента | ||
| - | tail -f /var/log/zabbix/zabbix_agentd.log | ||
| - | Еще полезные regex для фильтрации: | ||
| - | |||
| - | text | ||
| - | # Исключить совсем уж шумные сообщения | ||
| - | DHCPACK|DHCPREQUEST|Wrote.*leases|sessionclean|ALLOWED|run-parts.*report|cron.*CMD|systemd.*Started|systemd.*Stopped|User Slice|Session|Removed | ||
| - | |||
| - | </code> | ||