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.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj1TwjQ_AOOa-rgkKMRJ9FpwDogwvj9cI72eXoOVW7DmwdQYsFr3CEQsJASofGYxLiP9qODWHc56kIBJiGNwlZbPjRFz9uXzaleMiEC0ePV9Q0JFyZzAlfuRRFy5BGYxRsSPR5v6v3cghA/s320/Vault_Secret.png) |
Vault po přihlášení
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt623scix0fR3jSrYk9w0cCO6GrP0_-ETuUV-70L69dqfMfHt6k3KDWEUxrGDg802Y-uRhrt4osG1SBpd4PoMzMUuRcj8cejoBHf61SAWHd2iplHQFjIWy2591eW0XAUhZeqqONWzkU6xw/s320/Vault_Secret_zabbix.png) |
Nastavený secret zabbix
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieqiG1bN-KFhk6D_pGp8TLaCiIpEWvz35zVhyphenhyphenLwI19vOp_wCV2imH6BlSsycgurEh3tkDRV7Uru1-ircdgRbOSZXPxUAz_Es078Drj945iiihY860CCru3bHeLfmOWxxCzXMM__b4bpCzi/s320/Vault_Secret_zabbix_history.png) |
Historie změn
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_3XPVJeHaHSF5KFKenb26fTNudWGYavniuSwY0ZiheQIF3qXk3MZ2gSgCLFAn_YyWEv9xjnSjdvj0-sTjtII6Duba1ofpKTwEMCf0eoIKFGwgcjiV9U6FU5q-H0FWULSnPiE33BTaiifj/s320/Vault_Secret_zabbix_JSON.png) |
Odtajněný pohled na secret ve formátu JSON
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwGEBeMxNzki5SwDMDIDMI-JUI2UF3EEXkTQaO26y0qsIV3yylFWF0rKF_AjpDXStD15YQGU_KOjfgFcxp3fyin2p8efqOfqmgZaVsuyQkUfxfIYqOd9_LlY2mD0MsaBjZgtwQ4fuuKf5O/s320/Zabbix_item_dbsize.png) |
Metrika SSH - date
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuICSYqD8bPHbI51DLuSZyBSRKnePWhbCOmo8OxpLNzMtednTWYl_mNLwu-opq8qIR9LY9SNQi3IZj_hxkC5v84uLNd-v7SY2BL9WPNbSoxMTZFIPKCkhAHB8N7AcVlLB-GbOI4IePD2VW/s320/Zabbix_item_ssh_date.png) |
Metrika DBSIZE - ODBC |
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB91IlRjpSDfmmqzebJ2Pp6cKAkuGOF6G9IKMX0rofGMCPXU64UHzZNBerMq5aYEs9LlokoUXfmPspyyvQNme-UA_4vz8SAVktONioayk9dC7A0r8QiN_hybGM_D3yWeBPNFpTqGkv26h8/s320/Zabbix_macro_vault_host.png) |
Makro Vault na Hostu |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpfC_1CSwMksl4zLnmlJQnqLtfYf0Aw-aKcip4I6sYwUwnmarD_-G-TwOddPBaPuNCWzA-X8_8Fwkn7OQEsSiQjqYad_N9JLyfeQ2L7IbkMTEf729-GOPrEK_XAQ_kQWZ2OJ4IorjSos55/s320/Zabbix_macro_vault_template.png) |
Makro Vault v šabloně | | |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLl8aJ9HLRmLG0Tr_T9KBp6w0A5US-8-j1p_11yQ9gZpAzupl6ogtTtsF6O3Oz1bMKRknrUmlTJtb0lkiKHCV2jOJfy4S7u11xfdIk2yvaT5pjwN5d32ImFV8qwKfH4PQPguVUTWXBfuYR/s320/Zabbix_latest_data.png) |
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.