User Tools

Site Tools


zabbix_logs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
zabbix_logs [2025/11/08 08:51]
val
zabbix_logs [2026/07/20 13:26] (current)
val [Черновик]
Line 30: Line 30:
 # cat /​var/​log/​syslog | egrep -v '​DHCPACK|DHCPREQUEST|Wrote.*leases|sessionclean|ALLOWED|run-parts.*report'​ # cat /​var/​log/​syslog | egrep -v '​DHCPACK|DHCPREQUEST|Wrote.*leases|sessionclean|ALLOWED|run-parts.*report'​
  
 +# grep -P '​^(?​!.*(?​i:​test|debug|verbose)).*(?​i:​error|warn|critical)'​ /​var/​log/​syslog
 +
 +# cat /​etc/​zabbix/​zabbix_agentd.conf
 +</​code><​code>​
 +...
 +ServerActive=server
 +...
 +</​code><​code>​
 +# ls -l /​var/​log/​syslog
  
 # usermod -aG adm zabbix # usermod -aG adm zabbix
 +
 +# hostname
 +abcd.corpX.un
  
 # service zabbix-agent restart # service zabbix-agent restart
 +
 +Host: abcd.corpX.un
  
 Item: Item:
   Name: Error log in syslog   Name: Error log in syslog
   Type: Zabbix Agent(active)   Type: Zabbix Agent(active)
-  Key: log[/​var/​log/​syslog,​rror ​или  ​log[/​var/​log/​syslog,​(?​i)error]+  Key: log[/​var/​log/​syslog,​(?i)error] 
 +       log[/​var/​log/​syslog,​^(?!.*(?i:​test|debug|verbose)).*(?i:error|warn|critical),,,​skip]
   History: 1d   History: 1d
  
Line 44: Line 59:
   Name: Unknown log in syslog   Name: Unknown log in syslog
   Type: Zabbix Agent(active)   Type: Zabbix Agent(active)
-  Key: log[/​var/​log/​syslog]+  Key: log[/​var/​log/​syslog,,,,skip]
   Preprocessing:​   Preprocessing:​
     Name: Does not match regular expression     Name: Does not match regular expression
Line 53: Line 68:
   Name: Error|Unknown log in syslog on {HOST.NAME}   Name: Error|Unknown log in syslog on {HOST.NAME}
   Severity: Warning   Severity: Warning
-  Expression: nodata(/Zabbix server/​log[/​var/​log/​syslog,​rror],1m)=0 +  Expression: nodata(/abcd.corpX.un/​log[/​var/​log/​syslog, ​... ],1m)=0 
-   ​Expression: ​nodata(/Zabbix server/​log[/​var/​log/​syslog,​(?​i)error],​1m)=+  ??? PROBLEM event generation mode: Multiple 
-  Expression: ​nodata(/Zabbix server/​log[/​var/​log/​syslog],​1m)=+</​code>​ 
-  ​+ 
 +  * [[Сервис Zabbix#​Настройка уведомлений о событиях]],​ Оставить только Problem Template и убрать из текста слова Problem и Severity  
 + 
 +<​code>​ 
 +# cat /​etc/​default/​zabbix-server 
 +YANDEX_API_KEY=... 
 +YANDEX_FOLDER_ID=... 
 + 
 +# chmod 600 /​etc/​default/​zabbix-server 
 +</​code>​ 
 +  * [[Yandex AI]] 
 + 
 +<​code>​ 
 +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 
 +</​code>​ 
 +<​code>​ 
 +(zabbix_venv) server.corp13.un:/​usr/​lib/​zabbix/​alertscripts#​ cat llm_context_enrichment.py 
 +#​!/​opt/​zabbix_venv/​bin/​python3 
 + 
 +import sys 
 +import smtplib 
 +import re 
 +from email.header import Header 
 +from email.mime.text import MIMEText 
 + 
 +import request_to_agent 
 + 
 +SMTP_SERVER = "​localhost"​ 
 +SENDER_EMAIL = "​zabbix-llm@corp13.un"​ 
 + 
 +SYSTEM_PROMPT = ( 
 +    "Ты - IT эксперт.\n"​ 
 +    "​Оцени важность сообщения и уточни,​ почему.\n"​ 
 +    "​Первое слово в ответе должно быть да или нет.\n"​ 
 +
 + 
 +alert_sendto = sys.argv[1] 
 +alert_subject = sys.argv[2] 
 +alert_message = sys.argv[3] 
 + 
 +#​agent_response = request_to_agent.request_to_agent(alert_message,​ SYSTEM_PROMPT,​ ""​) 
 +agent_response = alert_message 
 + 
 +match = re.search(r'​^\s*([a-zA-Zа-яА-Я1-9]+)',​ agent_response) 
 +first_word = match.group(1) 
 +remaining_text = agent_response[match.end():​] 
 + 
 +'''​ 
 +print(first_word) 
 +print(alert_sendto) 
 +print(alert_message) 
 +#​print(agent_response) 
 +print(remaining_text) 
 +'''​ 
 + 
 +msg = MIMEText(alert_message + remaining_text,​ "​plain",​ "​utf-8"​) 
 + 
 +if first_word.lower() == '​да':​ 
 +   msg["​Subject"​] = Header("​ВНИМАНИЕ! " + alert_subject,​ "​utf-8"​) 
 +else: 
 +   ​msg["​Subject"​] = Header(alert_subject,​ "​utf-8"​) 
 + 
 +msg["​From"​] = SENDER_EMAIL 
 +msg["​To"​] = alert_sendto 
 + 
 +with smtplib.SMTP(SMTP_SERVER) as server: 
 +    server.sendmail(SENDER_EMAIL,​ [alert_sendto],​ msg.as_string()) 
 + 
 +</​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"​],5m0 
 +Или для обоих типов:​ 
 + 
 +yaml 
 +Trigger: 
 +  Name: New error in syslog on {HOST.NAME} 
 +  Severity: High 
 +  Expression: ​
 +    min(/Zabbix server/​log[/​var/​log/​syslog,"​(?​i)error"​],5m0 
 + 
 +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>​ </​code>​
  
zabbix_logs.1762581094.txt.gz · Last modified: 2025/11/08 08:51 by val