====== 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
Решение:
apt-get install libmysqlclient-dev libsnmp-dev libxml2-dev libevent-dev libpcre3-dev libcurl4-openssl-dev
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|удовлетворить зависимости]].
# правка конфига 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
Просто так к пустой базе MySQL подключиться нельзя, её нужно сначала [[https://www.zabbix.com/documentation/3.4/manual/appendix/install/db_scripts|специально разметить]].
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '';
quit;
# stop here if you are creating database with Zabbix packages
cd database/mysql
mysql -uzabbix -p zabbix < schema.sql
# stop here if you are creating database for Zabbix proxy
mysql -uzabbix -p zabbix < images.sql
mysql -uzabbix -p zabbix < data.sql
++++
===== Настройка =====
==== GSM-модем ====
В современных системах модем должен сразу определяться правильно (например, в Ubuntu 20.04), но если он виден как CD-ROM и не виден как USB-устройство, необходимо его переопределение.
# Установить пакет 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*
Это нужно сделать в любом случае, иначе в интерфейсе будет писать, что нет прав на устройство:
# Включить Заббикс в группу dialout
usermod -aG dialout zabbix
# Перезапустить службу
systemctl restart zabbix-server
Далее в интерфейсе Заббикса добавить /dev/ttyUSB0 в SMS Media types.
=== Проверка отправки SMS в терминале ===
apt install gammu -y
gammu-config
Прописать порт (здесь: ''/dev/ttyUSB0'').\\
{{:service:pasted:20220419-100759.png}}
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
https://onedev.net/post/835
Модем периодически перестаёт слать SMS. Попытка оживить модем с помощью команд диагностики (upd: не помогает):
gammu identify
gammu monitor 1
gammu networkinfo
Следующая попытка - использовать ID вместо TTY:
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
Соответствено, в Заббиксе указываем не ''/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 ===
Server=monitoring
ServerActive=monitoring
AllowKey=system.run[*]
LogFile=C:\Program Files\zabbix\zabbix_agent2.log
HostnameItem=system.hostname[host]
HostMetadataItem=system.uname
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
=== Zabbix agent ===
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
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
# Проверка соединения с агентом - на сервере выполнить
nc -vz 10050
=== CentOS, RedHat ===
https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/
# Чтобы установить агента, выполните
yum install zabbix-agent
# Чтобы запустить агента, выполните:
service zabbix-agent start
=== Debian, Ubuntu ===
# 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
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
# Добавить репозиторий (в данном случае версию 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
==== You do not have the SUPER privilege and binary logging is enabled ====
Zabbix после обновления ругается на версию базы и не запускается. В логах:
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
Решение:
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/447359-unable-to-initialize-mysql-database-in-6-2-per-documentation?p=447768#post447768
===== Переезд на другой сервант =====
# На новом сервере
apt install php mysql-server language-pack-ru
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;
# На старом сервере
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
Дальше установить новую версию Заббикса по инструкции, но не запускать.\\
Сначала нужно:
- Привести в соответствие конфиг ''/etc/zabbix/zabbix_server.conf''
- Создать ''/etc/zabbix/web/zabbix.conf.php'', скопировав туда конфиг со старого сервера.
- В файле''/etc/zabbix/apache.conf'' настроить часовой пояс.
Затем:
systemctl start zabbix-server
systemctl enable zabbix-server
# После запуска пойдёт обновление базы
# Посмотреть, обновилась ли база:
cat /var/log/zabbix/zabbix_server.log |grep database
Если в логе есть сообщение **database is not upgraded to use double precision values:**\\
Остановить сервер.\\
Добавить в ''/etc/zabbix/web/zabbix.conf.php'' параметр ''$DB['DOUBLE_IEEE754'] = 'true';''\\
Затем обязательно:
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;
Запустить сервер.\\
https://serveradmin.ru/oshibka-zabbix-database-is-not-upgraded-to-use-double-precision-values/
===== Мониторинг Wi-Fi =====
В данном случае агент установлен на Raspbian.
/etc/zabbix/zabbix-agentd.conf:
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
[[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
CREATE USER 'zabbix'@'%' IDENTIFIED BY 'password_here';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zabbix'@'%';
quit;
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
# 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 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
/etc/zabbix/.my.cnf
[client]
user=zabbix
password=password_here
Перезапустить агента, привязать к хосту на сервере шаблон 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''):
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]}/'
Добавить группу для fail2ban, добавить туда пользователя zabbix и дать этой группе права к сокету, т. к. изначально права есть только у рута.
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
[[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]])
eventlog[Security,1СUser,,,,1,skip]
Триггер, например,
# 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
Включить 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:
UserParameter=remote.ping[*], powershell -command "if (Test-Connection $1 -Count 1 -quiet) {echo '1'} else {echo '0'}"
На 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]]):
UserParameter=remote.ping[*], ping -c 1 $1 >/dev/null 2>&1 && echo 1 || echo 0
Перезапустить агента.
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 |самописное решение через скрипт}}.
Проблемы:
# При проверке:
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
https://www.zabbix.com/forum/zabbix-cookbook/37024-hp-servers-monitoring-via-ilo?p=238081#post238081
===== Squid =====
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:'
Preprocessing: Regular expression, ''([0-9]+)'', ''\1''
==== cache.log ====
key:
# 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
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]].
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 может просто не работать.
Хотя, возможны варианты:\\
.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 ====
sudo nano /etc/zabbix/zabbix_server.conf
StartPingers=5
sudo service zabbix-server restart
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), но можно и скомпилировать:
# проверка версии
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
https://askubuntu.com/questions/1102803/how-to-upgrade-openssl-1-1-0-to-1-1-1-in-ubuntu-18-04