Zabbix - включаем шифрование для Агента (Agent Encryption)
Если необходимо шифровать соединение между агентом и сервером нам потребуется включить шифрование. Можно использовать шифрование по сертификату или по PSK (ключу Pre-Shared Key). В этом примере я рассмотрю именно PSK, т.к. это на мой взгляд самый удобный способ шифрования: ключ сгенерировать легко и просто, так же можно использовать несколько ключей.
Установка Агента
Если у нас Linux или что-то подобное - нам повезло, ставим агента при помощи apt, rpm и прочих удобных штук, агент уже идет со всеми необходимыми библиотеками. Если Windows - придется немного поработать руками. Загружаем агента отсюда: https://www.zabbix.com/download_agents при этом нам нужна версия с поддержкой шифрования (в поле Encryption должно быть написано OpenSSL).
Распаковываем агента в папку, например C:\Zabbix
[Устарело, официальный агент уже слинкован со всеми библиотеками]
Теперь нам нужны библиотеки OpenSSL. Самое лучшее - взять вот отсюда https://support.zabbix.com/browse/ZBXNEXT-3047 уже собранный агент Zabbix. Т.к. у них версии агентов часто довольно старенькие, можно брать последнюю версию - из нее мы и выковыряем библиотеки. Вытаскиваем из архива файлы libcrypto-1_1.dll, libssl-1_1.dll и msvcr120.dll в нашу папку C:\Zabbix
Создаем ключ PSK
Оригинал: https://www.zabbix.com/documentation/current/ru/manual/encryption/using_pre_shared_keys
For example, a 256-bit (32 bytes) PSK can be generated using the following commands: with OpenSSL: $ openssl rand -hex 32 af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429 with GnuTLS: $ psktool -u psk_identity -p database.psk -s 32 Generating a random key for user 'psk_identity' Key stored to database.psk $ cat database.psk psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb Note that “psktool” above generates a database file with a PSK identity and its associated PSK. Zabbix expects just a PSK in the PSK file, so the identity string and colon (':') should be removed from the file.
Полученный ключ сохраняем в файл zabbix_agentd.psk и копируем его в C:\Zabbix
Настройка агента
Добавляем в файл zabbix_agentd.conf настройки шифрования:
TLSConnect=psk TLSAccept=psk TLSPSKIdentity=PSK001 TLSPSKFile=C:\Zabbix\zabbix_agentd.psk
Установка службы и запуск
Установка в качестве службы:
zabbix_agentd.exe --config "C:\Zabbix\conf\zabbix_agentd.conf" --install
Запуск:
net start "Zabbix Agent"
Остановка и удаление службы
Остановка:
net stop "Zabbix Agent"
Удаление службы:
zabbix_agentd.exe --uninstall
Подсказка
Если в процессе удаления/установки службы возникает сообщение «zabbix_agentd.exe [416]: ERROR: cannot create service [Zabbix Agent]: [0x00000430] The specified service has been marked for deletion.» и сам сервис висит в непонятном статусе - просто закройте все остнастки по управлению службами и повторите попыткуНастройка сервера Zabbix
Заходим в настройки хоста (Configuratino → Hosts → ваш_хост) и открываем закладку Encyption. Заполняем поля:
- Connection to host: PSK (Подключение к хосту от сервера Zabbix)
- Connection from host: PSK (Подключение от хоста к серверу Zabbix)
- PSK identity: PSK001 (Номер ключа в файле)
- PSK: ваш_PSK_ключ (Сам ключ)
Применяем настройки, запускаем агент и смотрим логи - все должно заработать.