Главная

Wednesday, 13 February 2019

Как заставить Agent-а zabbix выполнить внешнюю команду.

Всем привет.

Короткий практический кейс. Как заставить Agent-а zabbix выполнить внешнюю команду на хосте? И вернуть полученную информацию на сервер zabbix-а?

Делай раз. Изменить для Agent-а: 
- добавить в файл zabbix_agentd.win.conf:
UserParameter=Certificate, PowerShell.exe (Get-ChildItem -Path cert: -Recurse -ExpiringInDays 45).subject


Изменить значение параметра Timeout на максимальное, т.е. 
# Spend no more than Timeout seconds on processing.
Timeout=30

Делай два. Изменить для Server-а: 
- в файл zabbix_server.conf изменить значение параметра Timeout на максимальное
Timeout = 30

Делай три. При создании новой Item нужно использовать в качестве ключа слово "Certificate".

Делай четыре. При создании триггера его Expression может выглядеть как 
{192.168.1.15:Certificate.strlen()}>1
что значит что триггер сработает если в выводе будет хотя бы один два символа.

А запрос Get-ChildItem -Path cert: -Recurse -ExpiringInDays 100).subject
вернет построчно информацию про сертификаты которые истекают про сроку действия в течение 100 дней

Например вот такую:
CN=Oracle Corporation, O=Oracle Corporation, L=Redwood Shores, S=California, C=US

Успехов.


1 comment:

  1. UserParameter=Certificate, PowerShell.exe -Noninteractive -ExecutionPolicy Bypass -Noprofile -Command (Get-ChildItem -Path cert: -Recurse -ExpiringInDays 60).subject

    ReplyDelete

А что вы думаете по этому поводу?