Pro kotrolu validace SSL certifikátů v Zabbixu jsem se rozhodl použít návod na wiki.zabbix, kde je odkaz na podrobnější autorův web.
Vše by fungovalo, až na malou drobnost a tou je následující příkaz, který je součástí scriptu, porovnávající datum z certifikátu s aktuálním časem. BSD date a GNU date je jiný a parametry jsou jine.
BSD date
date '+%s' --date "Dec 29 23:59:59 2013 GMT"
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
Script zext_ssl_check.sh, který používá OpenSSL (openssl s_client) pro zjištění data expirace certifikátu jsem si postupně prošel až jsem narazil na příkaz date. Abych FreeBSD naučil GNU date - gdate, musel jsem doinstalovat následující balíček coreutils.
coreutils-8.20_2 The Free Software Foundation's core utilities
Pak už příkaz dělal co má.
GNU date
gdate '+%s' --date "Dec 29 23:59:59 2013 GMT"
1388361599
Pak už příkaz dělal co má. Na stránce autora jsou dvě verze scriptu pro kontrolu SSL certifikátů. Jedna je z webu a druha je z svn.
Verze s svn vraci jen počet dní do expirace.
./zext_ssl_check.sh edu.mudk.cz 443
290
Verze z webu ma širší použití.
./zext_ssl_cert.sh
usage: ./zext_ssl_cert.sh [-i|-d] hostname port
-i Show Issuer
-d Show valid days remaining
./zext_ssl_cert.sh -i edu.mudk.cz 443
Thawte DV SSL CA
./zext_ssl_cert.sh -d edu.mudk.cz 443
290
Ke každému scriptu je extra Template. Použil jsem verzi z svn, ale musel jsem Template modifikovat pro Zabbix 2.0.5. Konkrétně mi External_check nefungoval.
Mnou upravená definice klíče.
zext_ssl_check.sh[{HOST.CONN},{$SSL_PORT}]
V Template bylo. Zkrátka musíme vědět co a jak je kde třeba :-)
zext_ssl_cert.sh[{$SSL_PORT}]
s tím, že varianta
zext_ssl_check.sh[{HOST.CONN}, {$SSL_PORT}]
a
zext_ssl_check.sh[{HOST.CONN} {$SSL_PORT}]
mi nefunovala v Zabbixu 2.0.5.
čtvrtek 14. března 2013
pondělí 11. března 2013
Zabbix PostgreSQL
Pro dočasné monitorování mailserveru edu.mudk.cz jsem na byvalém serveru zprovoznil Zabbix pod aktuální verzí FreeBSD 9.1-RELEASE-p1. Zabbix jsem nyní chtěl vyzkoušet s databází PostgreSQL 9.2.
Instalace a konfigurace všech potřebných aplikací vychází z aktuálních FreeBSD portů.
Konfigrace Zabbixu s použitím PostgreSQL je obecně popsána zde.
psql template1
CREATE USER zabbix WITH ENCRYPTED PASSWORD '*****' NOCREATEDB NOCREATEUSER;
Vytvoříme a převlastníme adresář pro TABLESPACE.
mkdir -p /data/pgsql/zabbix && chown pgsql:pgsql /data/pgsql/zabbix
CREATE TABLESPACE zabbix OWNER zabbix LOCATION '/data/pgsql/zabbix';
CREATE DATABASE zabbix WITH OWNER = zabbix TABLESPACE = zabbix;
Rozbalíme si tarbal.
cd /tmp/ && tar xvzf /usr/ports/distfiles/zabbix-2.0.5.tar.gz
cd /tmp/zabbix-2.0.5/database/postgresql
Naimportujeme db schéma
cat schema.sql | psql -U zabbix zabbix
cat images.sql | psql -U zabbix zabbix
cat data.sql | psql -U zabbix zabbix
Kompilace Zabbixu i PHP musí být nastavena s podporou PostgreSQL.
Instalace a konfigurace všech potřebných aplikací vychází z aktuálních FreeBSD portů.
- Apache - apache22-2.2.24
- PHP - php5-5.4.12
- Zabbix - zabbix2-server-2.0.5
- PostgreSQL - postgresql-server-9.2.3
Konfigrace Zabbixu s použitím PostgreSQL je obecně popsána zde.
psql template1
CREATE USER zabbix WITH ENCRYPTED PASSWORD '*****' NOCREATEDB NOCREATEUSER;
Vytvoříme a převlastníme adresář pro TABLESPACE.
mkdir -p /data/pgsql/zabbix && chown pgsql:pgsql /data/pgsql/zabbix
CREATE TABLESPACE zabbix OWNER zabbix LOCATION '/data/pgsql/zabbix';
CREATE DATABASE zabbix WITH OWNER = zabbix TABLESPACE = zabbix;
Rozbalíme si tarbal.
cd /tmp/ && tar xvzf /usr/ports/distfiles/zabbix-2.0.5.tar.gz
cd /tmp/zabbix-2.0.5/database/postgresql
Naimportujeme db schéma
cat schema.sql | psql -U zabbix zabbix
cat images.sql | psql -U zabbix zabbix
cat data.sql | psql -U zabbix zabbix
Kompilace Zabbixu i PHP musí být nastavena s podporou PostgreSQL.