librato.librato
Rol de Ansible: Librato
Un rol de Ansible que instala y configura el Agente de Librato y sus complementos.
Requisitos
Ninguno.
Dependencias
Ninguna.
Inicio rápido
Lo mínimo necesario para comenzar es configurar las variables email y token, e incluir el rol:
- hosts: all
roles:
- { role: librato.librato, librato_email: '[email protected]', librato_token: 'tu-token-aqui' }
Por defecto, los siguientes complementos están habilitados: cpu, df, disk, swap, memory, load.
Para incluir un complemento, establece las variables que necesites y luego agrégalo a la variable librato_enabled_plugins:
- hosts: all
vars:
librato_apache_path: '/mi-endpoint-de-status'
librato_enabled_plugins: ['apache']
Complementos Soportados
cpudfmemoryloaddiskswapapachenginxnginx_plusjvmmemcachedvarnishzookeeperdockerelasticsearchmongodbpostgresqlmysqlredishaproxy
Uso
Usando complementos collectd personalizados o de upstream
Para usar tu propio complemento collectd personalizado o de upstream, simplemente haz que otro módulo coloque la configuración en /opt/collectd/etc/collectd.conf.d/ y cualquier complemento personalizado en /opt/collectd/share/collectd/.
Referencia
Complemento: apache
librato_apache_protocolTipo: string
El protocolo a usar. Por defecto es
http. Cambia esto ahttpssi necesitas SSL.librato_apache_hostTipo: string
El nombre del host a usar. Por defecto es
localhost.librato.apache.pathTipo: string
La ruta a la página de estado. Por defecto es
/server-status.?autose agrega automáticamente, así que no es necesario incluirlo.librato_apache_userTipo: string
El nombre de usuario para páginas de estado protegidas por contraseña. Por defecto está vacío.
librato_apache_passwordTipo: string
La contraseña para páginas de estado protegidas por contraseña. Por defecto está vacía.
Complemento: docker
librato_docker_protocolTipo: string
El protocolo a usar. Por defecto es
http. Cambia esto ahttpssi necesitas SSL.librato_docker_hostTipo: string
El nombre del host de Docker. Por defecto es
localhost.librato_docker_portTipo: string
El puerto de Docker. Por defecto es
2735.
Complemento: elasticsearch
librato_elasticsearch_protocolTipo: string
El protocolo a usar. Por defecto es
http. Cambia esto ahttpssi necesitas SSL.librato_elasticsearch_hostTipo: string
El nombre del host de ElasticSearch. Por defecto es
localhost.librato_elasticsearch_port_Tipo: string
El puerto de ElasticSearch. Por defecto es
9200.librato_elasticsearch_cluster_nameTipo: string
El nombre del clúster de ElasticSearch, si se establece. Por defecto es
nil.librato_elasticsearch_verboseTipo: true/false
Indica el nivel de detalle del complemento. Por defecto es
true.
Complemento: haproxy
librato_haproxy_socket_fileTipo: string
El archivo de socket de HAProxy. Por defecto es
/run/haproxy/admin.sock.librato_haproxy_proxiesTipo: array
Los proxys por defecto a recolectar. Por defecto son
server,frontend,backend.
Complemento: jvm
librato_jvm_hostTipo: string
El host de JVM. Por defecto es
localhost.librato_jvm_service_urlTipo: string
La URL del servicio JVM a consultar. Por defecto es
service:jmx:rmi:///jndi/rmi://localhost:17264/jmxrmi.librato_jvm_mbeansTipo: mapping
Mbeans adicionales a recolectar. Por defecto está vacío.
El formato del mapeo es:
librato_jvm_mbeans: [ { name: 'nombre mbean' object_name: 'nombre objeto' instance_prefix: 'prefijo instancia (opcional)', instance_from: 'instancia de (opcional)', values: [ { type: 'tipo de valor', table: true|false, attribute: 'atributo' instance_prefix: 'prefijo instancia (opcional)', instance_from: 'instancia de (opcional)' } ] } ]
Complemento: memcached
librato_memcached_hostTipo: string
El nombre del host de memcached. Por defecto es
localhost.librato_memcached_portTipo: string
El puerto de memcached. Por defecto es
11211.
Complemento: mongodb
librato_mongodb_hostTipo: string
El nombre del host de MongoDB. Por defecto es
localhost.librato_mongodb_portTipo: string
El puerto de MongoDB. Por defecto es
27017.librato_mongodb_userTipo: string
El nombre de usuario de MongoDB para conectarse. Por defecto es
nil.librato_mongodb_passwordTipo: string
La contraseña de MongoDB para conectarse. Por defecto es
nil.librato_mongodb_databasesTipo: array
Bases de datos para recolectar métricas. Por defecto está vacío. La base de datos
adminse incluye automáticamente en el array.librato_mongodb_nameTipo: string
Establece el nombre de la instancia del complemento. Por defecto es
mongodb.
Complemento: mysql
librato_mysql_databasesTipo: mapping
Bases de datos para recolectar métricas. Por defecto está vacío.
El formato del hash es:
databases: [ { name: 'mydb' host: 'localhost' port: 3306 user: '' password: '' innodb_stats: true slave_stats: false } ]
Complemento: nginx
librato_nginx_protocolTipo: string
El protocolo a usar. Por defecto es
http. Cambia esto ahttpssi necesitas SSL.librato_nginx_hostTipo: string
El nombre del host a usar. Por defecto es
localhost.librato_nginx_pathTipo: string
La ruta a la página de estado. Por defecto es
/basic_status.
Complemento: nginx_plus
librato_nginx_plus_protocolTipo: string
El protocolo a usar. Por defecto es
http. Cambia esto ahttpssi necesitas SSL.librato_nginx_plus_hostTipo: string
El nombre del host a usar. Por defecto es
localhost.librato_nginx_plus_pathTipo: string
La ruta a la página de estado. Por defecto es
/status.librato_nginx_plus_verboseTipo: string
Indica si se debe mostrar más detalle para el complemento. Por defecto es
false.
Complemento: postgresql
librato_postgresql_socket_fileTipo: string
El archivo de socket de PostgreSQL. Por defecto es
/var/run/postgresql.librato_postgresql_userTipo: string
El usuario de PostgreSQL para conectarse. Por defecto es
postgresql.librato_postgresql_databasesTipo: mapping
Las bases de datos para recolectar métricas. Por defecto está vacío.
El formato del hash es:
databases = [ { name: 'mydb' instance: 'baz' host: 'localhost' port: 5432 user: '' password: '' ssl_mode: 'prefer' } ]
Complemento: redis
librato_redis_hostTipo: string
El nombre del host de Redis. Por defecto es
localhost.librato_redis_portTipo: string
El puerto de Redis. Por defecto es
6379.librato_redis_timeoutTipo: string
El tiempo de espera para conectarse a Redis en milisegundos. Por defecto es
2000.
Complemento: varnish
Varnish no tiene atributos configurables.
Complemento: zookeeper
librato_zookeeper_hostTipo: string
El nombre del host de ZooKeeper. Por defecto es
localhost.librato_zookeeper_portTipo: string
El puerto de ZooKeeper. Por defecto es
2181.
Variables Globales
librato_emailTipo: string
El correo electrónico a usar para enviar métricas. Se usa junto con
token. Este atributo es requerido y por defecto está vacío.librato_tokenTipo: string
El token API a usar para enviar métricas. Se usa junto con
email. Este atributo es requerido y por defecto está vacío.librato_versionTipo: string
La versión del Agente de Librato a instalar.
librato_repo_urlTipo: string
La URL base para los paquetes. Por defecto es la URL del repositorio de Librato
https://packagecloud.io/librato/.librato_repo_baseTipo: string
La base del repositorio a usar. Por defecto es la colección del repositorio de Librato
librato-collectd.librato_config_baseTipo: string
La ruta base para los archivos de configuración de collectd. Por defecto es
/opt/collectd/etc.librato_plugin_config_pathTipo: string
La ruta para los archivos de configuración de complementos de collectd. Por defecto es
/opt/collectd/etc/collectd.conf.d.librato_hostnameTipo: string
El nombre del host a usar para el nodo. Por defecto es
nil, a favor de usarFQDNLookup.librato_fqdn_lookupTipo: true/false
Realiza una búsqueda FQDN para el nombre de host. Por defecto es
true.librato_intervalTipo: integer
El intervalo global de sondeo de complementos en segundos. Por defecto es
60.librato_use_log_fileTipo: true/false
Escribe los registros de collectd en un archivo. Por defecto es
true.librato_use_syslogTipo: true/false
Escribe los registros de collectd en syslog. Por defecto es
false.librato_use_logstashTipo: true/false
Escribe los registros de collectd en un archivo con formato logstash. Por defecto es
false.librato_log_file_log_levelTipo: string
El nivel de registro a usar para
log_file. Por defecto esinfo.librato_log_file_filenameTipo: string
El nombre del archivo a usar para
log_file. Por defecto es/opt/collectd/var/log/collectd.log.librato_log_file_timestampTipo: true/false
Usa o no marcas de tiempo en el archivo de registros. Por defecto es
true.librato_log_file_print_severityTipo: true/false
Incluye niveles de severidad en el archivo de registros o no. Por defecto es
true.librato_syslog_log_levelTipo: string
El nivel de registro a usar para
syslog. Por defecto esinfo.librato_logstash_log_levelTipo: string
El nivel de registro a usar para
logstash. Por defecto esinfo.librato_logstash_filenameTipo: string
El nombre de archivo a usar para
logstash. Por defecto es/opt/collectd/var/log/collectd.json.log.librato_default_pluginsTipo: array
Una lista de complementos por defecto a incluir. Por defecto es:
cpu,df,disk,swap,memory,load.librato_enabled_pluginsTipo: array
Una lista de complementos a habilitar. Esto es separado de los complementos por defecto y se usa para incluir complementos aparte de los que están incluidos por defecto. Por defecto está vacío.
Plataformas Soportadas
- RHEL 6 / CentOS 6
- RHEL 7 / CentOS 7
- Fedora 23
- Amazon Linux 2016.03
- Ubuntu 12.04
- Ubuntu 14.04
- Ubuntu 15.04
- Ubuntu 15.10
- Ubuntu 16.04
- Debian 7
- Debian 8
Versiones de Ansible Soportadas
Este rol requiere Ansible 2.2 o posterior.
Desarrollo
Pruebas
Las pruebas de integración utilizan kitchen-ansible y serverspec. Para ejecutar la suite de pruebas:
- Ejecuta
bundle install - Ejecuta
kitchen test
Pruebas en Amazon Linux
Pruebas en Amazon Linux a través de test-kitchen requieren un poco más de configuración:
- Asegúrate de que
kitchen-ec2esté instalado:gem install kitchen-ec2 - Actualiza
.kitchen.ymlpara tener el ID de clave AWS correcto que vas a usar. - Establece
security_group_idsen la sección del controlador para incluir un grupo de seguridad accesible desde tu computadora portátil. No establecer esto usará el grupo de seguridaddefault. - Establece
transport.ssh_keyen la ruta de tu clave SSH. Buscaid_rsapor defecto.
Licencia
MIT
Autores y Contribuyentes
Mike Julian (@mjulian)
ansible-galaxy install librato.librato