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 [2025/06/16 13:48] (current)
val [Low-Level Discovery (LLD)]
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
Line 200: Line 207:
 ===== Обновление 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 231:
 === Настройка подсистемы 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 242:
 === Настройка уведомлений о срабатывании триггеров === === Настройка уведомлений о срабатывании триггеров ===
 <​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 624:
 </​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 687: Line 703:
  
   * [[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 769:
     {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 799:
     _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 825:
 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 849:
  
 === Пример с макросами и 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 943:
 # 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 984:
  
 <​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 1003:
 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 1032:
 </​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 1072:
 === Автоматическое добавление === === Автоматическое добавление ===
  
-  ​* [[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 1090:
   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 1108:
              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 1143: Line 1178:
 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 1267:
  
   * Пример разработки собственного скрипта для 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 1279:
 #!/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 1287:
 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 1376:
 ===== 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 1383:
  
   * [[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 1392:
    "​method":​ "​user.login",​    "​method":​ "​user.login",​
    "​params":​ {    "​params":​ {
-      "user": "​Admin",​+      "username": "​Admin",​
       "​password":​ "​zabbix"​       "​password":​ "​zabbix"​
    },    },
Line 1364: Line 1410:
   * Получение списка узлов и шаблонов из 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 1422:
 ... ...
 </​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 1511:
 </​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 1534:
 } " 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