dj-wasabi.zabbix-server

Tabla de Contenidos

Visión General

Insignias:

Estado de construcción

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:

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 llamada server_dbuser ahora es zabbix_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 variable zabbix_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 por False 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 a zabbix_server_alertscriptspath.
  • zabbix_server_externalscripts: Lista de scripts de alerta que se agregarán a zabbix_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:

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

Acerca del proyecto

Installing and maintaining zabbix-server for RedHat/Debian/Ubuntu.

Instalar
ansible-galaxy install dj-wasabi.zabbix-server
Licencia
mit
Descargas
68.5k
Propietario
DevOps Engineer, Technical reviewer Packt Pub / Manning / BPB Online / O'Reilly Media