cloudalchemy.node_exporter
OBSOLETO
Este rol ha sido descontinuado en favor de la colección prometheus-community/ansible.
Rol de Ansible: exportador de nodo
Advertencia
Debido a limitaciones de galaxy.ansible.com, tuvimos que mover el rol a https://galaxy.ansible.com/cloudalchemy/node_exporter y usar _
en lugar de -
en el nombre del rol. Este es un cambio rompedor y, desafortunadamente, afecta a todas las versiones del rol de exportador de nodo, ya que ansible galaxy no ofrece ninguna forma de redireccionamiento. Pedimos disculpas por los inconvenientes.
Descripción
Despliega el exportador de nodo de Prometheus usando Ansible.
Requisitos
- Ansible >= 2.7 (Puede funcionar en versiones anteriores, pero no podemos garantizarlo)
- gnu-tar en el host del desplegador de Mac (
brew install gnu-tar
) - Passlib es necesario al usar la función de autenticación básica (
pip install passlib[bcrypt]
)
Variables del Rol
Todas las variables que se pueden sobreescribir están almacenadas en defaults/main.yml y se enumeran en la tabla a continuación.
Nombre | Valor por Defecto | Descripción |
---|---|---|
node_exporter_version |
1.1.2 | Versión del paquete del exportador de nodo. También acepta "última" como parámetro. |
node_exporter_binary_local_dir |
"" | Permite el uso de paquetes locales en lugar de los distribuidos en GitHub. El parámetro puede configurarse a un directorio donde se almacena el binario node_exporter en el host donde se ejecuta Ansible. Esto anula el parámetro node_exporter_version . |
node_exporter_web_listen_address |
"0.0.0.0:9100" | Dirección en la que escuchará el exportador de nodo. |
node_exporter_web_telemetry_path |
"/metrics" | Ruta bajo la cual se expondrán métricas. |
node_exporter_enabled_collectors |
["systemd",{textfile: {directory: "{{node_exporter_textfile_dir}}"}}] |
Lista de diccionarios que definen coleccionistas habilitados adicionalmente y su configuración. Añade coleccionistas a los habilitados por defecto. |
node_exporter_disabled_collectors |
[] | Lista de coleccionistas deshabilitados. Por defecto, el exportador de nodo deshabilita los coleccionistas que se enumeran aquí. |
node_exporter_textfile_dir |
"/var/lib/node_exporter" | Directorio utilizado por el Textfile Collector. Para obtener permisos para escribir métricas en este directorio, los usuarios deben estar en el grupo del sistema node-exp . Nota: Más información en la guía TROUBLESHOOTING.md. |
node_exporter_tls_server_config |
{} | Configuración para la autenticación TLS. Las claves y valores son los mismos que en la documentación del exportador de nodo. |
node_exporter_http_server_config |
{} | Configuración para soporte HTTP/2. Las claves y valores son los mismos que en la documentación del exportador de nodo. |
node_exporter_basic_auth_users |
{} | Diccionario de usuarios y contraseñas para la autenticación básica. Las contraseñas se hash automáticamente con bcrypt. |
Ejemplo
Playbook
Úsalo en un playbook de la siguiente manera:
- hosts: all
roles:
- cloudalchemy.node_exporter
Configuración de TLS
Antes de ejecutar el rol de exportador de nodo, el usuario necesita provisionar su propio certificado y clave.
- hosts: all
pre_tasks:
- name: Crear el directorio cert de node_exporter
file:
path: "/etc/node_exporter"
state: directory
owner: root
group: root
- name: Crear cert y clave
openssl_certificate:
path: /etc/node_exporter/tls.cert
csr_path: /etc/node_exporter/tls.csr
privatekey_path: /etc/node_exporter/tls.key
provider: selfsigned
roles:
- cloudalchemy.node_exporter
vars:
node_exporter_tls_server_config:
cert_file: /etc/node_exporter/tls.cert
key_file: /etc/node_exporter/tls.key
node_exporter_basic_auth_users:
randomuser: examplepassword
Sitio de Demostración
Proporcionamos un sitio de ejemplo que demuestra una solución completa de monitoreo basada en Prometheus y Grafana. El repositorio con el código y enlaces a instancias en ejecución está disponible en GitHub y el sitio está hospedado en DigitalOcean.
Pruebas Locales
La manera preferida de probar el rol localmente es usar Docker y molecule (v3.x). Debes instalar Docker en tu sistema. Consulta "Comenzar" para un paquete de Docker adecuado para tu sistema. Ejecutar tus pruebas es tan sencillo como ejecutar molecule test
.
Integración Continua
Combinar molecule y CircleCI nos permite probar cómo se comportarán nuevas PR al usarse con múltiples versiones de Ansible y varios sistemas operativos. Esto también nos permite crear escenarios de prueba para diferentes configuraciones de roles. Como resultado, tenemos una matriz de pruebas bastante amplia, que puede tomar más tiempo que las pruebas locales, así que por favor sé paciente.
Contribuyendo
Consulta la guía para colaboradores.
Solución de Problemas
Consulta solución de problemas.
Licencia
Este proyecto está bajo la Licencia MIT. Consulta LICENSE para más detalles.
ansible-galaxy install cloudalchemy.node_exporter