This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
сервис_zabbix [2023/08/14 07:50] val [Обновление Zabbix] |
сервис_zabbix [2026/02/11 11:58] (current) val [Вычисляемые элементы] |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| ===== Установка и запуск сервера ===== | ===== Установка и запуск сервера ===== | ||
| + | * [[https://www.zabbix.com/release_notes|Release Notes for Zabbix]] | ||
| ==== Установка SQL сервера ==== | ==== Установка SQL сервера ==== | ||
| Line 150: | Line 151: | ||
| # cat /etc/zabbix/zabbix_proxy.conf | # cat /etc/zabbix/zabbix_proxy.conf | ||
| </code><code> | </code><code> | ||
| - | ... | + | #... |
| Hostname=gate | Hostname=gate | ||
| - | ConfigFrequency=60 | + | |
| + | #v6 | ||
| + | #ConfigFrequency=60 | ||
| + | #v7 | ||
| + | #ProxyConfigFrequency=60 | ||
| + | | ||
| Server=server | Server=server | ||
| DBName=/var/lib/zabbix/zabbix.db | DBName=/var/lib/zabbix/zabbix.db | ||
| + | </code> | ||
| + | === zabbix-proxy docker-compose === | ||
| + | |||
| + | * [[https://github.com/kpod13/docker-compose-zabbix-proxy]] | ||
| + | |||
| + | <code> | ||
| + | lan:~/zabbix-proxy# cat docker-compose.yml | ||
| + | </code><code> | ||
| + | services: | ||
| + | zabbix-proxy: | ||
| + | environment: | ||
| + | ZBX_CONFIGFREQUENCY: '60' | ||
| + | ZBX_HOSTNAME: lan | ||
| + | ZBX_PROXYCONFIGFREQUENCY: '60' | ||
| + | ZBX_SERVER_HOST: server.corpX.un | ||
| + | ZBX_TLSCONNECT: psk | ||
| + | ZBX_TLSPSK: aa.............................................................7c | ||
| + | ZBX_TLSPSKIDENTITY: lan | ||
| + | image: zabbix/zabbix-proxy-sqlite3:ubuntu-7.0-latest | ||
| + | ports: | ||
| + | - published: 10051 | ||
| + | target: 10051 | ||
| + | restart: always | ||
| + | stop_grace_period: 1m | ||
| </code> | </code> | ||
| Line 201: | Line 231: | ||
| ===== Обновление Zabbix ===== | ===== Обновление Zabbix ===== | ||
| + | * [[https://www.zabbix.com/documentation/current/en/manual/installation/upgrade|Zabbix Documentation Upgrade procedure]] см. log_bin_trust_function_creators | ||
| + | * [[https://www.zabbix.com/documentation/current/en/manual/installation/upgrade/packages/debian_ubuntu|upgrade packages Debian/Ubuntu]] и !!![[https://www.zabbix.com/documentation/current/en/manual/installation/upgrade_notes_700|Upgrade notes for 7.0.0]] | ||
| * [[https://bestmonitoringtools.com/upgrade-zabbix-to-the-latest-version/|Upgrade Zabbix (5.0, 5.2, 5.4) to 6.0 like a Pro (+6.0 to 6.4 guide)]] | * [[https://bestmonitoringtools.com/upgrade-zabbix-to-the-latest-version/|Upgrade Zabbix (5.0, 5.2, 5.4) to 6.0 like a Pro (+6.0 to 6.4 guide)]] | ||
| - | * [[https://www.zabbix.com/documentation/current/manual/installation/upgrade/packages/debian_ubuntu|Steps required for a successful upgrade Zabbix]] | + | |
| - | * [[https://www.zabbix.com/documentation/current/ru/manual/installation/upgrade/packages/debian_ubuntu|Требуемые шаги для успешного обновления Zabbix]] | + | |
| - | * [[https://www.zabbix.com/documentation/current/en/manual/installation/upgrade|Zabbix Documentation Upgrade procedure]] | + | |
| Line 224: | Line 255: | ||
| === Настройка подсистемы Email === | === Настройка подсистемы Email === | ||
| <code> | <code> | ||
| - | Administration->Media types->Email | + | Administration/Alerts->Media types->Email |
| SMTP server: server.corpX.un | SMTP server: server.corpX.un | ||
| SMTP helo: server.corpX.un | SMTP helo: server.corpX.un | ||
| SMTP email: zabbix@corpX.un | SMTP email: zabbix@corpX.un | ||
| - | Administration->Users->student->Media | + | Administration/Users->Users->student->Media |
| Type: Email | Type: Email | ||
| Send to: student@corpX.un | Send to: student@corpX.un | ||
| Line 235: | Line 266: | ||
| === Настройка уведомлений о срабатывании триггеров === | === Настройка уведомлений о срабатывании триггеров === | ||
| <code> | <code> | ||
| - | Configuration->Actions->Event source: Triggers | + | Configuration/Alerts->Actions->Event source: Triggers |
| Report problems to Zabbix administrators->Enable | Report problems to Zabbix administrators->Enable | ||
| ... | ... | ||
| Line 617: | Line 648: | ||
| </code><code> | </code><code> | ||
| #!/bin/sh | #!/bin/sh | ||
| + | |||
| + | ### iperf ### | ||
| + | MY_RES=$(iperf -c gate.isp.un -t 5 -R -f b -y c) | ||
| + | MY_DOWNLOAD=$(echo $MY_RES | cut -d',' -f9) | ||
| + | MY_RES=$(iperf -c gate.isp.un -t 5 -f b -y c) | ||
| + | MY_UPLOAD=$(echo $MY_RES | cut -d',' -f9) | ||
| ### speedtest-cli ### result bits/s | ### speedtest-cli ### result bits/s | ||
| - | MY_RES=`speedtest-cli --csv` | + | #MY_RES=`speedtest-cli --csv` |
| - | MY_DOWNLOAD=`echo $MY_RES | cut -d',' -f7` | + | #MY_DOWNLOAD=`echo $MY_RES | cut -d',' -f7` |
| - | MY_UPLOAD=`echo $MY_RES | cut -d',' -f8` | + | #MY_UPLOAD=`echo $MY_RES | cut -d',' -f8` |
| ### speedtest ### result Bytes/s (use preprocess Custom multiplier) | ### speedtest ### result Bytes/s (use preprocess Custom multiplier) | ||
| #MY_RES=`speedtest -f csv` | #MY_RES=`speedtest -f csv` | ||
| #MY_DOWNLOAD=`echo $MY_RES | cut -d',' -f6` | #MY_DOWNLOAD=`echo $MY_RES | cut -d',' -f6` | ||
| - | #Y_UPLOAD=`echo $MY_RES | cut -d',' -f7` | + | #MY_UPLOAD=`echo $MY_RES | cut -d',' -f7` |
| zabbix_sender -z 127.0.0.1 -p 10051 -s server.corpX.un -k speedtest.download -o $MY_DOWNLOAD | zabbix_sender -z 127.0.0.1 -p 10051 -s server.corpX.un -k speedtest.download -o $MY_DOWNLOAD | ||
| Line 658: | Line 695: | ||
| </code> | </code> | ||
| ==== Вычисляемые элементы ==== | ==== Вычисляемые элементы ==== | ||
| + | |||
| + | * [[https://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/calculated/aggregate]] | ||
| <code> | <code> | ||
| Line 686: | Line 725: | ||
| last(openvpn1:openvpn.server.clients)+last(openvpn2:openvpn.server.clients)+last(openvpn3:openvpn.server.clients) | last(openvpn1:openvpn.server.clients)+last(openvpn2:openvpn.server.clients)+last(openvpn3:openvpn.server.clients) | ||
| + | #--------------------- | ||
| + | |||
| + | sum(last_foreach(/*/active_meetings.sh["{HOST.CONN}"]?[group="webinars"])) | ||
| </code> | </code> | ||
| + | |||
| + | |||
| + | |||
| ==== Web сценарии ==== | ==== Web сценарии ==== | ||
| Line 795: | Line 840: | ||
| === Примеры простых целочисленных триггеров === | === Примеры простых целочисленных триггеров === | ||
| + | |||
| + | * https://www.zabbix.com/documentation/7.0/ru/manual/config/triggers/expression | ||
| + | |||
| <code> | <code> | ||
| Host: server.corpX.un | Host: server.corpX.un | ||
| Line 927: | Line 975: | ||
| # apt install zabbix-get | # apt install zabbix-get | ||
| - | $ zabbix_get -s IP/DNSNAME -p 10050 -k agent.version | + | $ zabbix_get -s IP/DNSNAME -k agent.version #-p 10050 |
| </code> | </code> | ||
| Line 968: | Line 1016: | ||
| <code> | <code> | ||
| - | Configuration - Actions - Auto registration | + | Alerts|Configuration - Actions - Auto registration |
| Name: Add Windows clients # or Add Linux clients | Name: Add Windows clients # or Add Linux clients | ||
| Conditions: Host name contains CLIENT # or client (lowercase) for linux | Conditions: Host name contains CLIENT # or client (lowercase) for linux | ||
| Line 987: | Line 1035: | ||
| ServerActive=server | ServerActive=server | ||
| #Hostname=CLIENTN | #Hostname=CLIENTN | ||
| + | </code> | ||
| + | <code> | ||
| + | /var/log/cisco_routers.log: | ||
| + | Jun 10 15:06:23 192.168.32.224 4278: Jun 10 15:06:22: %IP-4-DUPADDR: Duplicate address 192.168.0.254 on Port-channel6.664, sourced by 30de.4bf5.e9cc | ||
| + | Jun 10 16:25:07 192.168.32.224 4308: Jun 10 16:25:06: %SYS-5-CONFIG_I: Configured from console by val on vty0 (192.168.32.6) | ||
| + | last(/helper.bmstu.ru/log[/var/log/cisco_routers.log,Duplicate address])<>0 | ||
| </code> | </code> | ||
| Line 1050: | Line 1104: | ||
| === Автоматическое добавление === | === Автоматическое добавление === | ||
| - | * [[https://www.zabbix.com/documentation/3.0/manual/discovery/network_discovery/rule|Configuring a network discovery rule]] | + | |
| + | * [[https://www.zabbix.com/documentation/current/en/manual/discovery/network_discovery|Network discovery]] см. Discovery status | ||
| <code> | <code> | ||
| - | Configuration->Discovery | + | Data collection/Configuration->Discovery |
| Discovery rules | Discovery rules | ||
| - | Name: Local network | + | Name: Local network или Cisco Router Discovery |
| IP range: 172.16.1.190-199, 192.168.X.51-60 | IP range: 172.16.1.190-199, 192.168.X.51-60 | ||
| Checks: | Checks: | ||
| Line 1070: | Line 1126: | ||
| Enabled: yes | Enabled: yes | ||
| - | Configuration->Actions | + | Alert/Configuration->Actions |
| Event source: Discovery | Event source: Discovery | ||
| - | Name: Action add snmp device to zabbix | + | Name: Action add Cisco device to zabbix |
| Conditions: | Conditions: | ||
| Received value: like или contains router | Received value: like или contains router | ||
| Line 1084: | Line 1140: | ||
| 4.XX Template Module Interfaces Simple SNMPv2 | 4.XX Template Module Interfaces Simple SNMPv2 | ||
| 5.XX Template Net Cisco IOS SNMP !!! Уменьшить период Network interfaces discovery !!! | 5.XX Template Net Cisco IOS SNMP !!! Уменьшить период Network interfaces discovery !!! | ||
| - | 6.XX Cisco IOS by SNMP | + | 6.XX 7.XX Cisco IOS by SNMP |
| Set host inventory mode: Automatic | Set host inventory mode: Automatic | ||
| Add | Add | ||
| Line 1147: | Line 1203: | ||
| ==== Создание своих шаблонов ==== | ==== Создание своих шаблонов ==== | ||
| + | |||
| + | * Лучше, поискать готовые: | ||
| + | * [[https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates]] | ||
| + | * [[https://github.com/zabbix/community-templates]] | ||
| * Пример с использованием макроса | * Пример с использованием макроса | ||
| Line 1154: | Line 1214: | ||
| Configuration | Configuration | ||
| Templates | Templates | ||
| - | Template App SSH Service/SSH Service | + | SSH Service |
| Full Clone | Full Clone | ||
| - | Template App SSH Port Service/SSH Port Service | + | SSH Port Service |
| Add | Add | ||
| Templates | Templates | ||
| - | Template App SSH Port Service/SSH Port Service | + | Name: SSH Port Service |
| + | Template groups: Templates/Applications | ||
| Items | Items | ||
| - | SSH service is running | + | Name: SSH service is running |
| - | Key: net.tcp.service[ssh,,{$SSH_PORT}] | + | Key: net.tcp.service[ssh,,{$SSH_PORT}] |
| - | Update interval: 30s | + | Update interval: 30s |
| + | Triggers | ||
| + | Name: SSH service is down on {HOST.NAME} | ||
| + | Severity: Average | ||
| + | Expression: max(/SSH Port Service/net.tcp.service[ssh,,{$SSH_PORT}],#3)=0 | ||
| Macros | Macros | ||
| {$SSH_PORT}=22 | {$SSH_PORT}=22 | ||
| Line 1238: | Line 1303: | ||
| * Пример разработки собственного скрипта для LLD | * Пример разработки собственного скрипта для LLD | ||
| + | |||
| + | * Сервис DHCP [[Сервис DHCP#Статистика DHCP сервера]] | ||
| * [[Обработка XML файлов]] | * [[Обработка XML файлов]] | ||
| * [[https://stackoverflow.com/questions/12524437/output-json-from-bash-script|Output JSON from Bash script]] | * [[https://stackoverflow.com/questions/12524437/output-json-from-bash-script|Output JSON from Bash script]] | ||
| + | |||
| + | * Язык программирования Python [[Язык программирования Python#Zabbix LLD приложение]] | ||
| <code> | <code> | ||
| Line 1246: | Line 1315: | ||
| #!/bin/bash | #!/bin/bash | ||
| - | echo -n '{"data":[' | + | echo -n '[' |
| str=`/usr/bin/dhcpd-pools -c /etc/dhcp/dhcpd.conf -f x | \ | str=`/usr/bin/dhcpd-pools -c /etc/dhcp/dhcpd.conf -f x | \ | ||
| Line 1254: | Line 1323: | ||
| echo -n ${str::-1} | echo -n ${str::-1} | ||
| - | echo -n ']}' | + | echo -n ']' |
| </code><code> | </code><code> | ||
| gate# /etc/zabbix/dhcp-pools-discovery.sh | jq | gate# /etc/zabbix/dhcp-pools-discovery.sh | jq | ||
| Line 1343: | Line 1412: | ||
| ===== API ===== | ===== API ===== | ||
| + | * [[https://www.zabbix.com/documentation/current/en/manual/api]] | ||
| * [[Формат JSON]] | * [[Формат JSON]] | ||
| * [[https://www.zabbix.com/documentation/1.8/ru/api/getting_started|Zabbix Documentation Начало работы с Zabbix API]] | * [[https://www.zabbix.com/documentation/1.8/ru/api/getting_started|Zabbix Documentation Начало работы с Zabbix API]] | ||
| Line 1349: | Line 1419: | ||
| * [[https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/36900-api-key-lifetime|api key lifetime]] | * [[https://www.zabbix.com/forum/zabbix-troubleshooting-and-problems/36900-api-key-lifetime|api key lifetime]] | ||
| + | * Для и до 6-й версии "user": "Admin", | ||
| <code> | <code> | ||
| server:~# apt install curl | server:~# apt install curl | ||
| Line 1358: | Line 1428: | ||
| "method": "user.login", | "method": "user.login", | ||
| "params": { | "params": { | ||
| - | "user": "Admin", | + | "username": "Admin", |
| "password": "zabbix" | "password": "zabbix" | ||
| }, | }, | ||
| Line 1376: | Line 1446: | ||
| * Получение списка узлов и шаблонов из Zabbix | * Получение списка узлов и шаблонов из Zabbix | ||
| + | До 7-й версии, включительно | ||
| <code> | <code> | ||
| server:~# curl -s -k -X POST -H 'Content-Type: application/json-rpc' -d ' | server:~# curl -s -k -X POST -H 'Content-Type: application/json-rpc' -d ' | ||
| Line 1387: | Line 1458: | ||
| ... | ... | ||
| </code> | </code> | ||
| + | От 7-й и старше | ||
| <code> | <code> | ||
| - | ... | + | curl -s -k -X POST -H 'Content-Type: application/json-rpc' -H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -d '{ |
| - | "method": "template.get", | + | "jsonrpc": "2.0", |
| - | ... | + | "method": "host.get", |
| + | "params": {}, | ||
| + | "id": 2 | ||
| + | }' http://127.0.0.1/zabbix/api_jsonrpc.php | jq | ||
| </code> | </code> | ||
| Line 1472: | Line 1547: | ||
| </code> | </code> | ||
| ==== Пример изменения конфигурации через Zabbix API ==== | ==== Пример изменения конфигурации через Zabbix API ==== | ||
| + | |||
| + | * Язык программирования Python [[Язык программирования Python#Zabbix API приложение]] | ||
| + | |||
| <code> | <code> | ||
| server.corp1.un:~# cat /root/zab_set_map_name.sh | server.corp1.un:~# cat /root/zab_set_map_name.sh | ||
| Line 1492: | Line 1570: | ||
| } " http://127.0.0.1/zabbix/api_jsonrpc.php | } " http://127.0.0.1/zabbix/api_jsonrpc.php | ||
| </code><code> | </code><code> | ||
| - | server.corp1.un:~# /root/zab_set_map_name.sh 2 "ISP1" | + | server.corp1.un:~# /root/zab_set_map_name.sh 2 "ISP 1" |
| </code> | </code> | ||