librato.librato
Ansible Rolle: Librato
Eine Ansible-Rolle, die den Librato-Agenten und die Plugins installiert und konfiguriert.
Anforderungen
Keine.
Abhängigkeiten
Keine.
Schnellstart
Das Minimum, um zu beginnen, ist, die Variablen email
und token
zu setzen und die Rolle einzuschließen:
- hosts: all
roles:
- { role: librato.librato, librato_email: '[email protected]', librato_token: 'dein-token-hier' }
Standardmäßig sind die folgenden Plugins aktiviert: cpu
, df
, disk
, swap
, memory
, load
.
Um ein Plugin einzuschließen, setze die benötigten Variablen dafür und füge es zur Variable librato_enabled_plugins
hinzu:
- hosts: all
vars:
librato_apache_path: '/mein-status-endpunkt'
librato_enabled_plugins: ['apache']
Unterstützte Plugins
cpu
df
memory
load
disk
swap
apache
nginx
nginx_plus
jvm
memcached
varnish
zookeeper
docker
elasticsearch
mongodb
postgresql
mysql
redis
haproxy
Verwendung
Verwendung von benutzerdefinierten oder upstream-collectd-Plugins
Um dein eigenes benutzerdefiniertes oder upstream-collectd-Plugin zu verwenden, lasse einfach ein anderes Modul die Konfiguration in /opt/collectd/etc/collectd.conf.d/
und die benutzerdefinierten Plugins in /opt/collectd/share/collectd/
ablegen.
Referenz
Plugin: apache
librato_apache_protocol
Typ: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http
. Ändere dies zuhttps
, wenn du SSL benötigst.librato_apache_host
Typ: Zeichenkette
Der zu verwendende Hostname. Standardmäßig
localhost
.librato.apache.path
Typ: Zeichenkette
Der Pfad zur Statusseite. Standardmäßig
/server-status
.?auto
wird automatisch angehängt, daher ist es nicht nötig, es einzuschließen.librato_apache_user
Typ: Zeichenkette
Der Benutzername für passwortgeschützte Statusseiten. Standardmäßig leer.
librato_apache_password
Typ: Zeichenkette
Das Passwort für passwortgeschützte Statusseiten. Standardmäßig leer.
Plugin: docker
librato_docker_protocol
Typ: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http
. Ändere dies zuhttps
, wenn du SSL benötigst.librato_docker_host
Typ: Zeichenkette
Der Docker-Hostname. Standardmäßig
localhost
.librato_docker_port
Typ: Zeichenkette
Der Docker-Port. Standardmäßig
2735
.
Plugin: elasticsearch
librato_elasticsearch_protocol
Typ: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http
. Ändere dies zuhttps
, wenn du SSL benötigst.librato_elasticsearch_host
Typ: Zeichenkette
Der ElasticSearch-Hostname. Standardmäßig
localhost
.librato_elasticsearch_port
Typ: Zeichenkette
Der ElasticSearch-Port. Standardmäßig
9200
.librato_elasticsearch_cluster_name
Typ: Zeichenkette
Der Name des ElasticSearch-Clusters, falls gesetzt. Standardmäßig
nil
.librato_elasticsearch_verbose
Typ: wahr/falsch
Die Ausführlichkeit des Plugins. Standardmäßig
true
.
Plugin: haproxy
librato_haproxy_socket_file
Typ: Zeichenkette
Die HAProxy-Socket-Datei. Standardmäßig
/run/haproxy/admin.sock
.librato_haproxy_proxies
Typ: Array
Die standardmäßigen Proxys, die gesammelt werden sollen. Standardmäßig
server
,frontend
,backend
.
Plugin: jvm
librato_jvm_host
Typ: Zeichenkette
Der JVM-Host. Standardmäßig
localhost
.librato_jvm_service_url
Typ: Zeichenkette
Die JVM-Service-URL, die abgerufen werden soll. Standardmäßig
service:jmx:rmi:///jndi/rmi://localhost:17264/jmxrmi
.librato_jvm_mbeans
Typ: Zuordnung
Zusätzliche MBeans, die gesammelt werden sollen. Standardmäßig leer.
Das Format der Zuordnung ist:
librato_jvm_mbeans: [ { name: 'mbean name' object_name: 'object name' instance_prefix': 'instance prefix (optional)', instance_from': 'instance from (optional)', values: [ { type: 'value type', table: true|false, attribute: 'attribute' instance_prefix: 'instance prefix (optional)', instance_from: 'instance from (optional)' } ] } ]
Plugin: memcached
librato_memcached_host
Typ: Zeichenkette
Der Memcached-Hostname. Standardmäßig
localhost
.librato_memcached_port
Typ: Zeichenkette
Der Memcached-Port. Standardmäßig
11211
.
Plugin: mongodb
librato_mongodb_host
Typ: Zeichenkette
Der MongoDB-Hostname. Standardmäßig
localhost
.librato_mongodb_port
Typ: Zeichenkette
Der MongoDB-Port. Standardmäßig
27017
.librato_mongodb_user
Typ: Zeichenkette
Der MongoDB-Benutzername, mit dem verbunden werden soll. Standardmäßig
nil
.librato_mongodb_password
Typ: Zeichenkette
Das Passwort für die Verbindung mit MongoDB. Standardmäßig
nil
.librato_mongodb_databases
Typ: Array
Datenbanken, für die Metriken gesammelt werden sollen. Standardmäßig leer. Die
admin
-Datenbank ist automatisch im Array enthalten.librato_mongodb_name
Typ: Zeichenkette
Setze den Namen der Plugin-Instanz. Standardmäßig
mongodb
.
Plugin: mysql
librato_mysql_databases
Typ: Zuordnung
Datenbanken, für die Metriken gesammelt werden sollen. Standardmäßig leer.
Das Format der Zuordnung ist:
databases: [ { name: 'mydb' host: 'localhost' port: 3306 user: '' password: '' innodb_stats: true slave_stats: false } ]
Plugin: nginx
librato_nginx_protocol
Typ: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http
. Ändere dies zuhttps
, wenn du SSL benötigst.librato_nginx_host
Typ: Zeichenkette
Der zu verwendende Hostname. Standardmäßig
localhost
.librato_nginx_path
Typ: Zeichenkette
Der Pfad zur Statusseite. Standardmäßig
/basic_status
.
Plugin: nginx_plus
librato_nginx_plus_protocol
Typ: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http
. Ändere dies zuhttps
, wenn du SSL benötigst.librato_nginx_plus_host
Typ: Zeichenkette
Der zu verwendende Hostname. Standardmäßig
localhost
.librato_nginx_plus_path
Typ: Zeichenkette
Der Pfad zur Statusseite. Standardmäßig
/status
.librato_nginx_plus_verbose
Typ: Zeichenkette
Ausführlichkeit ein/aus für das Plugin. Standardmäßig
false
.
Plugin: postgresql
librato_postgresql_socket_file
Typ: Zeichenkette
Die PostgreSQL-Socket-Datei. Standardmäßig
/var/run/postgresql
.librato_postgresql_user
Typ: Zeichenkette
Der PostgreSQL-Benutzer, unter dem verbunden werden soll. Standardmäßig
postgresql
.librato_postgresql_databases
Typ: Zuordnung
Die Datenbanken, für die Metriken gesammelt werden sollen. Standardmäßig leer.
Das Format der Zuordnung ist:
databases = [ { name: 'mydb' instance: 'baz' host: 'localhost' port: 5432 user: '' password: '' ssl_mode: 'prefer' } ]
Plugin: redis
librato_redis_host
Typ: Zeichenkette
Der Redis-Hostname. Standardmäßig
localhost
.librato_redis_port
Typ: Zeichenkette
Der Redis-Port. Standardmäßig
6379
.librato_redis_timeout
Typ: Zeichenkette
Die Zeitüberschreitung für die Verbindung zu Redis in Millisekunden. Standardmäßig
2000
.
Plugin: varnish
Varnish hat keine konfigurierbaren Attribute.
Plugin: zookeeper
librato_zookeeper_host
Typ: Zeichenkette
Der ZooKeeper-Hostname. Standardmäßig
localhost
.librato_zookeeper_port
Typ: Zeichenkette
Der ZooKeeper-Port. Standardmäßig
2181
.
Globale Variablen
librato_email
Typ: Zeichenkette
Die E-Mail-Adresse, die für das Senden von Metriken verwendet wird. Wird zusammen mit
token
verwendet. Dieses Attribut ist erforderlich und standardmäßig leer.librato_token
Typ: Zeichenkette
Der API-Token, der für das Senden von Metriken verwendet wird. Wird zusammen mit
email
verwendet. Dieses Attribut ist erforderlich und standardmäßig leer.librato_version
Typ: Zeichenkette
Die Version des zu installierenden Librato-Agenten.
librato_repo_url
Typ: Zeichenkette
Die Basis-URL für die Pakete. Standardmäßig die Repo-URL von Librato
https://packagecloud.io/librato/
.librato_repo_base
Typ: Zeichenkette
Die Repo-Basis, die verwendet werden soll. Standardmäßig die Repo-Sammlung von Librato
librato-collectd
.librato_config_base
Typ: Zeichenkette
Der Basis-Pfad für die Konfigurationsdateien von collectd. Standardmäßig
/opt/collectd/etc
.librato_plugin_config_path
Typ: Zeichenkette
Der Pfad für die Plugin-Konfigurationen von collectd. Standardmäßig
/opt/collectd/etc/collectd.conf.d
.librato_hostname
Typ: Zeichenkette
Der Hostname, der für den Knoten verwendet werden soll. Standardmäßig
nil
, um die Verwendung vonFQDNLookup
zu bevorzugen.librato_fqdn_lookup
Typ: wahr/falsch
Führe eine FQDN-Abfrage für den Hostnamen durch. Standardmäßig
true
.librato_interval
Typ: Ganzzahl
Das globale Abfrageintervall für Plugins in Sekunden. Standardmäßig
60
.librato_use_log_file
Typ: wahr/falsch
Schreibe collectd-Protokolle in eine Datei. Standardmäßig
true
.librato_use_syslog
Typ: wahr/falsch
Schreibe collectd-Protokolle in syslog. Standardmäßig
false
.librato_use_logstash
Typ: wahr/falsch
Schreibe collectd-Protokolle in eine im Logstash-Formatierte Datei. Standardmäßig
false
.librato_log_file_log_level
Typ: Zeichenkette
Das Protokollniveau, das für
log_file
verwendet werden soll. Standardmäßiginfo
.librato_log_file_filename
Typ: Zeichenkette
Der Dateiname, der für
log_file
verwendet werden soll. Standardmäßig/opt/collectd/var/log/collectd.log
.librato_log_file_timestamp
Typ: wahr/falsch
Verwende Zeitstempel in der Protokolldatei oder nicht. Standardmäßig
true
.librato_log_file_print_severity
Typ: wahr/falsch
Schließe Schweregrade in die Protokolldatei ein oder nicht. Standardmäßig
true
.librato_syslog_log_level
Typ: Zeichenkette
Das Protokollniveau, das für syslog verwendet werden soll. Standardmäßig
info
.librato_logstash_log_level
Typ: Zeichenkette
Das Protokollniveau, das für Logstash verwendet werden soll. Standardmäßig
info
.librato_logstash_filename
Typ: Zeichenkette
Der Dateiname, der für Logstash verwendet werden soll. Standardmäßig
/opt/collectd/var/log/collectd.json.log
.librato_default_plugins
Typ: Array
Eine Liste von Standard-Plugins, die einbezogen werden sollen. Standardmäßig:
cpu
,df
,disk
,swap
,memory
,load
.librato_enabled_plugins
Typ: Array
Eine Liste von Plugins, die aktiviert werden sollen. Dies ist separat von den Standard-Plugins und wird verwendet, um Plugins zusätzlich zu diesen einzuschließen. Standardmäßig leer.
Unterstützte Plattformen
- 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
Unterstützte Ansible-Versionen
Diese Rolle erfordert Ansible 2.2 oder höher.
Entwicklung
Testen
Integrationstests verwenden kitchen-ansible
und serverspec
. Um die Testsuite auszuführen:
- Führe
bundle install
aus. - Führe
kitchen test
aus.
Testen von Amazon Linux
Das Testen von Amazon Linux über test-kitchen
erfordert ein wenig mehr Einrichtung:
- Stelle sicher, dass
kitchen-ec2
installiert ist:gem install kitchen-ec2
. - Aktualisiere
.kitchen.yml
, um die richtige AWS-Schlüssel-ID zu verwenden. - Setze
security_group_ids
im Treiberbereich so, dass eine Sicherheitsgruppe eingeschlossen ist, die von deinem Laptop aus zugänglich ist. Wenn du dies nicht einstellst, wird diedefault
Sicherheitsgruppe verwendet. - Setze
transport.ssh_key
auf den Pfad zu deinem SSH-Schlüssel. Es sucht standardmäßig nachid_rsa
.
Lizenz
MIT
Autoren & Mitwirkende
Mike Julian (@mjulian)
ansible-galaxy install librato.librato