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
cpu
df
memory
load
disk
swap
apache
nginx
nginx_plus
jvm
memcached
varnish
zookeeper
docker
elasticsearch
mongodb
postgresql
mysql
redis
haproxy
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_protocol
Tipo: string
El protocolo a usar. Por defecto es
http
. Cambia esto ahttps
si necesitas SSL.librato_apache_host
Tipo: string
El nombre del host a usar. Por defecto es
localhost
.librato.apache.path
Tipo: string
La ruta a la página de estado. Por defecto es
/server-status
.?auto
se agrega automáticamente, así que no es necesario incluirlo.librato_apache_user
Tipo: string
El nombre de usuario para páginas de estado protegidas por contraseña. Por defecto está vacío.
librato_apache_password
Tipo: string
La contraseña para páginas de estado protegidas por contraseña. Por defecto está vacía.
Complemento: docker
librato_docker_protocol
Tipo: string
El protocolo a usar. Por defecto es
http
. Cambia esto ahttps
si necesitas SSL.librato_docker_host
Tipo: string
El nombre del host de Docker. Por defecto es
localhost
.librato_docker_port
Tipo: string
El puerto de Docker. Por defecto es
2735
.
Complemento: elasticsearch
librato_elasticsearch_protocol
Tipo: string
El protocolo a usar. Por defecto es
http
. Cambia esto ahttps
si necesitas SSL.librato_elasticsearch_host
Tipo: 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_name
Tipo: string
El nombre del clúster de ElasticSearch, si se establece. Por defecto es
nil
.librato_elasticsearch_verbose
Tipo: true/false
Indica el nivel de detalle del complemento. Por defecto es
true
.
Complemento: haproxy
librato_haproxy_socket_file
Tipo: string
El archivo de socket de HAProxy. Por defecto es
/run/haproxy/admin.sock
.librato_haproxy_proxies
Tipo: array
Los proxys por defecto a recolectar. Por defecto son
server
,frontend
,backend
.
Complemento: jvm
librato_jvm_host
Tipo: string
El host de JVM. Por defecto es
localhost
.librato_jvm_service_url
Tipo: string
La URL del servicio JVM a consultar. Por defecto es
service:jmx:rmi:///jndi/rmi://localhost:17264/jmxrmi
.librato_jvm_mbeans
Tipo: 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_host
Tipo: string
El nombre del host de memcached. Por defecto es
localhost
.librato_memcached_port
Tipo: string
El puerto de memcached. Por defecto es
11211
.
Complemento: mongodb
librato_mongodb_host
Tipo: string
El nombre del host de MongoDB. Por defecto es
localhost
.librato_mongodb_port
Tipo: string
El puerto de MongoDB. Por defecto es
27017
.librato_mongodb_user
Tipo: string
El nombre de usuario de MongoDB para conectarse. Por defecto es
nil
.librato_mongodb_password
Tipo: string
La contraseña de MongoDB para conectarse. Por defecto es
nil
.librato_mongodb_databases
Tipo: array
Bases de datos para recolectar métricas. Por defecto está vacío. La base de datos
admin
se incluye automáticamente en el array.librato_mongodb_name
Tipo: string
Establece el nombre de la instancia del complemento. Por defecto es
mongodb
.
Complemento: mysql
librato_mysql_databases
Tipo: 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_protocol
Tipo: string
El protocolo a usar. Por defecto es
http
. Cambia esto ahttps
si necesitas SSL.librato_nginx_host
Tipo: string
El nombre del host a usar. Por defecto es
localhost
.librato_nginx_path
Tipo: string
La ruta a la página de estado. Por defecto es
/basic_status
.
Complemento: nginx_plus
librato_nginx_plus_protocol
Tipo: string
El protocolo a usar. Por defecto es
http
. Cambia esto ahttps
si necesitas SSL.librato_nginx_plus_host
Tipo: string
El nombre del host a usar. Por defecto es
localhost
.librato_nginx_plus_path
Tipo: string
La ruta a la página de estado. Por defecto es
/status
.librato_nginx_plus_verbose
Tipo: string
Indica si se debe mostrar más detalle para el complemento. Por defecto es
false
.
Complemento: postgresql
librato_postgresql_socket_file
Tipo: string
El archivo de socket de PostgreSQL. Por defecto es
/var/run/postgresql
.librato_postgresql_user
Tipo: string
El usuario de PostgreSQL para conectarse. Por defecto es
postgresql
.librato_postgresql_databases
Tipo: 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_host
Tipo: string
El nombre del host de Redis. Por defecto es
localhost
.librato_redis_port
Tipo: string
El puerto de Redis. Por defecto es
6379
.librato_redis_timeout
Tipo: 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_host
Tipo: string
El nombre del host de ZooKeeper. Por defecto es
localhost
.librato_zookeeper_port
Tipo: string
El puerto de ZooKeeper. Por defecto es
2181
.
Variables Globales
librato_email
Tipo: 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_token
Tipo: 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_version
Tipo: string
La versión del Agente de Librato a instalar.
librato_repo_url
Tipo: string
La URL base para los paquetes. Por defecto es la URL del repositorio de Librato
https://packagecloud.io/librato/
.librato_repo_base
Tipo: string
La base del repositorio a usar. Por defecto es la colección del repositorio de Librato
librato-collectd
.librato_config_base
Tipo: string
La ruta base para los archivos de configuración de collectd. Por defecto es
/opt/collectd/etc
.librato_plugin_config_path
Tipo: string
La ruta para los archivos de configuración de complementos de collectd. Por defecto es
/opt/collectd/etc/collectd.conf.d
.librato_hostname
Tipo: string
El nombre del host a usar para el nodo. Por defecto es
nil
, a favor de usarFQDNLookup
.librato_fqdn_lookup
Tipo: true/false
Realiza una búsqueda FQDN para el nombre de host. Por defecto es
true
.librato_interval
Tipo: integer
El intervalo global de sondeo de complementos en segundos. Por defecto es
60
.librato_use_log_file
Tipo: true/false
Escribe los registros de collectd en un archivo. Por defecto es
true
.librato_use_syslog
Tipo: true/false
Escribe los registros de collectd en syslog. Por defecto es
false
.librato_use_logstash
Tipo: true/false
Escribe los registros de collectd en un archivo con formato logstash. Por defecto es
false
.librato_log_file_log_level
Tipo: string
El nivel de registro a usar para
log_file
. Por defecto esinfo
.librato_log_file_filename
Tipo: string
El nombre del archivo a usar para
log_file
. Por defecto es/opt/collectd/var/log/collectd.log
.librato_log_file_timestamp
Tipo: true/false
Usa o no marcas de tiempo en el archivo de registros. Por defecto es
true
.librato_log_file_print_severity
Tipo: true/false
Incluye niveles de severidad en el archivo de registros o no. Por defecto es
true
.librato_syslog_log_level
Tipo: string
El nivel de registro a usar para
syslog
. Por defecto esinfo
.librato_logstash_log_level
Tipo: string
El nivel de registro a usar para
logstash
. Por defecto esinfo
.librato_logstash_filename
Tipo: string
El nombre de archivo a usar para
logstash
. Por defecto es/opt/collectd/var/log/collectd.json.log
.librato_default_plugins
Tipo: array
Una lista de complementos por defecto a incluir. Por defecto es:
cpu
,df
,disk
,swap
,memory
,load
.librato_enabled_plugins
Tipo: 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-ec2
esté instalado:gem install kitchen-ec2
- Actualiza
.kitchen.yml
para tener el ID de clave AWS correcto que vas a usar. - Establece
security_group_ids
en 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_key
en la ruta de tu clave SSH. Buscaid_rsa
por defecto.
Licencia
MIT
Autores y Contribuyentes
Mike Julian (@mjulian)
ansible-galaxy install librato.librato