dj-wasabi.zabbix-server
Tabla de Contenidos
- Visión General
- Actualizaciones
- Requisitos
- Instalación
- Variables del Rol
- Dependencias
- Ejemplo de Playbook
- Moleculae
- Contribuyentes
- Licencia
- Información del Autor
Visión General
Insignias:
Este es un rol para instalar y mantener el servidor Zabbix.
Este es uno de los roles de 'dj-wasabi' que configura todo tu entorno Zabbix. Consulta la lista completa a continuación:
- zabbix-web (https://galaxy.ansible.com/dj-wasabi/zabbix-web/)
- zabbix-server (https://galaxy.ansible.com/dj-wasabi/zabbix-server/)
- zabbix-proxy (https://galaxy.ansible.com/dj-wasabi/zabbix-proxy/)
- zabbix-javagateway (https://galaxy.ansible.com/dj-wasabi/zabbix-javagateway/)
- zabbix-agent (https://galaxy.ansible.com/dj-wasabi/zabbix-agent/)
Actualizaciones
1.0.0
Con esta versión 1.0.0, se cambió lo siguiente:
- Este repositorio contendrá solo las acciones necesarias para configurar correctamente un Servidor Zabbix. Todas las tareas relacionadas con el frontend/webui de Zabbix se han trasladado al rol
dj-wasabi.zabbix-web
. - Todas las propiedades ahora comienzan con
zabbix_
. Por ejemplo, la propiedad llamadaserver_dbuser
ahora eszabbix_server_dbuser
.
Requisitos
Sistemas operativos
Este rol funcionará en los siguientes sistemas operativos:
- Red Hat
- Debian
- Ubuntu
Así que necesitarás uno de esos sistemas operativos. :-) Por favor, envía Pull Requests o sugerencias si deseas utilizar este rol en otros sistemas operativos.
Versiones de Zabbix
Consulta la siguiente lista de sistemas operativos compatibles con las versiones de 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
- xenserver 6
Instalación
Instalar este rol es muy simple: ansible-galaxy install dj-wasabi.zabbix-server
Ten en cuenta que este rol solo instala el Servidor Zabbix y no el Zabbix Web. Si deseas tener un Zabbix Web, ejecuta el siguiente comando: ansible-galaxy install dj-wasabi.zabbix-web
El nombre de usuario y contraseña predeterminados para la interfaz web de Zabbix son los que vienen por defecto en la instalación de Zabbix.
Nombre de usuario: Admin
Contraseña: zabbix
Variables del Rol
Variables principales
A continuación se muestra un resumen de todas las configuraciones predeterminadas disponibles para este rol.
Zabbix en general
zabbix_server_version
: Esta es la versión de Zabbix. Predeterminado: 4.4. Puede ser reemplazada por 3.2, 3.0, 2.4 o 2.2. Anteriormente, se utilizaba directamente la variablezabbix_version
, pero podía causar algunos inconvenientes. Esa variable se mantiene por retrocompatibilidad.zabbix_repo_yum
: Una lista con la configuración del repositorio Yum.zabbix_repo
: Predeterminado: zabbix- epel instalar agente desde el repositorio EPEL
- zabbix (predeterminado) instalar agente desde el repositorio de Zabbix
- other instalar agente desde un repositorio preexistente u otro
zabbix_server_package_state
: Predeterminado: present. Puede ser reemplazada por "latest" para actualizar los paquetes cuando sea necesario.zabbix_service_state
: Predeterminado:started
. Puede ser cambiado a stopped si es necesario.zabbix_service_enabled
: Predeterminado:True
. Puede ser reemplazada porFalse
si es necesario.zabbix_selinux
: Activa una política SELinux para que el servidor se ejecute. Predeterminado: False.
Servidor Zabbix
zabbix_server_name
: El nombre del Servidor Zabbix.zabbix_server_database
: El tipo de base de datos utilizada. Puede ser: mysql o pgsql.zabbix_server_database_long
: El tipo de base de datos utilizada, pero el nombre largo. Puede ser: mysql o postgresql.zabbix_server_hostname
: El nombre de host en el que se ejecuta el servidor Zabbix. Predeterminado: {{ inventory_hostname }}.zabbix_server_listenport
: En qué puerto está disponible el Servidor Zabbix. Predeterminado: 10051.zabbix_server_dbhost
: El nombre del host en el que se ejecuta la base de datos.zabbix_server_real_dbhost
: El nombre del host de la base de datos que se ejecuta detrás de un balanceador de carga/VIP (los balanceadores de carga no aceptan conexiones ssh).zabbix_server_dbname
: El nombre de la base de datos utilizada por el Servidor Zabbix.zabbix_server_dbuser
: El nombre de usuario de la base de datos que utiliza el Servidor Zabbix.zabbix_server_dbpassword
: La contraseña del usuario de la base de datos utilizada por el Servidor Zabbix.zabbix_server_dbport
: El puerto de la base de datos que utiliza el Servidor Zabbix.zabbix_database_creation
: True / False. Si no deseas crear la base de datos incluido el usuario, puedes configurarlo en False.zabbix_server_install_recommends
: True / False. False no instala los paquetes recomendados que vienen con la instalación del servidor Zabbix. Predeterminado True.zabbix_server_install_database_client
: True / False. False no instala el cliente de la base de datos. Predeterminado True.zabbix_database_sqlload
: True / False. Si no deseas cargar los archivos sql en la base de datos, puedes configurarlo en False.zabbix_server_dbencoding
: La codificación para la base de datos MySQL. Predeterminado:utf8
.zabbix_server_dbcollation
: La colación para la base de datos MySQL. Predeterminado:utf8_bin
.zabbix_server_manage_service
: True / False. Cuando ejecutas múltiples servidores Zabbix en una configuración de clúster de alta disponibilidad (por ejemplo, pacemaker), no deseas que Ansible gestione el servicio del servidor Zabbix, porque Pacemaker está a cargo del servicio del servidor Zabbix.
Scripts personalizados de Zabbix
Define estas variables para copiar scripts a su respectiva ruta de scripts.
zabbix_server_alertscripts
: Lista de scripts de alerta que se agregarán azabbix_server_alertscriptspath
.zabbix_server_externalscripts
: Lista de scripts de alerta que se agregarán azabbix_server_externalscriptspath
.
Ejemplo:
zabbix_server_alertscripts:
- path: "{{ lookup('first_found', 'zabbix-scripts/somescript.php') }}"
name: "somescript.php"
Configuración específica de TLS
Estas variables son específicas para Zabbix 3.0 y versiones superiores:
zabbix_server_tlsconnect
: Cómo debe conectarse el agente al servidor o proxy. Se utiliza para comprobaciones activas. Posibles valores:- sin encriptar
- psk
- cert
zabbix_server_tlsaccept
: Qué conexiones entrantes aceptar. Valores posibles:- sin encriptar
- psk
- cert
zabbix_server_tlscafile
: Ruta completa a un archivo que contiene los certificados CA de nivel superior para la verificación del certificado del par.zabbix_server_tlscrlfile
: Ruta completa a un archivo que contiene certificados revocados.zabbix_server_tlsservercertissuer
: Emisor del certificado del servidor permitido.zabbix_server_tlsservercertsubject
: Sujeto del certificado del servidor permitido.zabbix_server_tlscertfile
: Ruta completa a un archivo que contiene el certificado del agente o la cadena de certificados.zabbix_server_tlskeyfile
: Ruta completa a un archivo que contiene la clave privada del agente.
Base de datos
Hay algunas variables específicas del servidor Zabbix que se usarán para el archivo de configuración del servidor Zabbix. Estos se pueden encontrar en el archivo defaults/main.yml. Hay 3 que necesitan alguna explicación:
#zabbix_server_database: mysql
#zabbix_server_database_long: mysql
zabbix_server_database: pgsql
zabbix_server_database_long: postgresql
[...]
zabbix_server_dbport: 5432
Hay 2 tipos de bases de datos que serán soportadas: mysql y postgresql. Debes comentar o descomentar la base de datos que deseas usar y ajustar el número de puerto (server_dbport
) en consecuencia (5432
es el puerto predeterminado de postgresql). En el ejemplo de arriba, se utiliza la base de datos de postgresql. Si deseas usar mysql, descomenta las 2 líneas de mysql y comenta las 2 líneas para postgresql y cambia el puerto de la base de datos al de mysql (el puerto predeterminado de mysql es 3306
).
Si utilizas mysql, debes definir el nombre de usuario, la contraseña y el host de mysql para preparar la base de datos zabbix. De lo contrario, se considerarán sus valores predeterminados (y por lo tanto, la conexión a la base de datos se considerará como una conexión a localhost sin contraseña). Las claves son las siguientes:
zabbix_server_mysql_login_host
zabbix_server_mysql_login_user
zabbix_server_mysql_login_password
Si utilizas pgsql, debes definir el nombre de usuario, la contraseña y el host de pgsql para preparar la base de datos zabbix. De lo contrario, se considerarán sus valores predeterminados (y por lo tanto, la conexión a la base de datos se considerará como una conexión a localhost sin contraseña). Las claves son las siguientes:
zabbix_server_pgsql_login_host
zabbix_server_pgsql_login_user
zabbix_server_pgsql_login_password
Dependencias
Para las bases de datos debes encontrar un rol que se adapte a tus necesidades, ya que no quiero obligarte a usar un rol específico. Antes de aplicar este rol de Servidor Zabbix, el servicio de base de datos debe estar ya instalado y ejecutándose y debe ser capaz de manejar los módulos en Ansible que pertenecen a esa base de datos.
Este rol no instalará un servicio MySQL o PostgreSQL.
Este rol creará un usuario Zabbix y una base de datos Zabbix en el tipo de base de datos configurado.
Ejemplo de Playbook
Incluir un ejemplo de cómo usar tu rol (por ejemplo, con variables pasadas como parámetros) es siempre útil para los usuarios también:
- hosts: zabbix-server
become: yes
roles:
- { role: dj-wasabi.zabbix-server, zabbix_server_database: mysql, zabbix_server_database_long: mysql }
Moleculae
Este rol está configurado para ser probado con Molecule. Puedes encontrar en estas páginas más información sobre Molecule:
- http://werner-dijkerman.nl/2016/07/10/testing-ansible-roles-with-molecule-testinfra-and-docker/
- http://werner-dijkerman.nl/2016/07/27/extending-ansible-role-testing-with-molecule-by-adding-group_vars-dependencies-and-using-travis-ci/
- http://werner-dijkerman.nl/2016/07/31/testing-ansible-roles-in-a-cluster-setup-with-docker-and-molecule/
Contribuyentes
Los siguientes han contribuido a este rol de Ansible (Lista de Honor):
- drmikecrowe
- srvg
- kostyrevaa
- clopnis
- SAL-e
- lhoss
- mescanef
Licencia
MIT
Información del Autor
Este es mi primer intento de crear un rol de ansible, así que envía sugerencias o pull requests para mejorar este rol.
Github: https://github.com/dj-wasabi/ansible-zabbix-server
correo: ikben [ at ] werner-dijkerman . nl
Installing and maintaining zabbix-server for RedHat/Debian/Ubuntu.
ansible-galaxy install dj-wasabi.zabbix-server