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
cpudfmemoryloaddiskswapapachenginxnginx_plusjvmmemcachedvarnishzookeeperdockerelasticsearchmongodbpostgresqlmysqlredishaproxy
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_protocolTyp: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http. Ändere dies zuhttps, wenn du SSL benötigst.librato_apache_hostTyp: Zeichenkette
Der zu verwendende Hostname. Standardmäßig
localhost.librato.apache.pathTyp: Zeichenkette
Der Pfad zur Statusseite. Standardmäßig
/server-status.?autowird automatisch angehängt, daher ist es nicht nötig, es einzuschließen.librato_apache_userTyp: Zeichenkette
Der Benutzername für passwortgeschützte Statusseiten. Standardmäßig leer.
librato_apache_passwordTyp: Zeichenkette
Das Passwort für passwortgeschützte Statusseiten. Standardmäßig leer.
Plugin: docker
librato_docker_protocolTyp: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http. Ändere dies zuhttps, wenn du SSL benötigst.librato_docker_hostTyp: Zeichenkette
Der Docker-Hostname. Standardmäßig
localhost.librato_docker_portTyp: Zeichenkette
Der Docker-Port. Standardmäßig
2735.
Plugin: elasticsearch
librato_elasticsearch_protocolTyp: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http. Ändere dies zuhttps, wenn du SSL benötigst.librato_elasticsearch_hostTyp: Zeichenkette
Der ElasticSearch-Hostname. Standardmäßig
localhost.librato_elasticsearch_portTyp: Zeichenkette
Der ElasticSearch-Port. Standardmäßig
9200.librato_elasticsearch_cluster_nameTyp: Zeichenkette
Der Name des ElasticSearch-Clusters, falls gesetzt. Standardmäßig
nil.librato_elasticsearch_verboseTyp: wahr/falsch
Die Ausführlichkeit des Plugins. Standardmäßig
true.
Plugin: haproxy
librato_haproxy_socket_fileTyp: Zeichenkette
Die HAProxy-Socket-Datei. Standardmäßig
/run/haproxy/admin.sock.librato_haproxy_proxiesTyp: Array
Die standardmäßigen Proxys, die gesammelt werden sollen. Standardmäßig
server,frontend,backend.
Plugin: jvm
librato_jvm_hostTyp: Zeichenkette
Der JVM-Host. Standardmäßig
localhost.librato_jvm_service_urlTyp: Zeichenkette
Die JVM-Service-URL, die abgerufen werden soll. Standardmäßig
service:jmx:rmi:///jndi/rmi://localhost:17264/jmxrmi.librato_jvm_mbeansTyp: 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_hostTyp: Zeichenkette
Der Memcached-Hostname. Standardmäßig
localhost.librato_memcached_portTyp: Zeichenkette
Der Memcached-Port. Standardmäßig
11211.
Plugin: mongodb
librato_mongodb_hostTyp: Zeichenkette
Der MongoDB-Hostname. Standardmäßig
localhost.librato_mongodb_portTyp: Zeichenkette
Der MongoDB-Port. Standardmäßig
27017.librato_mongodb_userTyp: Zeichenkette
Der MongoDB-Benutzername, mit dem verbunden werden soll. Standardmäßig
nil.librato_mongodb_passwordTyp: Zeichenkette
Das Passwort für die Verbindung mit MongoDB. Standardmäßig
nil.librato_mongodb_databasesTyp: Array
Datenbanken, für die Metriken gesammelt werden sollen. Standardmäßig leer. Die
admin-Datenbank ist automatisch im Array enthalten.librato_mongodb_nameTyp: Zeichenkette
Setze den Namen der Plugin-Instanz. Standardmäßig
mongodb.
Plugin: mysql
librato_mysql_databasesTyp: 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_protocolTyp: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http. Ändere dies zuhttps, wenn du SSL benötigst.librato_nginx_hostTyp: Zeichenkette
Der zu verwendende Hostname. Standardmäßig
localhost.librato_nginx_pathTyp: Zeichenkette
Der Pfad zur Statusseite. Standardmäßig
/basic_status.
Plugin: nginx_plus
librato_nginx_plus_protocolTyp: Zeichenkette
Das zu verwendende Protokoll. Standardmäßig
http. Ändere dies zuhttps, wenn du SSL benötigst.librato_nginx_plus_hostTyp: Zeichenkette
Der zu verwendende Hostname. Standardmäßig
localhost.librato_nginx_plus_pathTyp: Zeichenkette
Der Pfad zur Statusseite. Standardmäßig
/status.librato_nginx_plus_verboseTyp: Zeichenkette
Ausführlichkeit ein/aus für das Plugin. Standardmäßig
false.
Plugin: postgresql
librato_postgresql_socket_fileTyp: Zeichenkette
Die PostgreSQL-Socket-Datei. Standardmäßig
/var/run/postgresql.librato_postgresql_userTyp: Zeichenkette
Der PostgreSQL-Benutzer, unter dem verbunden werden soll. Standardmäßig
postgresql.librato_postgresql_databasesTyp: 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_hostTyp: Zeichenkette
Der Redis-Hostname. Standardmäßig
localhost.librato_redis_portTyp: Zeichenkette
Der Redis-Port. Standardmäßig
6379.librato_redis_timeoutTyp: 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_hostTyp: Zeichenkette
Der ZooKeeper-Hostname. Standardmäßig
localhost.librato_zookeeper_portTyp: Zeichenkette
Der ZooKeeper-Port. Standardmäßig
2181.
Globale Variablen
librato_emailTyp: Zeichenkette
Die E-Mail-Adresse, die für das Senden von Metriken verwendet wird. Wird zusammen mit
tokenverwendet. Dieses Attribut ist erforderlich und standardmäßig leer.librato_tokenTyp: Zeichenkette
Der API-Token, der für das Senden von Metriken verwendet wird. Wird zusammen mit
emailverwendet. Dieses Attribut ist erforderlich und standardmäßig leer.librato_versionTyp: Zeichenkette
Die Version des zu installierenden Librato-Agenten.
librato_repo_urlTyp: Zeichenkette
Die Basis-URL für die Pakete. Standardmäßig die Repo-URL von Librato
https://packagecloud.io/librato/.librato_repo_baseTyp: Zeichenkette
Die Repo-Basis, die verwendet werden soll. Standardmäßig die Repo-Sammlung von Librato
librato-collectd.librato_config_baseTyp: Zeichenkette
Der Basis-Pfad für die Konfigurationsdateien von collectd. Standardmäßig
/opt/collectd/etc.librato_plugin_config_pathTyp: Zeichenkette
Der Pfad für die Plugin-Konfigurationen von collectd. Standardmäßig
/opt/collectd/etc/collectd.conf.d.librato_hostnameTyp: Zeichenkette
Der Hostname, der für den Knoten verwendet werden soll. Standardmäßig
nil, um die Verwendung vonFQDNLookupzu bevorzugen.librato_fqdn_lookupTyp: wahr/falsch
Führe eine FQDN-Abfrage für den Hostnamen durch. Standardmäßig
true.librato_intervalTyp: Ganzzahl
Das globale Abfrageintervall für Plugins in Sekunden. Standardmäßig
60.librato_use_log_fileTyp: wahr/falsch
Schreibe collectd-Protokolle in eine Datei. Standardmäßig
true.librato_use_syslogTyp: wahr/falsch
Schreibe collectd-Protokolle in syslog. Standardmäßig
false.librato_use_logstashTyp: wahr/falsch
Schreibe collectd-Protokolle in eine im Logstash-Formatierte Datei. Standardmäßig
false.librato_log_file_log_levelTyp: Zeichenkette
Das Protokollniveau, das für
log_fileverwendet werden soll. Standardmäßiginfo.librato_log_file_filenameTyp: Zeichenkette
Der Dateiname, der für
log_fileverwendet werden soll. Standardmäßig/opt/collectd/var/log/collectd.log.librato_log_file_timestampTyp: wahr/falsch
Verwende Zeitstempel in der Protokolldatei oder nicht. Standardmäßig
true.librato_log_file_print_severityTyp: wahr/falsch
Schließe Schweregrade in die Protokolldatei ein oder nicht. Standardmäßig
true.librato_syslog_log_levelTyp: Zeichenkette
Das Protokollniveau, das für syslog verwendet werden soll. Standardmäßig
info.librato_logstash_log_levelTyp: Zeichenkette
Das Protokollniveau, das für Logstash verwendet werden soll. Standardmäßig
info.librato_logstash_filenameTyp: Zeichenkette
Der Dateiname, der für Logstash verwendet werden soll. Standardmäßig
/opt/collectd/var/log/collectd.json.log.librato_default_pluginsTyp: Array
Eine Liste von Standard-Plugins, die einbezogen werden sollen. Standardmäßig:
cpu,df,disk,swap,memory,load.librato_enabled_pluginsTyp: 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 installaus. - Führe
kitchen testaus.
Testen von Amazon Linux
Das Testen von Amazon Linux über test-kitchen erfordert ein wenig mehr Einrichtung:
- Stelle sicher, dass
kitchen-ec2installiert ist:gem install kitchen-ec2. - Aktualisiere
.kitchen.yml, um die richtige AWS-Schlüssel-ID zu verwenden. - Setze
security_group_idsim Treiberbereich so, dass eine Sicherheitsgruppe eingeschlossen ist, die von deinem Laptop aus zugänglich ist. Wenn du dies nicht einstellst, wird diedefaultSicherheitsgruppe verwendet. - Setze
transport.ssh_keyauf 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