User Tools

Site Tools


сервис_zabbix

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 [2022/12/26 06:05]
val [Low-Level Discovery (LLD)]
сервис_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 26: Line 27:
  
 # less /​usr/​share/​doc/​zabbix-server-mysql/​README.Debian # less /​usr/​share/​doc/​zabbix-server-mysql/​README.Debian
-</​code>​ 
  
-  * В Debian10 потребуется [[Сервис MySQL#​Управление параметрами сервера]] MySQL innodb_strict_mode=OFF 
- 
-<​code>​ 
 # cat zabbix.sql # cat zabbix.sql
 </​code><​code>​ </​code><​code>​
 #drop database zabbix; #drop database zabbix;
 create database zabbix character set utf8 collate utf8_bin; create database zabbix character set utf8 collate utf8_bin;
-grant all privileges on zabbix.* to zabbix@localhost identified by '​zabbix';​+ 
 +#debian11 
 +#grant all privileges on zabbix.* to zabbix@localhost identified by '​zabbix'​
 + 
 +#ubuntu20 
 +#​create ​ USER zabbix@localhost identified by '​zabbix';​ 
 +#grant all privileges on zabbix.* to zabbix@localhost;
 </​code><​code>​ </​code><​code>​
 # mysql < zabbix.sql # mysql < zabbix.sql
Line 41: Line 44:
 # zcat /​usr/​share/​zabbix-server-mysql/​{schema,​images,​data}.sql.gz | mysql -uzabbix -pzabbix zabbix  ​ # zcat /​usr/​share/​zabbix-server-mysql/​{schema,​images,​data}.sql.gz | mysql -uzabbix -pzabbix zabbix  ​
  
-# cat /​etc/​zabbix/​zabbix_server.conf+# cat /​etc/​zabbix/​zabbix_server.conf.d/​corpX.conf
 </​code><​code>​ </​code><​code>​
-... 
 DBHost=localhost DBHost=localhost
 DBName=zabbix DBName=zabbix
Line 149: 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 200: Line 231:
 ===== Обновление Zabbix ===== ===== Обновление Zabbix =====
  
-  * [[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/en/​manual/​installation/​upgrade|Zabbix ​Documentation Upgrade procedure]] см. log_bin_trust_function_creators 
-  * [[https://​www.zabbix.com/​documentation/​current/​ru/​manual/​installation/​upgrade/​packages/​debian_ubuntu#​Обновление с Zabbix]]+  * [[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)]] 
 + 
  
  
 ===== Настройка мониторинга ===== ===== Настройка мониторинга =====
  
-  * !!! однажды Setup заработал ​только ​в chrome ​!!!+  * !!! Однажды Setup не заработал в firefox ​!!!
   * [[https://​www.zabbix.com/​documentation/​current/​ru/​manual/​quickstart|Zabbix Documentation. Быстрый старт]]   * [[https://​www.zabbix.com/​documentation/​current/​ru/​manual/​quickstart|Zabbix Documentation. Быстрый старт]]
   * Login: Admin; Pass: zabbix   * Login: Admin; Pass: zabbix
Line 221: 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 232: 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 614: 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 655: Line 695:
 </​code>​ </​code>​
 ==== Вычисляемые элементы ==== ==== Вычисляемые элементы ====
 +
 +  * [[https://​www.zabbix.com/​documentation/​current/​en/​manual/​config/​items/​itemtypes/​calculated/​aggregate]]
  
 <​code>​ <​code>​
Line 683: 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 сценарии ====
  
   * [[https://​www.zabbix.com/​documentation/​4.0/​ru/​manual/​web_monitoring/​example|Сценарий из реальной жизни]]   * [[https://​www.zabbix.com/​documentation/​4.0/​ru/​manual/​web_monitoring/​example|Сценарий из реальной жизни]]
 +  * [[https://​stackoverflow.com/​questions/​58641673/​zabbix-web-scenario-debug|Zabbix web scenario debug]]
  
 === Исследование приложения === === Исследование приложения ===
Line 752: Line 801:
     {token1} regex:​name="​_token"​ value="​(.{32})"​     {token1} regex:​name="​_token"​ value="​(.{32})"​
  
-  Required string: ​Roundcube Webmail+  Required string: ​rcmloginsubmit
   Required status codes: 200   Required status codes: 200
   ​   ​
Line 782: Line 831:
     _token: {token2}     _token: {token2}
     ​     ​
-  Required string: ​Roundcube Webmail+  Required string: ​rcmloginsubmit
   Required status codes: 200   Required status codes: 200
 </​code>​ </​code>​
  
 ==== Настройка триггеров ==== ==== Настройка триггеров ====
 +
 +  * [[https://​www.zabbix.com/​documentation/​current/​en/​manual/​config/​triggers/​trigger|Configuring a trigger]]
  
 === Примеры простых целочисленных триггеров === === Примеры простых целочисленных триггеров ===
 +
 +  * https://​www.zabbix.com/​documentation/​7.0/​ru/​manual/​config/​triggers/​expression
 +
 <​code>​ <​code>​
 Host: server.corpX.un Host: server.corpX.un
Line 803: Line 857:
 Host: ya.ru  Host: ya.ru 
     Name: HTTPS service on {HOST.NAME} is not available     Name: HTTPS service on {HOST.NAME} is not available
-    Expression: {ya.ru:​net.tcp.service.perf[https].last(#2)}=0 +    Expression: {ya.ru:​net.tcp.service.perf[https].max(#2)}=0 
-    Expression: ​last(/​ya.ru/​net.tcp.service.perf[https],#​2)=0+    Expression: ​max(/​ya.ru/​net.tcp.service.perf[https],#​2)=0
  
     Dependencies:​ Zabbix server: gate.isp.un is unreachable ​       Dependencies:​ Zabbix server: gate.isp.un is unreachable ​  
Line 827: Line 881:
  
 === Пример с макросами и Recovery expression === === Пример с макросами и Recovery expression ===
 +
 +!!! Добавить в поле "​Operational data" информацию о текущем и максимальном количестве адресов
 +
 <​code>​ <​code>​
     Name: On {HOST.NAME} dhcp subnet is full     Name: On {HOST.NAME} dhcp subnet is full
Line 918: 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 959: 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 
-  Action operations: Add to host groups: Windows clients ​        ​# or Linux client +  Action operations: ​ 
-  Link to templates: Windows by Zabbix agent active ​             # or Linux by Zabbix agent active+    ​Add to host groups: Windows clients ​                             # or Linux clients 
 +    Link to templates: Windows by Zabbix agent active ​               # or Linux by Zabbix agent active
                      ​Template OS Windows list installed soft Active ​ # work in linux too))                      ​Template OS Windows list installed soft Active ​ # work in linux too))
   Set host inventory mode: Automatic   Set host inventory mode: Automatic
Line 977: 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 1000: Line 1064:
 </​code><​code>​ </​code><​code>​
 UserParameter=listinstalledsoft,​ls /​usr/​share/​applications | awk -F '​.desktop'​ ' { print $1}' - UserParameter=listinstalledsoft,​ls /​usr/​share/​applications | awk -F '​.desktop'​ ' { print $1}' -
 +# UserParameter=listinstalledsoft,​ls /​usr/​share/​applications /​usr/​local/​share/​applications | awk -F '​.desktop'​ ' { print $1}' -
 </​code>​ </​code>​
  
Line 1039: 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 1055: Line 1122:
   Update interval: 3m   Update interval: 3m
  
-  Host name: SNMPv2 agent ...  +  Host name: SNMPv2 agent ...            !!! Остальные варианты требуют PTR записи
  
   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 1073: 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 1136: Line 1203:
  
 ==== Создание своих шаблонов ==== ==== Создание своих шаблонов ====
 +
 +  * Лучше, поискать готовые:​
 +  * [[https://​git.zabbix.com/​projects/​ZBX/​repos/​zabbix/​browse/​templates]]
 +  * [[https://​github.com/​zabbix/​community-templates]]
  
   * Пример с использованием макроса   * Пример с использованием макроса
Line 1143: 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 1227: Line 1303:
  
   * Пример разработки собственного скрипта для LLD   * Пример разработки собственного скрипта для LLD
 +
 +  * Сервис DHCP [[Сервис DHCP#​Статистика DHCP сервера]]
   * [[Обработка XML файлов]]   * [[Обработка XML файлов]]
 +  * [[https://​stackoverflow.com/​questions/​12524437/​output-json-from-bash-script|Output JSON from Bash script]]
 +
 +  * Язык программирования Python [[Язык программирования Python#​Zabbix LLD приложение]]
  
 <​code>​ <​code>​
Line 1234: 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 1242: 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 1331: 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 1337: 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 1346: Line 1428:
    "​method":​ "​user.login",​    "​method":​ "​user.login",​
    "​params":​ {    "​params":​ {
-      "user": "​Admin",​+      "username": "​Admin",​
       "​password":​ "​zabbix"​       "​password":​ "​zabbix"​
    },    },
Line 1364: 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 1375: 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 1460: 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 1480: 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>​
сервис_zabbix.1672023959.txt.gz · Last modified: 2022/12/26 06:05 by val