Nová verze Zabbix 6.0 LTS disponuje novou fukcionalitu pro bezpečné ukládání tajemství např. hesla. Secrets se ukládaji do aplikace Vault od společnosti HashiCorp. Pro vyzkoušení jsem si nainstaloval Zabbix 6.0.0alpha6 a Vault jsem zprovoznil pomoci Docker.
git clone https://github.com/misterpki/docker-vault
cd docker-vault
docker-compose -f docker-compose.yml up -d
Na http://192.168.42.7:8200 se můžeme přihlásit do web gui. Použijeme TOKEN, který je přednastaven v Dockeru. Tato instalace je vhodná jen pro testovaní nikoliv pro produkci, protože Vault neběží na SSL/TLS.
V dokumentaci Zabbixu je Storage of secrets podrobně popsáno. Dále je nutné provést úpravu konfiguračních souboru zabbix serveru a frontendu.
vi /etc/zabbix/zabbix_server.conf
VaultToken=vault-plaintext-root-token
VaultURL=http://192.168.42.7:8200
vi /etc/zabbix/web/zabbix.conf.php
$DB['VAULT_URL'] = 'http://192.168.42.7:8200';
$DB['VAULT_TOKEN'] = 'vault-plaintext-root-token';
Do Vault je třeba založit secret pro Zabbix a ten posléze nastavit v makrech Zabbix šablony nebo hosta. To je možné provést z cmd nebo z web gui Vault.
Pro ukázku jsem si vybrat dvě metriky, které využívají secret. Jedním je Item type SSH, kde se přihlásíme na server pomocí SSH a získáme datum. A druhý Item type Database, kde se pomocí nakonfigurovaného UnixODBC připojíme k databázi zabbix a zjistíme jeji velikost. Obě hesla nebudou uložena v databázi Zabbixu jako makra, ale hesla si stáhnou z HashiCorp Vault.
|
Vault po přihlášení
|
|
Nastavený secret zabbix
|
|
Historie změn
|
|
Odtajněný pohled na secret ve formátu JSON
|
|
Metrika SSH - date
|
|
Metrika DBSIZE - ODBC |
|
|
Makro Vault na Hostu |
|
Makro Vault v šabloně | | |
|
Zabbix Latest data dvou metrik
|
Pokud to s HashiCorp Vault myslíme vážně a provozujeme jej produkčně má smysl nastavit monitorování pomocí šablony HashiCorp Vault by HTTP.