This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
сервис_zabbix [2022/03/12 12:22] val [Debian] |
сервис_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 132: | Line 134: | ||
# 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 146: | Line 149: | ||
# 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> | ||
- | ... | + | #... |
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 199: | 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 не заработал в 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 219: | 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 230: | 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 398: | Line 410: | ||
{{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 597: | Line 613: | ||
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 608: | 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 681: | 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]] | ||
=== Исследование приложения === | === Исследование приложения === | ||
+ | |||
+ | * !!! [[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 743: | 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 773: | 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 794: | 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 818: | 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 828: | Line 862: | ||
=== Пример с текстовым элементом === | === Пример с текстовым элементом === | ||
+ | Zabbix 5 | ||
<code> | <code> | ||
Name: Host {HOST.NAME} nmap change | Name: Host {HOST.NAME} nmap change | ||
Line 835: | Line 870: | ||
или | или | ||
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 901: | 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 942: | Line 984: | ||
<code> | <code> | ||
- | Configuration - Actions - Auto registration | + | Alerts|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 959: | Line 1002: | ||
StartAgents=0 | StartAgents=0 | ||
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> | ||
=== Использование UserParameter === | === Использование UserParameter === | ||
- | * Пример для Linux/Unix | + | == Примеры для Linux == |
* [[Сервис DHCP#Статистика DHCP сервера]] | * [[Сервис DHCP#Статистика DHCP сервера]] | ||
Line 976: | Line 1026: | ||
</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 985: | Line 1045: | ||
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 998: | Line 1058: | ||
@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> | ||
+ | |||
=== Автоматическое добавление === | === Автоматическое добавление === | ||
- | * [[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 1023: | Line 1086: | ||
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 criteria: IP address | + | |
+ | 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 1037: | Line 1102: | ||
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 7.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 1055: | Line 1125: | ||
* [[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 1105: | 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 1125: | Line 1203: | ||
* [[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 1188: | 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 1195: | 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 1203: | 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 1272: | Line 1356: | ||
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 1287: | 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 1293: | 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 1302: | Line 1392: | ||
"method": "user.login", | "method": "user.login", | ||
"params": { | "params": { | ||
- | "user": "Admin", | + | "username": "Admin", |
"password": "zabbix" | "password": "zabbix" | ||
}, | }, | ||
Line 1320: | 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 1331: | 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 1392: | Line 1487: | ||
Список имен узлов | Список имен узлов | ||
- | 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 1411: | Line 1506: | ||
\"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 ==== | ||
+ | |||
+ | * Язык программирования 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 1435: | 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> |