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
Next revision Both sides next revision
сервис_zabbix [2022/02/15 15:34]
val [Пример изменения конфигурации через Zabbix API]
сервис_zabbix [2023/02/13 09:25]
val [Low-Level Discovery (LLD)]
Line 35: Line 35:
 #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 47:
 # 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 89: Line 94:
 http://​server.corpX.un/​zabbix/​setup.php http://​server.corpX.un/​zabbix/​setup.php
  
 +!!! После работы визарда рекомендуется ​
 +
 +# mv /​usr/​share/​zabbix/​setup.php /​usr/​share/​zabbix/​setup.php_stop
 +
 +что бы никто его не повторил)
 </​code><​code>​ </​code><​code>​
 # less /​etc/​zabbix/​zabbix.conf.php # less /​etc/​zabbix/​zabbix.conf.php
Line 127: Line 137:
 # mkdir /​var/​lib/​zabbix # mkdir /​var/​lib/​zabbix
  
 +# В 6-й версии не нужно, БД будет создана автоматически
 # zcat /​usr/​share/​doc/​zabbix-proxy-sqlite3/​schema.sql.gz | sqlite3 /​var/​lib/​zabbix/​zabbix.db # zcat /​usr/​share/​doc/​zabbix-proxy-sqlite3/​schema.sql.gz | sqlite3 /​var/​lib/​zabbix/​zabbix.db
 </​code>​ </​code>​
Line 141: Line 152:
 # chown -R zabbix:​zabbix /​var/​lib/​zabbix # chown -R zabbix:​zabbix /​var/​lib/​zabbix
  
-vim /​etc/​zabbix/​zabbix_proxy.conf+cat /​etc/​zabbix/​zabbix_proxy.conf
 </​code><​code>​ </​code><​code>​
 ... ...
Line 200: Line 211:
 ===== Настройка мониторинга ===== ===== Настройка мониторинга =====
  
-  * [[https://​www.zabbix.com/​documentation/​4.0/​ru/​manual/​quickstart|Zabbix Documentation ​4.0. Быстрый старт]]+  ​* !!! однажды Setup заработал только в chrome !!! 
 +  ​* [[https://​www.zabbix.com/​documentation/​current/​ru/​manual/​quickstart|Zabbix Documentation. Быстрый старт]]
   * Login: Admin; Pass: zabbix   * Login: Admin; Pass: zabbix
 +
 <​code>​ <​code>​
-http://server.corpX.un/zabbix/+http://192.168.X.10/zabbix/
 </​code>​ </​code>​
 ==== Настройка уведомлений о событиях ==== ==== Настройка уведомлений о событиях ====
Line 392: Line 405:
 {{HOSTNAME}:​{TRIGGER.KEY}.last(#​2)} {{HOSTNAME}:​{TRIGGER.KEY}.last(#​2)}
 </​code>​ </​code>​
 +
 +Zabbix 6
 +
 +  * [[https://​www.zabbix.com/​forum/​zabbix-help/​445808-display-an-items-previous-value|Display an items previous value...does not work...]]
 ==== Простые проверки ==== ==== Простые проверки ====
  
Line 591: Line 608:
     Key:  speedtest.download     Key:  speedtest.download
     Type of information:​ Numeric (float) или Numeric (unsigned)     Type of information:​ Numeric (float) или Numeric (unsigned)
-    Units: ​Бит/сек+    Units: ​бит/​с ​ ​или ​ bit/s
     Allowed hosts: 127.0.0.1     Allowed hosts: 127.0.0.1
   Preprocessing ​   может понадобиться   Preprocessing ​   может понадобиться
Line 677: Line 694:
  
 === Исследование приложения === === Исследование приложения ===
 +
 +  * !!! [[https://​stackoverflow.com/​questions/​15603561/​how-can-i-debug-a-http-post-in-chrome|How can I debug a HTTP POST in Chrome?]]
 +
 <​code>​ <​code>​
 Шаг 1. Шаг 1.
Line 772: Line 792:
  
 ==== Настройка триггеров ==== ==== Настройка триггеров ====
 +
 +  * [[https://​www.zabbix.com/​documentation/​current/​en/​manual/​config/​triggers/​trigger|Configuring a trigger]]
  
 === Примеры простых целочисленных триггеров === === Примеры простых целочисленных триггеров ===
Line 777: Line 799:
 Host: server.corpX.un Host: server.corpX.un
     Name: gate.isp.un is unreachable     Name: gate.isp.un is unreachable
-    Expression: {server.corpX.un:​icmpping[gate.isp.un].last()}=0+    Expression: {server.corpX.un:​icmpping[gate.isp.un].last()}=0 ​   ​Zabbix < 5.4 
 +    Expression: last(/​server.corpX.un/​icmpping[gate.isp.un])=0 ​    ​Zabbix >= 5.4
     Severity: High     Severity: High
  
     Name: RDP service on host is not available     Name: RDP service on host is not available
     Expression: {server.corpX.un:​net.tcp.service[tcp,​192.168.X.5,​3389].last()}=0     Expression: {server.corpX.un:​net.tcp.service[tcp,​192.168.X.5,​3389].last()}=0
 +    Expression: last(/​server.corpX.un/​net.tcp.service[tcp,​192.168.X.29,​3389])=0
     Severity: Warning     Severity: Warning
  
Line 787: Line 811:
     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].last(#​2)}=0
 +    Expression: last(/​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 798: Line 823:
 Host: ya.ru                                        Host: ya.ru                                       
     Name: HTTP service on {HOST.NAME} is slow     Name: HTTP service on {HOST.NAME} is slow
 +    ​
 +    Значение подобрать на основе графика
 +    ​
 +    Expression: {ya.ru:​my.avg.perf.http.last()}>​0.4
     Expression: {ya.ru:​net.tcp.service.perf[https].avg(5m)}>​0.4  ​     Expression: {ya.ru:​net.tcp.service.perf[https].avg(5m)}>​0.4  ​
 +    Expression: avg(/​ya.ru/​net.tcp.service.perf[https],​5m)>​0.4
  
- 
-    Expression: {ya.ru:​my.avg.perf.http.last()}>​0.4 
- 
-    Значение подобрать на основе графика 
     Severity: Warning     Severity: Warning
 </​code>​ </​code>​
  
 === Пример с макросами и 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 818: Line 847:
  
 === Пример с текстовым элементом === === Пример с текстовым элементом ===
 +Zabbix 5
 <​code>​ <​code>​
 Name: Host {HOST.NAME} nmap change Name: Host {HOST.NAME} nmap change
Line 825: Line 855:
   или   или
 Expression: {val.bmstu.ru:​my.nmap.diff()}=1 Expression: {val.bmstu.ru:​my.nmap.diff()}=1
 +</​code>​
 +Zabbix 6
 +<​code>​
 +Name: installed soft on host {HOST.NAME} change
 +Severity: Warning
 +
 +Expression: (last(/​Template OS Windows list installed soft Active/​listinstalledsoft,#​1)<>​last(/​Template OS Windows list installed soft Active/​listinstalledsoft,#​2))=1
 </​code>​ </​code>​
  
Line 835: Line 872:
 Severity: Hight Severity: Hight
 Expression: {server.corpX.un:​web.test.fail[mail corpX].last()}>​0 Expression: {server.corpX.un:​web.test.fail[mail corpX].last()}>​0
 +Expression: last(/​server.corpX.un/​web.test.fail[mail corpX])>​0
 </​code>​ </​code>​
  
Line 932: Line 970:
 <​code>​ <​code>​
 Configuration - Actions - Auto registration ​ Configuration - Actions - Auto registration ​
-  Name: Add windows ​clients +  Name: Add Windows clients ​                                         # or Add Linux clients 
-  Conditions: Host name contains CLIENT +  Conditions: Host name contains CLIENT ​                             # or client (lowercase) for linux 
-  Action operations: Add to host groups: ​windows ​clients +  Action operations: ​ 
-  Link to templates: ​Template OS Windows by Zabbix agent active +    ​Add to host groups: ​Windows clients ​                             # or Linux clients 
-                     ​Template OS Windows list installed soft Active+    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))
   Set host inventory mode: Automatic   Set host inventory mode: Automatic
 </​code>​ </​code>​
Line 948: Line 987:
 StartAgents=0 StartAgents=0
 ServerActive=server ServerActive=server
-Hostname=CLIENTN+#Hostname=CLIENTN
 </​code>​ </​code>​
  
 === Использование UserParameter === === Использование UserParameter ===
  
-  * Пример для Linux/Unix+== Примеры для Linux == 
   * [[Сервис DHCP#​Статистика DHCP сервера]]   * [[Сервис DHCP#​Статистика DHCP сервера]]
  
Line 965: Line 1005:
 </​code>​ </​code>​
  
-  * Windows ​examples +  * [[Управление ПО в Linux#​Список desktop приложений]] 
-  * [[PowerShell#​Список установленного ПО]] ​ !!! Попробовать вариант с форматированием+ 
 +<​code>​ 
 +linclient2:​~#​ cat /​etc/​zabbix/​zabbix_agentd.conf.d/​listinstalledsoft.conf 
 +</​code><​code>​ 
 +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>​ 
 + 
 +== Примеры для ​Windows ​== 
 + 
 +  * [[PowerShell#​Список установленного ПО]]
  
 <​code>​ <​code>​
Line 974: Line 1024:
 Timeout=30 Timeout=30
  
-UserParameter=listinstalledsoft,​powershell -Command Get-ChildItem HKLM:​\Software\Microsoft\Windows\CurrentVersion\Uninstall;​ powershell -Command Get-ChildItem HKLM:​\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall+#UserParameter=listinstalledsoft,​powershell -Command Get-ChildItem HKLM:​\Software\Microsoft\Windows\CurrentVersion\Uninstall;​ powershell -Command Get-ChildItem HKLM:​\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
  
-#UserParameter=listinstalledsoft,​C:​\bin\listinstalledsoft.bat+UserParameter=listinstalledsoft,​C:​\bin\listinstalledsoft.bat ​| findstr /v "​^$"​
  
 UnsafeUserParameters=1 UnsafeUserParameters=1
Line 987: Line 1037:
 @echo off @echo off
  
-powershell -command "​Get-ItemProperty HKLM:​\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table -AutoSize -HideTableHeaders"​+powershell -command "​Get-ItemProperty HKLM:​\Software\Microsoft\Windows\CurrentVersion\Uninstall\* ​| Get-ItemProperty | Where-Object '​DisplayName'​ | Sort-Object -Property DisplayName ​| Select-Object ​-Property DisplayName | Format-Table -AutoSize -HideTableHeaders"​ 
 +powershell -command "​Get-ItemProperty HKLM:​\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Get-ItemProperty | Where-Object '​DisplayName'​ | Sort-Object -Property DisplayName | Select-Object -Property ​DisplayName | Format-Table -AutoSize -HideTableHeaders"​
  
-powershell -command "​Get-ItemProperty HKLM:​\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Format-Table -AutoSize -HideTableHeaders"​ 
 </​code>​ </​code>​
 ==== Мониторинг по протоколу SNMP ==== ==== Мониторинг по протоколу SNMP ====
  
-  * Необходима [[Сервис SNMP#​Установка snmp консоли]]+  * Была необходима [[Сервис SNMP#​Установка snmp консоли]]
  
 <​code>​ <​code>​
 # service zabbix-server restart # service zabbix-server restart
 </​code>​ </​code>​
 +
 === Автоматическое добавление === === Автоматическое добавление ===
  
Line 1012: Line 1063:
     SNMP OID .1.3.6.1.2.1.1.5.0     SNMP OID .1.3.6.1.2.1.1.5.0
       или       или
-             ​SNMPv2-MIB::​sysName.0+             ​SNMPv2-MIB::​sysName.0 ​      !!! Требуется установка MIB
     Add     Add
-  Update interval: ​5m +  Update interval: ​3m 
-  ​Device uniqueness criteriaIP address ​ + 
 +  ​Host nameSNMPv2 agent ...   
   Enabled: yes   Enabled: yes
  
Line 1026: Line 1079:
       Add       Add
     Operations: ​     Operations: ​
-      Add to host groups: Discovered hosts+      Add to host groups: ​Cisco devices ​            !!! В Discovered hosts добавится автоматически !!!
       Link to templates: ​       Link to templates: ​
              3.XX Template SNMP Device              3.XX Template SNMP Device
              4.XX Template Module Generic SNMPv2              4.XX Template Module Generic SNMPv2
              4.XX Template Module Interfaces Simple SNMPv2              4.XX Template Module Interfaces Simple SNMPv2
-             5.XX Template Net Cisco IOS SNMP                  !!!! Уменьшить период ​Discovery !!!!+             5.XX Template Net Cisco IOS SNMP       ​!!! Уменьшить период ​Network interfaces discovery ​!!! 
 +             6.XX Cisco IOS by SNMP
       Set host inventory mode: Automatic       Set host inventory mode: Automatic
     Add     Add
 </​code>​ </​code>​
 +
 +=== SNMPv3 ===
 +
 +  * [[https://​blog.zabbix.com/​monitoring-network-hardware-with-snmpv3-in-zabbix/​10093/​|Monitoring network hardware with SNMPv3 in Zabbix]]
 ==== Проверки через SSH ==== ==== Проверки через SSH ====
  
Line 1044: Line 1102:
   * [[https://​www.zabbix.com/​documentation/​3.0/​ru/​manual/​config/​items/​itemtypes/​snmptrap|Zabbix Documentation SNMP трапы]]   * [[https://​www.zabbix.com/​documentation/​3.0/​ru/​manual/​config/​items/​itemtypes/​snmptrap|Zabbix Documentation SNMP трапы]]
   * [[https://​gist.github.com/​jpawlowski/​152abb4951f39ce1cfa0b1c5220b8635|SNMPTT installation on CentOS 7 for Zabbix integration]]   * [[https://​gist.github.com/​jpawlowski/​152abb4951f39ce1cfa0b1c5220b8635|SNMPTT installation on CentOS 7 for Zabbix integration]]
 +  * [[https://​programmersought.com/​article/​39768892920/​|How to deploy SNMP Traps in Centos8]]
   * [[https://​www.zabbix.com/​forum/​zabbix-help/​28463-catch-all-snmp-traps-with-general-event|catch all snmp traps with general event]]   * [[https://​www.zabbix.com/​forum/​zabbix-help/​28463-catch-all-snmp-traps-with-general-event|catch all snmp traps with general event]]
 +  * [[https://​blog.zabbix.com/​snmp-traps-in-zabbix/​8210/​|SNMP Traps in Zabbix]]
 +  * [[https://​youtu.be/​fVK2YWdTalQ|youtube SNMP Traps in Zabbix Tutorial]]
  
 <​code>​ <​code>​
Line 1094: Line 1155:
 Configuration Configuration
   Templates   Templates
-    Template App SSH Service+    Template App SSH Service/SSH Service
   Full Clone   Full Clone
-    Template App SSH Port Service+    Template App SSH Port Service/SSH Port Service
   Add   Add
  
   Templates   Templates
-    Template App SSH Port Service+    Template App SSH Port Service/SSH Port Service
       Items       Items
         SSH service is running         SSH service is running
Line 1114: Line 1175:
   * [[https://​www.zabbix.com/​forum/​in-russian/​44171-perl-script-%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-%D1%81%D0%B5%D1%82%D0%B8-%D0%B2-zabbix|Perl script Авторисования топологии сети в Zabbix]]   * [[https://​www.zabbix.com/​forum/​in-russian/​44171-perl-script-%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%82%D0%BE%D0%BF%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8-%D1%81%D0%B5%D1%82%D0%B8-%D0%B2-zabbix|Perl script Авторисования топологии сети в Zabbix]]
   * [[https://​youtu.be/​MEdVvZU18ek|Видеоурок - Самый простой,​ но очень полезный пример использования низкоуровнего обнаружения (LLD) в Zabbix]]   * [[https://​youtu.be/​MEdVvZU18ek|Видеоурок - Самый простой,​ но очень полезный пример использования низкоуровнего обнаружения (LLD) в Zabbix]]
-  * [[Утилита jq]]+
  
 === Штатные примеры === === Штатные примеры ===
  
 <​code>​ <​code>​
-server# zabbix_get -s gate -k vfs.fs.discovery ​| jq +server# zabbix_get -s gate -k vfs.fs.discovery 
-... +</​code>​ 
 +  * [[Утилита jq]] 
 +<​code>​
 server# zabbix_get -s gate -k vfs.fs.size[/,​free] server# zabbix_get -s gate -k vfs.fs.size[/,​free]
 server# zabbix_get -s gate -k vfs.fs.size[/,​total] server# zabbix_get -s gate -k vfs.fs.size[/,​total]
Line 1178: Line 1240:
   * Пример разработки собственного скрипта для LLD   * Пример разработки собственного скрипта для LLD
   * [[Обработка XML файлов]]   * [[Обработка XML файлов]]
 +  * [[https://​stackoverflow.com/​questions/​12524437/​output-json-from-bash-script|Output JSON from Bash script]]
  
 <​code>​ <​code>​
Line 1261: Line 1324:
  
     Trigger prototypes     Trigger prototypes
 +
       Name: On {HOST.NAME} in the DHCP pool {#POOLNAME}       Name: On {HOST.NAME} in the DHCP pool {#POOLNAME}
 +или
 +      Name: On {HOST.NAME} in the DHCP pool {#POOLNAME} used more {$DHCP.POOLS.MAX.PERCENT} percent
 +      ​
       Expression: {Template App DHCP Pools:​dhcp.pools.shared-network[{#​POOLNAME},​used].last()}/​{Template App DHCP Pools:​dhcp.pools.shared-network[{#​POOLNAME},​defined].last()}*100 > {$DHCP.POOLS.MAX.PERCENT}       Expression: {Template App DHCP Pools:​dhcp.pools.shared-network[{#​POOLNAME},​used].last()}/​{Template App DHCP Pools:​dhcp.pools.shared-network[{#​POOLNAME},​defined].last()}*100 > {$DHCP.POOLS.MAX.PERCENT}
 +                  last(/​Template App DHCP Pools/​dhcp.pools.shared-network[{#​POOLNAME},​used])/​last(/​Template App DHCP Pools/​dhcp.pools.shared-network[{#​POOLNAME},​defined])*100 > {$DHCP.POOLS.MAX.PERCENT}
       Severity: Warning       Severity: Warning
 </​code>​ </​code>​
Line 1276: Line 1344:
 ===== API ===== ===== API =====
  
-  * [[https://​ru.wikipedia.org/​wiki/​JSON|Материал из Википедии. ​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 1381: Line 1449:
  
 Список имен узлов Список имен узлов
-server:~# /​root/​zab_get_hosts.sh | jq '​.result | .[] | { host: .host} | tostring' ​| tr -d '​{}\\'​ | tr '"'​ ' ' | cut -d ' ' -f5+server:~# /​root/​zab_get_hosts.sh | jq '​.result | .[] | .name'
 </​code>​ </​code>​
 ==== Получение списка карт и их элементов из Zabbix ==== ==== Получение списка карт и их элементов из Zabbix ====
  
 <​code>​ <​code>​
-server.corp1.un:~# cat /​root/​zab_get_maps.sh+server.corpX.un:~# cat /​root/​zab_get_maps.sh
 </​code><​code>​ </​code><​code>​
 #!/bin/sh #!/bin/sh
Line 1400: Line 1468:
     \"​auth\":​ \"​${AUTH}\",​     \"​auth\":​ \"​${AUTH}\",​
     \"​id\":​ 2     \"​id\":​ 2
-} " http://​127.0.0.1/​zabbix/​api_jsonrpc.php | jq+} " http://​127.0.0.1/​zabbix/​api_jsonrpc.php 
 +</​code><​code>​ 
 +server.corpX.un:​~#​ /​root/​zab_get_maps.sh ​| jq -c '​.result | .[] | {name: .name, id: .sysmapid}'​
 </​code>​ </​code>​
- 
 ==== Пример изменения конфигурации через Zabbix API ==== ==== Пример изменения конфигурации через Zabbix API ====
 <​code>​ <​code>​
сервис_zabbix.txt · Last modified: 2023/10/03 18:15 by val