zabbix-proxy
Содержание
Обзор
Эта роль перемещена по адресу: https://github.com/ansible-collections/community.zabbix/ В этом репозитории будет доступна версия только для чтения для тех, кто пока не может использовать коллекции. Изменения/обновления будут применяться только к коллекции, а не к этому репозиторию.
Обновления
1.0.0
С выходом версии 1.0.0 внесены следующие изменения:
- Все свойства теперь начинаются с
zabbix_
. Например, свойство с названиемproxy_dbhost
теперь называетсяzabbix_proxy_dbhost
.
Операционные системы
Эта роль будет работать на следующих операционных системах:
- Red Hat
- Debian
- Ubuntu
Так что вам нужна одна из этих операционных систем.. :-) Пожалуйста, присылайте Pull Requests или предложения, если хотите использовать эту роль для других операционных систем.
Версии Zabbix
Смотрите следующий список поддерживаемых операционных систем с версиями Zabbix.
Zabbix 4.4
- CentOS 7.x, 8.x
- Amazon 7.x
- RedHat 7.x, 8.x
- OracleLinux 7.x, 8.x
- Scientific Linux 7.x, 8.x
- Ubuntu 14.04, 16.04, 18.04
- Debian 8, 9
Zabbix 4.2
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04, 18.04
- Debian 8, 9
Zabbix 4.0
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04, 18.04
- Debian 8, 9
Zabbix 3.4
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04
- Debian 7, 8, 9
Zabbix 3.2
- CentOS 7.x
- Amazon 7.x
- RedHat 7.x
- OracleLinux 7.x
- Scientific Linux 7.x
- Ubuntu 14.04, 16.04
- Debian 7, 8
Zabbix 3.0
- CentOS 5.x, 6.x, 7.x
- Amazon 5.x, 6.x, 7.x
- RedHat 5.x, 6.x, 7.x
- OracleLinux 5.x, 6.x, 7.x
- Scientific Linux 5.x, 6.x, 7.x
- Ubuntu 14.04
- Debian 7, 8
Zabbix 2.4
- CentOS 6.x, 7.x
- Amazon 6.x, 7.x
- RedHat 6.x, 7.x
- OracleLinux 6.x, 7.x
- Scientific Linux 6.x, 7.x
- Ubuntu 12.04, 14.04
- Debian 7
Zabbix 2.2
- CentOS 5.x, 6.x
- RedHat 5.x, 6.x
- OracleLinux 5.x, 6.x
- Scientific Linux 5.x, 6.x
- Ubuntu 12.04
- Debian 7
Переменные роли
Основные переменные
Существуют некоторые переменные в файле default/main.yml, которые могут быть изменены или переопределены:
zabbix_server_host
: IP-адрес или DNS-имя машины zabbix-сервера.zabbix_server_port
: Порт, на котором работает zabbix-сервер. По умолчанию: 10051zabbix_version
: Это версия Zabbix. По умолчанию 4.2, но может быть переопределена на 4.0/3.4/3.2/3.0/2.4/2.2.zabbix_proxy_{rhel,debian,ubuntu}_version
: Это версия zabbix proxy. Например, 4.4.4/4.2.5/4.2.8zabbix_repo
: True / False. Если у вас уже есть репозиторий с компонентами Zabbix, вы можете установить его в False.*zabbix_proxy_package_state
: По умолчанию: present. Может быть переопределен на "latest" для обновления пакетов при необходимости.zabbix_proxy_install_database_client
: True / False. False не устанавливает клиент базы данных. По умолчанию: True.zabbix_agent_become_on_localhost
: Установите вFalse
, если вам не нужно повышать привилегии на localhost для локальной установки пакетов с помощью pip. По умолчанию: Truezabbix_proxy_manage_service
: True / False. Если вы запускаете несколько прокси Zabbix в кластере высокой доступности (например, pacemaker), вы не хотите, чтобы Ansible управлял службой zabbix-proxy, поскольку Pacemaker контролирует службу zabbix-proxy.zabbix_install_pip_packages
: Установите вFalse
, если не хотите устанавливать необходимые пакеты pip. Полезно, когда вы полностью контролируете свою среду. По умолчанию: True
Есть некоторые специфические для zabbix-proxy переменные, которые будут использоваться для конфигурационного файла zabbix-proxy, они могут быть найдены в файле default/main.yml. Есть 2, которые требуют объяснения:
#zabbix_proxy_database: mysql
#zabbix_proxy_database_long: mysql
#zabbix_proxy_database: sqlite3
#zabbix_proxy_database_long: sqlite3
zabbix_proxy_database: pgsql
zabbix_proxy_database_long: postgresql
Поддерживаются 3 типа баз данных: mysql/postgresql и sqlite. Вам нужно закомментировать или размкомментировать базу данных, которую вы хотите использовать. В приведенном выше примере используется база данных postgresql. Если вы хотите использовать mysql, раскомментируйте 2 строки из mysql и закомментируйте 2 строки для postgresql.
Если вы используете mysql, вам нужно определить имя пользователя mysql, пароль и хост, чтобы подготовить базу данных zabbix, иначе они будут считаться значениями по умолчанию (и, следовательно, подключение к базе данных будет считаться подключением к localhost без пароля). Ключи приведены ниже: zabbix_proxy_mysql_login_host zabbix_proxy_mysql_login_user zabbix_proxy_mysql_login_password
Специфическая конфигурация TLS
Эти переменные специфичны для Zabbix 3.0 и выше:
*zabbix_proxy_tlsconnect
: Как прокси должен подключаться к серверу или прокси. Используется для активных проверок.Возможные значения:
- no_encryption
- PSK
- certificate
*zabbix_proxy_tlsaccept
: Какие входящие соединения следует принимать.Возможные значения:
- no_encryption
- PSK
- certificate
*zabbix_proxy_tlscafile
: Полный путь к файлу, содержащему сертификаты CA для проверки сертификата сверстника.*zabbix_proxy_tlscrlfile
: Полный путь к файлу, содержащему отозванные сертификаты.*zabbix_proxy_tlsservercertissuer
: Допустимый эмитент сертификата сервера.*zabbix_proxy_tlsservercertsubject
: Допустимый субъект сертификата сервера.*zabbix_proxy_tlscertfile
: Полный путь к файлу, содержащему сертификат агента или цепочку сертификатов.*zabbix_proxy_tlskeyfile
: Полный путь к файлу, содержащему закрытый ключ агента.*zabbix_proxy_tlspskidentity
: Уникальная строка, чувствительная к регистру, используемая для идентификации предвариательно установленного ключа.
Переменные API Zabbix
Эти переменные нужно переопределить, когда вы хотите использовать API Zabbix для автоматического создания и/или обновления хостов.
Конфигурация шифрования хоста будет настроена в соответствии с конфигурацией агента.
Когда zabbix_api_create_proxy
установлен в True
, он установит на хосте, выполняющем плейбук Ansible, модуль python zabbix-api
.
zabbix_url
: URL, по которому доступен веб-сайт Zabbix. Пример: http://zabbix.example.comzabbix_api_http_user
: HTTP пользователь для доступа к URL Zabbix с Basic Authzabbix_api_http_password
: HTTP пароль для доступа к URL Zabbix с Basic Authzabbix_api_create_proxy
: Когда вы хотите включить API Zabbix для создания/удаления прокси. Это должно быть установлено вTrue
, если вы хотите использоватьzabbix_create_proxy
. По умолчанию:False
zabbix_api_user
: Имя пользователя, имеющего доступ к API.zabbix_api_pass
: Пароль для пользователя, имеющего доступ к API.zabbix_create_proxy
: present (по умолчанию), если прокси нужно создать, или absent, если вы хотите его удалить. Это работает только еслиzabbix_api_create_proxy
установлен вTrue
.zabbix_proxy_status
: active (по умолчанию), если прокси должен быть активным, или passive.
Зависимости
Вам нужно самостоятельно найти правильную роль базы данных. Я хочу использовать роли, которые поддерживают 3 основные операционные системы, и пока не могу найти подходящую. Если есть роль, поддерживающая эти 3 операционные системы, пожалуйста, дайте мне знать, и я буду использовать ее в качестве зависимости.
Пример плейбука
Включение примера того, как использовать вашу роль (например, с переменными, переданными в качестве параметров), всегда приятно для пользователей:
- hosts: zabbix-proxy
sudo: yes
roles:
- { role: dj-wasabi.zabbix-proxy, zabbix_server_host: 192.168.1.1, database_type: pgsql, database_type_long: postgresql }
Лицензия
GPLv3
Информация об авторе
Это моя первая попытка создать роль ansible, поэтому, пожалуйста, присылайте предложения или Pull Requests, чтобы улучшить эту роль.
Github: https://github.com/dj-wasabi/ansible-zabbix-proxy
почта: ikben [at] werner-dijkerman.nl
ansible-galaxy install dj-wasabi/ansible-zabbix-proxy