librato.librato
Rola Ansible: Librato
Rola Ansible, która instaluje i konfiguruje agenta Librato oraz wtyczki.
Wymagania
Brak
Zależności
Brak
Szybki start
Aby rozpocząć, wystarczy ustawić zmienne email
i token
, a następnie dodać rolę:
- hosts: all
roles:
- { role: librato.librato, librato_email: '[email protected]', librato_token: 'your-token-here' }
Domyślnie włączone są następujące wtyczki: cpu
, df
, disk
, swap
, memory
, load
.
Aby dodać wtyczkę, ustaw potrzebne zmienne, a następnie dodaj ją do zmiennej librato_enabled_plugins
:
- hosts: all
vars:
librato_apache_path: '/my-status-endpoint'
librato_enabled_plugins: ['apache']
Obsługiwane wtyczki
cpu
df
memory
load
disk
swap
apache
nginx
nginx_plus
jvm
memcached
varnish
zookeeper
docker
elasticsearch
mongodb
postgresql
mysql
redis
haproxy
Użycie
Używanie niestandardowych lub zewnętrznych wtyczek collectd
Aby użyć własnej niestandardowej lub zewnętrznej wtyczki collectd, po prostu umieść odpowiedni plik konfiguracyjny w /opt/collectd/etc/collectd.conf.d/
, a niestandardowe wtyczki w /opt/collectd/share/collectd/
.
Odniesienie
Wtyczka: apache
librato_apache_protocol
Typ: string
Protokół do użycia. Domyślnie
http
. Zmień nahttps
, jeśli wymagana jest SSL.librato_apache_host
Typ: string
Nazwa hosta do użycia. Domyślnie
localhost
.librato.apache.path
Typ: string
Ścieżka do strony statusu. Domyślnie
/server-status
.?auto
jest automatycznie dodawane, więc nie ma potrzeby go uwzględniać.librato_apache_user
Typ: string
Nazwa użytkownika do ochronionych hasłem stron statusu. Domyślnie puste.
librato_apache_password
Typ: string
Hasło do ochronionych hasłem stron statusu. Domyślnie puste.
Wtyczka: docker
librato_docker_protocol
Typ: string
Protokół do użycia. Domyślnie
http
. Zmień nahttps
, jeśli wymagana jest SSL.librato_docker_host
Typ: string
Nazwa hosta Docker. Domyślnie
localhost
.librato_docker_port
Typ: string
Port Docker. Domyślnie
2735
.
Wtyczka: elasticsearch
librato_elasticsearch_protocol
Typ: string
Protokół do użycia. Domyślnie
http
. Zmień nahttps
, jeśli wymagana jest SSL.librato_elasticsearch_host
Typ: string
Nazwa hosta ElasticSearch. Domyślnie
localhost
.librato_elasticsearch_port_
Typ: string
Port ElasticSearch. Domyślnie
9200
.librato_elasticsearch_cluster_name
Typ: string
Nazwa klastra ElasticSearch, jeśli ustawiona. Domyślnie
nil
.librato_elasticsearch_verbose
Typ: true/false
Ustawia szczegółowość wtyczki. Domyślnie
true
.
Wtyczka: haproxy
librato_haproxy_socket_file
Typ: string
Plik gniazda HAProxy. Domyślnie
/run/haproxy/admin.sock
.librato_haproxy_proxies
Typ: array
Domyślne proxy do zbierania danych. Domyślnie
server
,frontend
,backend
.
Wtyczka: jvm
librato_jvm_host
Typ: string
Host JVM. Domyślnie
localhost
.librato_jvm_service_url
Typ: string
URL usługi JVM do zapytania. Domyślnie
service:jmx:rmi:///jndi/rmi://localhost:17264/jmxrmi
.librato_jvm_mbeans
Typ: mapping
Dodatkowe mbeans do zbierania. Domyślnie puste.
Format mapowania to:
librato_jvm_mbeans: [ { name: 'nazwa mbean' object_name: 'nazwa obiektu' instance_prefix: 'prefiks instancji (opcjonalny)', instance_from: 'instancja z (opcjonalna)', values: [ { type: 'typ wartości', table: true|false, attribute: 'atrybut' instance_prefix: 'prefiks instancji (opcjonalny)', instance_from: 'instancja z (opcjonalna)' } ] } ]
Wtyczka: memcached
librato_memcached_host
Typ: string
Nazwa hosta memcached. Domyślnie
localhost
.librato_memcached_port
Typ: string
Port memcached. Domyślnie
11211
.
Wtyczka: mongodb
librato_mongodb_host
Typ: string
Nazwa hosta MongoDB. Domyślnie
localhost
.librato_mongodb_port
Typ: string
Port MongoDB. Domyślnie
27017
.librato_mongodb_user
Typ: string
Nazwa użytkownika MongoDB do połączenia. Domyślnie
nil
.librato_mongodb_password
Typ: string
Hasło MongoDB do połączenia. Domyślnie
nil
.librato_mongodb_databases
Typ: array
Bazy danych, dla których zbierane są metryki. Domyślnie puste. Baza danych
admin
jest automatycznie uwzględniana w tablicy.librato_mongodb_name
Typ: string
Ustaw nazwę instancji wtyczki. Domyślnie
mongodb
.
Wtyczka: mysql
librato_mysql_databases
Typ: mapping
Bazy danych, dla których zbierane są metryki. Domyślnie puste.
Format mapowania to:
databases: [ { name: 'mydb' host: 'localhost' port: 3306 user: '' password: '' innodb_stats: true slave_stats: false } ]
Wtyczka: nginx
librato_nginx_protocol
Typ: string
Protokół do użycia. Domyślnie
http
. Zmień nahttps
, jeśli wymagana jest SSL.librato_nginx_host
Typ: string
Nazwa hosta do użycia. Domyślnie
localhost
.librato_nginx_path
Typ: string
Ścieżka do strony statusu. Domyślnie
/basic_status
.
Wtyczka: nginx_plus
librato_nginx_plus_protocol
Typ: string
Protokół do użycia. Domyślnie
http
. Zmień nahttps
, jeśli wymagana jest SSL.librato_nginx_plus_host
Typ: string
Nazwa hosta do użycia. Domyślnie
localhost
.librato_nginx_plus_path
Typ: string
Ścieżka do strony statusu. Domyślnie
/status
.librato_nginx_plus_verbose
Typ: string
Włącz/wyłącz szczegółowość dla wtyczki. Domyślnie
false
.
Wtyczka: postgresql
librato_postgresql_socket_file
Typ: string
Plik gniazda PostgreSQL. Domyślnie
/var/run/postgresql
.librato_postgresql_user
Typ: string
Użytkownik PostgreSQL, z którym się łączysz. Domyślnie
postgresql
.librato_postgresql_databases
Typ: mapping
Bazy danych, dla których zbierane są metryki. Domyślnie puste.
Format mapowania to:
databases = [ { name: 'mydb' instance: 'baz' host: 'localhost' port: 5432 user: '' password: '' ssl_mode: 'prefer' } ]
Wtyczka: redis
librato_redis_host
Typ: string
Nazwa hosta Redis. Domyślnie
localhost
.librato_redis_port
Typ: string
Port Redis. Domyślnie
6379
.librato_redis_timeout
Typ: string
Czas oczekiwania na połączenie z Redis w milisekundach. Domyślnie
2000
.
Wtyczka: varnish
Varnish nie ma konfigurowalnych atrybutów.
Wtyczka: zookeeper
librato_zookeeper_host
Typ: string
Nazwa hosta ZooKeeper. Domyślnie
localhost
.librato_zookeeper_port
Typ: string
Port ZooKeeper. Domyślnie
2181
.
Zmienne globalne
librato_email
Typ: string
Email do używania do wysyłania metryk. Użyj razem z
token
. Ta atrybut jest wymagany i domyślnie jest pusty.librato_token
Typ: string
Token API do używania do wysyłania metryk. Użyj razem z
email
. Ten atrybut jest wymagany i domyślnie jest pusty.librato_version
Typ: string
Wersja agenta Librato do zainstalowania.
librato_repo_url
Typ: string
Podstawowy URL dla pakietów. Domyślnie URL repozytorium Librato
https://packagecloud.io/librato/
.librato_repo_base
Typ: string
Podstawowe repozytorium do użycia. Domyślnie zbiór repozytoriów Librato
librato-collectd
.librato_config_base
Typ: string
Podstawowa ścieżka dla plików konfiguracyjnych collectd. Domyślnie
/opt/collectd/etc
.librato_plugin_config_path
Typ: string
Ścieżka dla konfiguracji wtyczek collectd. Domyślnie
/opt/collectd/etc/collectd.conf.d
.librato_hostname
Typ: string
Nazwa hosta do użycia dla węzła. Domyślnie
nil
, aby korzystać zFQDNLookup
.librato_fqdn_lookup
Typ: true/false
Przeprowadzenie wyszukiwania FQDN dla nazwy hosta. Domyślnie
true
.librato_interval
Typ: integer
Globalny interwał pobierania wtyczek w sekundach. Domyślnie
60
.librato_use_log_file
Typ: true/false
Zapisz logi collectd do pliku. Domyślnie
true
.librato_use_syslog
Typ: true/false
Zapisz logi collectd do syslog. Domyślnie
false
.librato_use_logstash
Typ: true/false
Zapisz logi collectd do pliku w formacie logstash. Domyślnie
false
.librato_log_file_log_level
Typ: string
Poziom logowania do użycia dla
log_file
. Domyślnieinfo
.librato_log_file_filename
Typ: string
Nazwa pliku do użycia dla
log_file
. Domyślnie/opt/collectd/var/log/collectd.log
.librato_log_file_timestamp
Typ: true/false
Użyj znaczników czasu w pliku dziennika lub nie. Domyślnie
true
.librato_log_file_print_severity
Typ: true/false
Uwzględnij poziomy ważności w pliku dziennika lub nie. Domyślnie
true
.librato_syslog_log_level
Typ: string
Poziom logowania do użycia dla syslog. Domyślnie
info
.librato_logstash_log_level
Typ: string
Poziom logowania do użycia dla logstash. Domyślnie
info
.librato_logstash_filename
Typ: string
Nazwa pliku do użycia dla logstash. Domyślnie
/opt/collectd/var/log/collectd.json.log
.librato_default_plugins
Typ: array
Lista domyślnych wtyczek do uwzględnienia. Domyślnie:
cpu
,df
,disk
,swap
,memory
,load
.librato_enabled_plugins
Typ: array
Lista wtyczek do włączenia. To jest oddzielone od domyślnych wtyczek i służy do dodawania wtyczek oprócz tych. Domyślnie puste.
Obsługiwane platformy
- 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
Obsługiwane wersje Ansible
Ta rola wymaga Ansible 2.2 lub nowszego.
Rozwój
Testowanie
Testy integracyjne wykorzystują kitchen-ansible
i serverspec
. Aby uruchomić zestaw testów:
- Uruchom
bundle install
- Uruchom
kitchen test
Testowanie Amazon Linux
Testowanie Amazon Linux za pomocą test-kitchen
wymaga nieco więcej konfiguracji:
- Upewnij się, że
kitchen-ec2
jest zainstalowane:gem install kitchen-ec2
- Zaktualizuj
.kitchen.yml
, aby zawierał poprawny AWS key ID, którego zamierzasz użyć. - Ustaw
security_group_ids
w sekcji sterownika, aby obejmowało grupę zabezpieczeń dostępną z laptopa. Nie ustawienie tego spowoduje użycie grupy zabezpieczeńdefault
. - Ustaw
transport.ssh_key
na ścieżkę do klucza SSH. Domyślnie szukaid_rsa
.
Licencja
MIT
Autorzy i współtwórcy
Mike Julian (@mjulian)
ansible-galaxy install librato.librato