Мониторинг SSL сертификатов в Zabbix

Thank you for reading this post, don't forget to subscribe!

Рас­смот­рим вари­ант мони­то­рин­га SSL сети­фи­ка­тов с помо­щью Zabbix.

Суще­ству­ют услов­но гово­ря два мето­да: дис­ка­ве­ри и руч­ной. Рас­смот­рю руч­ной, т.к. в дис­ква­ре может попа­дать мно­го лиш­не­го и часто прий­дет­ся изме­нять регу­ляр­ные выра­же­ния для исклю­че­ния ненуж­ных доме­нов. Иной вари­ант, всё дис­ка­ве­ри све­дет­ся к тому, что вы в нем оста­ви­те толь­ко нуж­ные доме­ны, а все новые про­игно­ри­ру­те, поэто­му дела­ем руч­ной метод с воз­мож­ность редак­ти­ро­ва­ния (добавления/удаления) необ­хо­ди­мых доме­нов для про­вер­ки из само­го Zabbix.

Для нача­ла необ­хо­дим скрипт, кото­рый будет про­ве­рять и воз­вра­щать нам значения:

cat ssl_check.sh

 

 

Вари­ант №2 скрип­та, логи­ка воз­вра­та пере­мен­ной RETVAL  несколь­ко изме­не­на, т.к. наблю­да­лись ошиб­ки с полу­че­ни­ем кол-ва дней до кон­ца сертификата:

 

 

Про­ве­рим в какой ката­лог смот­рит заб­бикс для исполь­зва­ния внеш­них скрип­тов, если нет, дописываем

# cat /etc/zabbix/zabbix_server.conf | grep externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts

Поме­ща­ем наш скрипт ssl_check.sh в ката­лог /usr/lib/zabbix/externalscripts и добав­ля­ем атри­бу­ты на выполнения:

chmod +x /usr/lib/zabbix/externalscripts/ssl_check.sh

Так­же созда­ем файл для логов и выстав­ля­ем ему соот­вет­ству­ю­ще­го владельца

touch /usr/lib/zabbix/externalscripts/ssl_check.log
chown zabbix:zabbix /usr/lib/zabbix/externalscripts/ssl_check.log

Пере­за­гру­жа­ем zabbix сервер

systemctl restart zabbix-server

Cоз­да­нию Items и Triggers

Мож­но исполь­зо­вать тем­плейт, но быст­рее создать необ­хо­ди­мое самостоятельно.

zbx2-4_SSL_Template

zbx_ssl_with_6macro_and_graph_templates.xml

Для наше­го zabbix-server в hosts zabbix созда­ем новый Items

Новый Items

Поле Key запол­ня­ем и ука­зы­ва­ем в нем необ­хо­ди­мый нам домен

ssl_check.sh[google.com,{$SSL_PORT}]

Далее пере­хо­дим в Triggers и созда­ем новый тригер

Новый trigger

Непо­сред­ствен­но само выражение:

{Zabbix server:ssl_check.sh[google.com,{$SSL_PORT}].last(0)}<6

В дан­ном выра­же­ние сто­ит обра­тить вни­ма­ние на срок, когда сра­бо­та­ет три­гер, когда до сро­ка окон­ча­ние будет менее 6 дней.

На этом все, сле­ди­те за сер­ти­фи­ка­та­ми и не забы­вай­те их вовре­мя продлевать