Инструменты пользователя

Инструменты сайта


service:zabbix

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:zabbix [31.10.2022 13:43] – [Оповещение в Telegram] viacheslavservice:zabbix [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Zabbix ======
  
 +===== Установка =====
 +[[https://www.zabbix.com/documentation/current|Документация]]
 +
 +[[https://www.zabbix.com/download|Download]]
 +
 +[[https://www.zabbix.com/documentation/4.2/manual/installation/install_from_packages/win_msi?s[]=msi|Windows agent installation from MSI]]\\
 +[[https://www.zabbix.com/documentation/4.2/ru/manual/appendix/config/zabbix_agentd_win|Параметры конфигурации агента]], [[https://www.zabbix.com/documentation/4.2/ru/manual/appendix/install/windows_agent|настройка]]
 +
 +
 +[[https://www.zabbix.com/integrations|Библиотека шаблонов]]
 +
 +++++ Для устройств ARM |
 +актуального репозитория нет, надо собирать из исходников по [[https://www.zabbix.com/documentation/3.4/manual/installation/install|инструкции]].
 +
 +Во время сборки возникли следующие проблемы:\\
 +error: MySQL library not found\\
 +error: Not found NET-SNMP library\\
 +error: LIBXML2 library not found\\
 +error: Unable to use libevent (libevent check failed)\\
 +error: Unable to use libpcre (libpcre check failed)\\
 +error: Curl library not found
 +
 +Решение:
 +<code bash>
 +apt-get install libmysqlclient-dev libsnmp-dev libxml2-dev libevent-dev libpcre3-dev libcurl4-openssl-dev
 +</code>
 +http://neskripit.ru/blogs/blogs-all/viewpost/724\\
 +https://www.zabbix.com/forum/showthread.php?t=58580
 +
 +После запуска веб-установщика надо привести в порядок параметры и [[https://www.zabbix.com/documentation/3.4/manual/installation/requirements|удовлетворить зависимости]].
 +<code bash>
 +# правка конфига PHP
 +nano /etc/php/7.2/apache2/php.ini
 +# поставить модули
 +apt-get install php7.2-gd php7.2-bcmath php7.2-mbstring php7.2-xml php7.2-mysql
 +</code>
 +
 +Просто так к пустой базе MySQL подключиться нельзя, её нужно сначала [[https://www.zabbix.com/documentation/3.4/manual/appendix/install/db_scripts|специально разметить]].
 +<code bash>
 +mysql -uroot -p<password>
 +</code>
 +<code mysql>
 +create database zabbix character set utf8 collate utf8_bin;
 +grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
 +quit;
 +# stop here if you are creating database with Zabbix packages
 +</code>
 +<code bash>
 +cd database/mysql
 +mysql -uzabbix -p<password> zabbix < schema.sql
 +# stop here if you are creating database for Zabbix proxy
 +mysql -uzabbix -p<password> zabbix < images.sql
 +mysql -uzabbix -p<password> zabbix < data.sql
 +</code>
 +++++
 +===== Настройка =====
 +==== GSM-модем ====
 +В современных системах модем должен сразу определяться правильно (например, в Ubuntu 20.04), но если он виден как CD-ROM и не виден как USB-устройство, необходимо его переопределение.
 +<code bash>
 +# Установить пакет usb-modeswitch
 +apt install usb-modeswitch
 +# Узнать ID
 +lsusb
 +Bus 004 Device 002: ID 12d1:1446 Huawei Technologies Co., Ltd. Broadband stick (modem on)
 +# Переключить 
 +usb_modeswitch -v 12d1 -p 1446 -J
 +# Посмотреть, появились ли USB-устройства
 +ls /dev/ttyUSB*
 +</code>
 +Это нужно сделать в любом случае, иначе в интерфейсе будет писать, что нет прав на устройство:
 +<code bash>
 +# Включить Заббикс в группу dialout
 +usermod -aG dialout zabbix
 +# Перезапустить службу
 +systemctl restart zabbix-server
 +</code>
 +Далее в интерфейсе Заббикса добавить /dev/ttyUSB0 в SMS Media types.
 +
 +=== Проверка отправки SMS в терминале ===
 +<code bash>
 +apt install gammu -y
 +gammu-config
 +</code>
 +Прописать порт (здесь: ''/dev/ttyUSB0'').\\
 +{{:service:pasted:20220419-100759.png}}
 +<code bash>
 +gammu identify
 +
 +Device               : /dev/ttyUSB0
 +Manufacturer         : Huawei
 +Model                : E150 (E150)
 +Firmware             : 11.609.82.02.143
 +IMEI                 : 000000000000000
 +SIM IMSI             : 000000000000000
 +
 +gammu sendsms TEXT '+70000000000' -unicode -report -text 'Test sms'
 +
 +If you want break, press Ctrl+C…
 +Sending SMS 1/1…waiting for network answer..OK, message reference=178
 +</code>
 +https://onedev.net/post/835
 +
 +Модем периодически перестаёт слать SMS. Попытка оживить модем с помощью команд диагностики (upd: не помогает):
 +<code bash>
 +gammu identify
 +gammu monitor 1
 +gammu networkinfo
 +</code>
 +
 +Следующая попытка - использовать ID вместо TTY:
 +<code bash>
 +root@ls-zabbix:~# ls -la /dev/serial/by-id/
 +total 0
 +drwxr-xr-x 2 root root 80 Nov  1 17:45 .
 +drwxr-xr-x 4 root root 80 Nov  1 17:45 ..
 +lrwxrwxrwx 1 root root 13 Nov  1 17:45 usb-HUAWEI_Technology_HUAWEI_Mobile-if00-port0 -> ../../ttyUSB0
 +lrwxrwxrwx 1 root root 13 Nov  1 17:45 usb-HUAWEI_Technology_HUAWEI_Mobile-if01-port0 -> ../../ttyUSB1
 +</code>
 +Соответствено, в Заббиксе указываем не ''/dev/ttyUSB0'', а ''/dev/serial/by-id/usb-HUAWEI_Technology_HUAWEI_Mobile-if00-port0''.
 +
 +https://github.com/gammu/gammu/issues/198
 +==== Агенты ====
 +На Windows ставятся из [[https://www.zabbix.com/documentation/current/ru/manual/installation/install_from_packages/win_msi|пакетов .msi]] в %programfiles%\zabbix.
 +
 +Пакеты для Linux: https://repo.zabbix.com/zabbix
 +
 +=== Zabbix agent 2 ===
 +<file bash zabbix_agent2.conf для Windows>
 +Server=monitoring
 +ServerActive=monitoring
 +AllowKey=system.run[*]
 +LogFile=C:\Program Files\zabbix\zabbix_agent2.log
 +HostnameItem=system.hostname[host]
 +HostMetadataItem=system.uname
 +</file>
 +
 +<file bash /etc/zabbix/zabbix_agent2.conf для Linux>
 +PidFile=/var/run/zabbix/zabbix_agent2.pid
 +LogFile=/var/log/zabbix/zabbix_agent2.log
 +LogFileSize=0
 +ControlSocket=/run/zabbix/agent.sock
 +Server=192.168.1.33
 +ServerActive=192.168.1.33
 +HostnameItem=system.hostname # system.hostname[host]?
 +HostMetadataItem=system.uname
 +# Include config files for plugins
 +Include=/etc/zabbix/zabbix_agent2.d/*.conf
 +Include=./zabbix_agent2.d/plugins.d/*.conf
 +</file>
 +=== Zabbix agent ===
 +<file bash zabbix_agentd.conf для Windows>
 +LogFile=C:\Program Files\zabbix\zabbix_agentd.log
 +# Warning: EnableRemoteCommands parameter is deprecated, use AllowKey=system.run[*] or DenyKey=system.run[*] instead
 +# EnableRemoteCommands=1
 +AllowKey=system.run[*]
 +Server=monitoring
 +ServerActive=monitoring
 +HostnameItem=system.hostname[host]
 +HostMetadataItem=system.uname
 +</file>
 +
 +<file bash zabbix_agentd.conf для Linux>
 +PidFile=/var/run/zabbix/zabbix_agentd.pid
 +LogFile=/var/log/zabbix/zabbix_agentd.log
 +LogFileSize=0
 +EnableRemoteCommands=1
 +Server=192.168.1.33
 +ServerActive=192.168.1.33
 +HostnameItem=system.hostname
 +Include=/etc/zabbix/zabbix_agentd.d/
 +HostMetadataItem=system.uname
 +</file>
 +
 +<code bash>
 +# Проверка соединения с агентом - на сервере выполнить
 +nc -vz <agent IP address> 10050
 +</code>
 +
 +=== CentOS, RedHat ===
 +https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/
 +<code bash>
 +# Чтобы установить агента, выполните
 +yum install zabbix-agent
 +# Чтобы запустить агента, выполните:
 +service zabbix-agent start
 +</code>
 +
 +=== Debian, Ubuntu ===
 +<code bash>
 +# Ubuntu 16.04
 +wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix/zabbix-agent_4.2.4-1%2Bxenial_amd64.deb
 +# Ubuntu 14.04
 +wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix/zabbix-agent_4.2.4-1%2Btrusty_amd64.deb
 +dpkg -i za # TAB
 +rm /etc/zabbix/zabbix_agentd.conf && nano /etc/zabbix/zabbix_agentd.conf
 +# вставить конфиг для Linux, сохранить файл, перезапустить агента
 +service zabbix-agent restart
 +
 +# Иногда система ругается на отсутствие curl, поставить
 +apt-get -f install
 +apt-get install curl
 +
 +# На очень старых системах типа Ubuntu 8.04, Debian 5 Lenny последняя рабочая версия агента - 1.8.3.
 +wget http://old-releases.ubuntu.com/ubuntu/pool/universe/z/zabbix/zabbix-agent_1.8.3-2ubuntu1_i386.deb
 +</code>
 +https://support.zabbix.com/browse/ZBX-3395
 +
 +==== Оповещение в Telegram ====
 +https://www.zabbix.com/ru/integrations/telegram\\
 +https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram
 +
 +Установка:
 +  - media_telegram.yaml импортировать в Administration -> Media types
 +  - Сделать бота в https://t.me/BotFather, добавить его токен в свойствах Телеграма в Заббиксе
 +  - В Configuration -> Actions -> Trigger actions настроить триггеры на Телеграм (проще всего - клонировать SMS-триггеры и сменить там способ оповещения).
 +
 +Настройка получателя:
 +  - Узнать свой ID, воспользовавшись ботом https://t.me/myidbot (команда ''/getid'' для пользователя, ''/getgroupid'' для группы).\\ {{:service:pasted:20221031-100048.png}}
 +  - Добавить свой ID в свойства своей учётки в Заббиксе, добавив туда Телеграм.
 +  - Чтобы бот мог слать сообщения в личку, нужно начать с ним чат.
 +
 +Настройка группы получателей:
 +  - Добавить @myidbot в группу
 +  - Послать в группу ''/getgroupid@myidbot''
 +  - Добавить полученный ID группы в свойства учётки в Заббиксе, созданной для оповещения в группу
 +  - Послать команду ''/start@your_bot_name_here'' в группу.
 +
 +==== Информация о пакетах, установленных в системе Linux ====
 +Ключ [[https://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/zabbix_agent#system.sw.packagesregexpmanagerformat|system.sw.packages]]
 +
 +===== Обновление =====
 +Ubuntu\\
 +https://www.zabbix.com/documentation/current/en/manual/installation/upgrade/packages/debian_ubuntu
 +
 +CentOS
 +<code bash>
 +# Добавить репозиторий (в данном случае версию 3.4)
 +rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
 +# Обновление репозитория, если уже прописан репозиторий предыдущей версии:
 +yum update http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
 +yum clean all # Почистить кэш, иначе обновление не увидится
 +# Обновиться (вариант для MySQL)
 +yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
 +</code>
 +
 +==== You do not have the SUPER privilege and binary logging is enabled ====
 +Zabbix после обновления ругается на версию базы и не запускается. В логах:
 +<code>
 +2606691:20230412:144648.589 starting automatic database upgrade
 +2606691:20230412:144648.589 [Z3005] query failed: [1419] You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) [create trigger hosts_insert after insert on hosts
 +for each row
 +insert into changelog (object,objectid,operation,clock)
 +values (1,new.hostid,1,unix_timestamp())]
 +2606691:20230412:144648.589 database upgrade failed on patch 06010049, exiting in 10 seconds
 +</code>
 +Решение:
 +<code sql>
 +mysql> SET GLOBAL log_bin_trust_function_creators = 1;
 +</code>
 +https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/447359-unable-to-initialize-mysql-database-in-6-2-per-documentation?p=447768#post447768
 +===== Переезд на другой сервант =====
 +<code bash>
 +# На новом сервере
 +apt install php mysql-server language-pack-ru
 +</code>
 +<code sql>
 +mysql
 +create database zabbix character set utf8 collate utf8_bin;
 +create user 'zabbix'@'localhost' identified by 'password';
 +grant all privileges on zabbix.* to 'zabbix'@'localhost';
 +quit;
 +</code>
 +<code bash>
 +# На старом сервере
 +mysqldump -u root -p zabbix > zabbix.sql
 +scp zabbix.sql user@192.168.1.10:/home/user
 +# На новом сервере
 +mysql -u zabbix -p zabbix < /home/user/zabbix.sql
 +</code>
 +Дальше установить новую версию Заббикса по инструкции, но не запускать.\\
 +Сначала нужно:
 +  - Привести в соответствие конфиг ''/etc/zabbix/zabbix_server.conf''
 +  - Создать ''/etc/zabbix/web/zabbix.conf.php'', скопировав туда конфиг со старого сервера.
 +  - В файле''/etc/zabbix/apache.conf'' настроить часовой пояс.
 +
 +Затем:
 +<code bash>
 +systemctl start zabbix-server
 +systemctl enable zabbix-server
 +# После запуска пойдёт обновление базы
 +# Посмотреть, обновилась ли база:
 +cat /var/log/zabbix/zabbix_server.log |grep database
 +</code>
 +
 +Если в логе есть сообщение **database is not upgraded to use double precision values:**\\
 +Остановить сервер.\\ 
 +Добавить в ''/etc/zabbix/web/zabbix.conf.php'' параметр ''$DB['DOUBLE_IEEE754'] = 'true';''\\
 +Затем обязательно:
 +<code sql>
 +mysql
 +use zabbix;
 +ALTER TABLE trends MODIFY value_min DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_avg DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_max DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
 +ALTER TABLE history MODIFY value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
 +quit;
 +</code>
 +Запустить сервер.\\
 +https://serveradmin.ru/oshibka-zabbix-database-is-not-upgraded-to-use-double-precision-values/
 +===== Мониторинг Wi-Fi =====
 +В данном случае агент установлен на Raspbian.
 +
 +/etc/zabbix/zabbix-agentd.conf:
 +<code bash>
 +PidFile=/var/run/zabbix/zabbix_agentd.pid
 +LogFile=/var/log/zabbix-agent/zabbix_agentd.log
 +EnableRemoteCommands=1
 +Server=192.168.1.100
 +ServerActive=192.168.1.100
 +# Link Quality (здесь шкала в 70 единиц, надо проверять в каждом конкретном случае)
 +UserParameter=wifi.linkquality,iwconfig wlan0 | grep Quality | cut -d '=' -f2 | cut -d '/' -f1
 +# Signal level (dBm)
 +UserParameter=wifi.signallevel,iwconfig wlan0 | grep level | cut -d '=' -f3 | cut -c1-3
 +# TX Power (dBm)
 +UserParameter=wifi.txpower,iwconfig wlan0 | grep Tx-Power | cut -d '=' -f3 | cut -c1-2
 +# Access Point MAC-address - без последнего знака и двоеточий
 +# В Заббиксе преобразовывается в десятичное число и настроен value mapping "Wi-Fi AP MAC addresses",
 +# где десятичные числа, полученные из MAC-адресов, сопоставляются с именами AP.
 +UserParameter=wifi.apmac,iwgetid --ap -r | sed 's/://g' | cut -c1-11
 +# SSID (Item в Заббиксе - текст)
 +UserParameter=wifi.ssid,iwgetid -r
 +# UserParameter=wifi.ssid,iwconfig wlan0 | grep SSID | cut -d '"' -f2 | cut -d '"' -f1
 +# Канал
 +UserParameter=wifi.channel,iwgetid --channel -r
 +# Частота (в Item указывать значение Hz для автоматического пересчёта в GHz)
 +UserParameter=wifi.freq,iwgetid --freq -r
 +# Доступность сайтов - код возврата HTTP, в норме 200 (настроить value mapping)
 +UserParameter=wifi.avail.ya,curl --interface wlan0 -sI -w "%{http_code}" https://ya.ru -o /dev/null
 +UserParameter=wifi.avail.google,curl --interface wlan0 -sI -w "%{http_code}" https://www.google.com -o /dev/null
 +# Доступность серверов, если 0 - нет потери пакета, всё ОК (настроить value mapping)
 +UserParameter=wifi.avail.serv4,ping -I wlan0 192.168.1.231 -c 1 | grep packet | cut -d ' ' -f6 | cut -d '%' -f1
 +UserParameter=wifi.avail.serv5,ping -I wlan0 192.168.1.209 -c 1 | grep packet | cut -d ' ' -f6 | cut -d '%' -f1
 +UserParameter=wifi.avail.serv9,ping -I wlan0 192.168.1.210 -c 1 | grep packet | cut -d ' ' -f6 | cut -d '%' -f1
 +# Время отклика (ms)
 +UserParameter=wifi.avail.serv4.time,ping -I wlan0 192.168.1.231 -c 1 | grep time= | cut -d '=' -f4 | cut -d ' ' -f1
 +UserParameter=wifi.avail.serv5.time,ping -I wlan0 192.168.1.209 -c 1 | grep time= | cut -d '=' -f4 | cut -d ' ' -f1
 +UserParameter=wifi.avail.serv9.time,ping -I wlan0 192.168.1.210 -c 1 | grep time= | cut -d '=' -f4 | cut -d ' ' -f1
 +</code>
 +[[https://www.ylsoftware.com/news/485|Мониторинг уровня сигнала на Wi-Fi адаптере с помощью Zabbix]]
 +
 +==== Items в Zabbix ====
 +
 +^ Name ^ Key ^ Interval ^ History ^ Trends ^ Type ^ Application ^ Type of information ^ Units ^
 +| Wi-Fi Access Point | wifi.apmac | 1m | 7d | 365d | Zabbix agent | wifi | Numeric (insigned) |  | 
 +| Wi-Fi channel | wifi.channel | 1m | 3d | 365d | Zabbix agent | wifi | Numeric (insigned) |  | 
 +| Wi-Fi frequency | wifi.freq | 1h | 3d | 365d | Zabbix agent | wifi | Numeric (float) | Hz | 
 +| Wi-Fi link quality | wifi.linkquality | 1m | 7d | 365d | Zabbix agent | wifi | Numeric (insigned) | / 70 | 
 +| Wi-Fi signal level | wifi.signallevel | 1m | 7d | 365d | Zabbix agent | wifi | Numeric (float) | dBm | 
 +| Wi-Fi SSID | wifi.ssid | 1h | 7d | 365d | Zabbix agent | wifi | Text |  | 
 +| Wi-Fi TX power | wifi.txpower | 1h | 3d | 365d | Zabbix agent | wifi | Numeric (insigned) | dBm | 
 +| Время ответа Server4 через wlan0 (ping) | wifi.avail.serv4.time | 1m | 7d | 365d | Zabbix agent | wifi | Numeric (float) |  | 
 +| Доступность google.com через wlan0 (curl https) | wifi.avail.google | 1m | 7d | 365d | Zabbix agent | web | Numeric (float) |  | 
 +| Недоступность Server4 через wlan0 (потеря ping) | wifi.avail.serv4 | 1m | 7d | 365d | Zabbix agent | wifi | Numeric (insigned) |  | 
 +
 +Графики удобно объединять так:
 +  - Сигнал Wi-Fi (Wi-Fi link quality, Wi-Fi signal level, Wi-Fi TX power, Wi-Fi channel)
 +  - Недоступность серверов по Wi-Fi (потеря ping) (все Items "Недоступность Server* через wlan0 (потеря ping)")
 +  - Время ответа серверов по Wi-Fi (все Items "Время ответа Server* через wlan0 (ping)")
 +  - Доступность внешних ресурсов по Wi-Fi (все Items "Доступность * через wlan0 (curl https)")
 +
 +Создать комплексный экран в шаблоне с этими графиками и выводить туда ещё текстом частоту, SSID и имена AP.
 +
 +===== Мониторинг MySQL =====
 +Доп. конфиг userparameter_mysql.conf настраивается на чтение /etc/zabbix/.my.cnf, где прописаны учётные данные для входа в MySQL. Перед этим, конечно, пользователя надо завести в MySQL и дать ему права.
 +
 +mysql
 +<code sql>
 +CREATE USER 'zabbix'@'%' IDENTIFIED BY 'password_here';
 +GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zabbix'@'%';
 +quit;
 +</code>
 +
 +/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
 +<code bash>
 +# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
 +
 +# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
 +# Key syntax is mysql.status[variable].
 +UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}'
 +
 +# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
 +# Key syntax is mysql.size[<database>,<table>,<type>].
 +# Database may be a database name or "all". Default is "all".
 +# Table may be a table name or "all". Default is "all".
 +# Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".
 +# Database is mandatory if a table is specified. Type may be specified always.
 +# Returns value in bytes.
 +# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
 +UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ $
 +
 +UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
 +UserParameter=mysql.version,mysql -V
 +</code>
 +
 +/etc/zabbix/.my.cnf
 +<code bash>
 +[client]
 +user=zabbix
 +password=password_here
 +</code>
 +
 +Перезапустить агента, привязать к хосту на сервере шаблон Template DB MySQL.
 +
 +===== Мониторинг fail2ban =====
 +Шаблоны: https://github.com/zabbix/community-templates/tree/main/Applications/Firewall/template_fail2ban\\
 +
 +Настройка целевой системы для работы мониторинга.\\
 +Добавить файл ''/etc/zabbix/zabbix_agentd.d/fail2ban.conf'' (для Zabbix agent 2 - ''/etc/zabbix/zabbix_agentd2.d/fail2ban.conf''):
 +<code>
 +UserParameter=fail2ban.status[*],fail2ban-client status '$1' | grep 'Currently banned:' | grep -E -o '[0-9]+'
 +UserParameter=fail2ban.discovery,fail2ban-client status | grep 'Jail list:' | sed -e 's/^.*:\W\+//' -e 's/\(\(\w\|-\)\+\)/{"{#JAIL}":"\1"}/g' -e 's/.*/{"data":[\0]}/'
 +</code>
 +
 +Добавить группу для fail2ban, добавить туда пользователя zabbix и дать этой группе права к сокету, т. к. изначально права есть только у рута.
 +<code bash>
 +groupadd fail2ban
 +usermod -aG fail2ban zabbix
 +chown root:fail2ban /var/run/fail2ban/fail2ban.sock
 +chmod g+rwx /var/run/fail2ban/fail2ban.sock
 +sudo -u zabbix fail2ban-client status # Проверка
 +# Если выдаётся предупреждение warning: cannot change directory to /var/lib/zabbix/: No such file or directory
 +mkdir /var/lib/zabbix
 +chown zabbix:zabbix /var/lib/zabbix
 +
 +# To persist on a system where fail2ban is managed by systemd, add the following to the fail2ban service override file
 +systemctl edit fail2ban
 +
 +[Service]
 +ExecStartPost=/bin/sh -c "while ! [ -S /run/fail2ban/fail2ban.sock ]; do sleep 1; done"
 +ExecStartPost=/bin/chgrp fail2ban /run/fail2ban/fail2ban.sock
 +ExecStartPost=/bin/chmod g+w /run/fail2ban/fail2ban.sock
 +
 +systemctl restart zabbix-agent.service
 +</code>
 +[[https://github.com/hermanekt/zabbix-fail2ban-discovery-|https://github.com/hermanekt/zabbix-fail2ban-discovery-]]
 +
 +===== Мониторинг EventLog =====
 +Создаётся шаблон, например, EventLog. Создать в нём Item под названием 1СUser (надо следить за событиями пользователя 1СUser).
 +
 +Ключ ([[https://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/zabbix_agent/win_keys#eventlog|справка по ключу eventlog]])
 +<code bash>
 +eventlog[Security,1СUser,,,,1,skip]
 +</code>
 +
 +Триггер, например,
 +<code bash>
 +# Name
 +{HOST.NAME} - 1CUser has been disabled
 +# Expression
 +logeventid(/EventLog/eventlog[Security,1CUser,,,,1,skip],,4725)=1
 +# Recovery Expression (по успешному входу)
 +logeventid(/EventLog/eventlog[Security,1CUser,,,,1,skip],,4624)=1
 +</code>
 +Включить Allow manual close.
 +
 +**События ИБ MS Windows Server Security Log**
 +^Описание EventID ^2008 Server ^2003 Server ^
 +|Очистка журнала аудита |1102 |517 |
 +|Вход с учётной записью выполнен успешно |4624 |528, 540 |
 +|Учётной записи не удалось выполнить вход в систему |4625 |529-535, 539 |
 +|Создана учётная запись пользователя |4720 |624 |
 +|Попытка сбросить пароль учётной записи |4724 |628 |
 +|Отключена учётная запись пользователя |4725 |629 |
 +|Удалена учётная запись пользователя |4726 |630 |
 +|Создана защищённая локальная группа безопасности |4731 |635 |
 +|Добавлен участник в защищённую локальную группу |4732 |636 |
 +|Удален участник из защищённой локальной группы |4733 |637 |
 +|Удалена защищённая локальная группа безопасности |4734 |638 |
 +|Изменена защищённая локальная группа безопасности |4735 |639 |
 +|Изменена учётная запись пользователя |4738 |642 |
 +|Заблокирована учётная запись пользователя |4740 |644 |
 +|Имя учётной записи было изменено |4781 |685 |
 +
 +https://habr.com/ru/articles/215509/
 +===== Ping с агента =====
 +Добавить в конфиг агента на Windows:
 +<code powershell>
 +UserParameter=remote.ping[*], powershell -command "if (Test-Connection $1 -Count 1 -quiet) {echo '1'} else {echo '0'}"
 +</code>
 +На Linux ([[https://www.zabbix.com/forum/in-russian/48070-ping-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82|Zabbix forum]]):
 +<code bash>
 +UserParameter=remote.ping[*], ping -c 1 $1 >/dev/null 2>&1 && echo 1 || echo 0 
 +</code>
 +Перезапустить агента.
 +
 +Item:\\
 +Name: ICMP Ping - important server\\
 +Type: Zabbix agent (active)\\
 +Key: remote.ping[192.168.21.1]\\
 +Update interval: 1m\\
 +Zhow value: service state\\
 +Applications: Status
 +===== HP iLO =====
 +iLO4 и новее отлично мониторится через SNMP встроенным шаблоном. Для более старых версий есть {{ :service:ipmi-ilo.zip |самописное решение через скрипт}}.
 +
 +Проблемы:
 +<code bash>
 +# При проверке:
 +nano /usr/lib/zabbix/externalscripts/ilo_discovery.pl
 +when is experimental at /usr/lib/zabbix/externalscripts/ilo_discovery.pl line 78.
 +when is experimental at /usr/lib/zabbix/externalscripts/ilo_discovery.pl line 81.
 +when is experimental at /usr/lib/zabbix/externalscripts/ilo_discovery.pl line 84.
 +# Решение: 
 +sed -i '/use warnings;/c no warnings;' /usr/lib/zabbix/externalscripts/ilo_discovery.pl
 +</code>
 +https://www.zabbix.com/forum/zabbix-cookbook/37024-hp-servers-monitoring-via-ilo?p=238081#post238081
 +
 +===== Squid =====
 +<file bash /etc/zabbix/zabbix_agentd.conf>
 +UserParameter=squid.filedesc.current,squidclient mgr:info |grep 'Number of file desc currently in use:'
 +UserParameter=squid.filedesc.max,squidclient mgr:info |grep 'Maximum number of file descriptors:'
 +UserParameter=squid.filedesc.curlargest,squidclient mgr:info |grep 'Largest file desc currently in use:'
 +UserParameter=squid.filedesc.avail,squidclient mgr:info |grep 'Available number of file descriptors:'
 +</file>
 +
 +Preprocessing: Regular expression, ''([0-9]+)'', ''\1''
 +
 +==== cache.log ====
 +key:
 +<code bash>
 +# key, чтобы не попадали строки, содержащие unsupported, assuming mismatch и BUG 3556
 +log[/var/log/squid/cache.log,"^((?:(?![Uu]nsupported|Assuming mismatch|BUG 3556).)*$)"]
 +# log time format
 +yyyy/MM/dd hh:mm:ss
 +# tags
 +Application: Squid
 +</code>
 +https://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/log_items\\
 +https://www.zabbix.com/documentation/current/en/manual/regular_expressions#example
 +===== SNMP =====
 +SNMP agent - [[https://www.zabbix.com/documentation/4.2/ru/manual/config/items/itemtypes/snmp|документация]].\\
 +Найти SNMP под Windows - [[https://www.manageengine.com/products/mibbrowser-free-tool/download.html|MIB Browser]].
 +<WRAP round important>
 +MIB Browser показывает ключи SNMP как, например, hrSystemUptime.0 или, если зайти в свойства этого OID,  .1.3.6.1.2.1.25.1.1. В то же время, в линуксе то же самое отображается как iso.3.6.1.2.1.25.1.1.0, т. е., искать OID удобно через программу, но вставлять OID в Zabbix лучше так, как они отображаются в линуксе, иначе item может просто не работать.
 +</WRAP>
 +Хотя, возможны варианты:\\
 +.1.3.6.1.2.1.25.1.1.0\\
 +1.3.6.1.2.1.25.1.1.0
 +
 +===== Макросы =====
 +Помимо [[https://www.zabbix.com/documentation/4.2/manual/appendix/macros/supported_by_location|системных]], существуют [[https://www.zabbix.com/documentation/4.2/manual/config/macros/usermacros|пользовательские]], которые удобны для гибкой настройки значений триггеров и т. п. Главное удобство в наследовании - т. е., первый приоритет имеет макрос хоста, потом идёт непосредственно привязанный шаблон, потом шаблон второго уровня, третьего и т. д., и в конце - глобальное значение макроса, если на предыдущих уровнях ничего не нашлось. Это даёт гибкость переопределения значений на нижних уровнях иерархии.
 +
 +Также имеются [[https://www.zabbix.com/documentation/4.2/manual/config/macros/lld_macros|макросы низкоуровневого обнаружения]], которые позволяют, например, задавать [[https://www.youtube.com/watch?v=XZXboQ4dHRU|разные значения триггеров для разных дисков на компьютере]].
 +
 +===== Решение проблем =====
 +==== Zabbix icmp pinger processes more than 75% busy ====
 +<code bash>
 +sudo nano /etc/zabbix/zabbix_server.conf
 +StartPingers=5
 +sudo service zabbix-server restart
 +</code>
 +https://ixnfo.com/reshenie-problemyi-zabbix-icmp-pinger-processes-more-than-75-busy.html
 +
 +==== Веб-проверки через SSL не работают: SSL routines:tls12_check_peer_sigalg:wrong signature type ====
 +Причина в кривой версии openssl (1.1.1f), входящей в дистрибутив Ubuntu 20.04 LTS, необходимо обновить её хотя бы до 1.1.1g.
 +
 +
 +Лучше всего пакетом (.deb), но можно и скомпилировать:
 +<code bash>
 +# проверка версии
 +openssl version
 +
 +wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
 +tar -zxf openssl-1.1.1k.tar.gz && cd openssl-1.1.1k
 +./config
 +# Может сначала понадобиться apt install make gcc
 +make
 +make test
 +mv /usr/bin/openssl ~/tmp
 +make install.
 +ln -s /usr/local/bin/openssl /usr/bin/openssl
 +ldconfig
 +</code>
 +https://askubuntu.com/questions/1102803/how-to-upgrade-openssl-1-1-0-to-1-1-1-in-ubuntu-18-04

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki