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
cpudfmemoryloaddiskswapapachenginxnginx_plusjvmmemcachedvarnishzookeeperdockerelasticsearchmongodbpostgresqlmysqlredishaproxy
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_protocolTyp: string
Protokół do użycia. Domyślnie
http. Zmień nahttps, jeśli wymagana jest SSL.librato_apache_hostTyp: string
Nazwa hosta do użycia. Domyślnie
localhost.librato.apache.pathTyp: string
Ścieżka do strony statusu. Domyślnie
/server-status.?autojest automatycznie dodawane, więc nie ma potrzeby go uwzględniać.librato_apache_userTyp: string
Nazwa użytkownika do ochronionych hasłem stron statusu. Domyślnie puste.
librato_apache_passwordTyp: string
Hasło do ochronionych hasłem stron statusu. Domyślnie puste.
Wtyczka: docker
librato_docker_protocolTyp: string
Protokół do użycia. Domyślnie
http. Zmień nahttps, jeśli wymagana jest SSL.librato_docker_hostTyp: string
Nazwa hosta Docker. Domyślnie
localhost.librato_docker_portTyp: string
Port Docker. Domyślnie
2735.
Wtyczka: elasticsearch
librato_elasticsearch_protocolTyp: string
Protokół do użycia. Domyślnie
http. Zmień nahttps, jeśli wymagana jest SSL.librato_elasticsearch_hostTyp: string
Nazwa hosta ElasticSearch. Domyślnie
localhost.librato_elasticsearch_port_Typ: string
Port ElasticSearch. Domyślnie
9200.librato_elasticsearch_cluster_nameTyp: string
Nazwa klastra ElasticSearch, jeśli ustawiona. Domyślnie
nil.librato_elasticsearch_verboseTyp: true/false
Ustawia szczegółowość wtyczki. Domyślnie
true.
Wtyczka: haproxy
librato_haproxy_socket_fileTyp: string
Plik gniazda HAProxy. Domyślnie
/run/haproxy/admin.sock.librato_haproxy_proxiesTyp: array
Domyślne proxy do zbierania danych. Domyślnie
server,frontend,backend.
Wtyczka: jvm
librato_jvm_hostTyp: string
Host JVM. Domyślnie
localhost.librato_jvm_service_urlTyp: string
URL usługi JVM do zapytania. Domyślnie
service:jmx:rmi:///jndi/rmi://localhost:17264/jmxrmi.librato_jvm_mbeansTyp: 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_hostTyp: string
Nazwa hosta memcached. Domyślnie
localhost.librato_memcached_portTyp: string
Port memcached. Domyślnie
11211.
Wtyczka: mongodb
librato_mongodb_hostTyp: string
Nazwa hosta MongoDB. Domyślnie
localhost.librato_mongodb_portTyp: string
Port MongoDB. Domyślnie
27017.librato_mongodb_userTyp: string
Nazwa użytkownika MongoDB do połączenia. Domyślnie
nil.librato_mongodb_passwordTyp: string
Hasło MongoDB do połączenia. Domyślnie
nil.librato_mongodb_databasesTyp: array
Bazy danych, dla których zbierane są metryki. Domyślnie puste. Baza danych
adminjest automatycznie uwzględniana w tablicy.librato_mongodb_nameTyp: string
Ustaw nazwę instancji wtyczki. Domyślnie
mongodb.
Wtyczka: mysql
librato_mysql_databasesTyp: 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_protocolTyp: string
Protokół do użycia. Domyślnie
http. Zmień nahttps, jeśli wymagana jest SSL.librato_nginx_hostTyp: string
Nazwa hosta do użycia. Domyślnie
localhost.librato_nginx_pathTyp: string
Ścieżka do strony statusu. Domyślnie
/basic_status.
Wtyczka: nginx_plus
librato_nginx_plus_protocolTyp: string
Protokół do użycia. Domyślnie
http. Zmień nahttps, jeśli wymagana jest SSL.librato_nginx_plus_hostTyp: string
Nazwa hosta do użycia. Domyślnie
localhost.librato_nginx_plus_pathTyp: string
Ścieżka do strony statusu. Domyślnie
/status.librato_nginx_plus_verboseTyp: string
Włącz/wyłącz szczegółowość dla wtyczki. Domyślnie
false.
Wtyczka: postgresql
librato_postgresql_socket_fileTyp: string
Plik gniazda PostgreSQL. Domyślnie
/var/run/postgresql.librato_postgresql_userTyp: string
Użytkownik PostgreSQL, z którym się łączysz. Domyślnie
postgresql.librato_postgresql_databasesTyp: 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_hostTyp: string
Nazwa hosta Redis. Domyślnie
localhost.librato_redis_portTyp: string
Port Redis. Domyślnie
6379.librato_redis_timeoutTyp: 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_hostTyp: string
Nazwa hosta ZooKeeper. Domyślnie
localhost.librato_zookeeper_portTyp: string
Port ZooKeeper. Domyślnie
2181.
Zmienne globalne
librato_emailTyp: string
Email do używania do wysyłania metryk. Użyj razem z
token. Ta atrybut jest wymagany i domyślnie jest pusty.librato_tokenTyp: 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_versionTyp: string
Wersja agenta Librato do zainstalowania.
librato_repo_urlTyp: string
Podstawowy URL dla pakietów. Domyślnie URL repozytorium Librato
https://packagecloud.io/librato/.librato_repo_baseTyp: string
Podstawowe repozytorium do użycia. Domyślnie zbiór repozytoriów Librato
librato-collectd.librato_config_baseTyp: string
Podstawowa ścieżka dla plików konfiguracyjnych collectd. Domyślnie
/opt/collectd/etc.librato_plugin_config_pathTyp: string
Ścieżka dla konfiguracji wtyczek collectd. Domyślnie
/opt/collectd/etc/collectd.conf.d.librato_hostnameTyp: string
Nazwa hosta do użycia dla węzła. Domyślnie
nil, aby korzystać zFQDNLookup.librato_fqdn_lookupTyp: true/false
Przeprowadzenie wyszukiwania FQDN dla nazwy hosta. Domyślnie
true.librato_intervalTyp: integer
Globalny interwał pobierania wtyczek w sekundach. Domyślnie
60.librato_use_log_fileTyp: true/false
Zapisz logi collectd do pliku. Domyślnie
true.librato_use_syslogTyp: true/false
Zapisz logi collectd do syslog. Domyślnie
false.librato_use_logstashTyp: true/false
Zapisz logi collectd do pliku w formacie logstash. Domyślnie
false.librato_log_file_log_levelTyp: string
Poziom logowania do użycia dla
log_file. Domyślnieinfo.librato_log_file_filenameTyp: string
Nazwa pliku do użycia dla
log_file. Domyślnie/opt/collectd/var/log/collectd.log.librato_log_file_timestampTyp: true/false
Użyj znaczników czasu w pliku dziennika lub nie. Domyślnie
true.librato_log_file_print_severityTyp: true/false
Uwzględnij poziomy ważności w pliku dziennika lub nie. Domyślnie
true.librato_syslog_log_levelTyp: string
Poziom logowania do użycia dla syslog. Domyślnie
info.librato_logstash_log_levelTyp: string
Poziom logowania do użycia dla logstash. Domyślnie
info.librato_logstash_filenameTyp: string
Nazwa pliku do użycia dla logstash. Domyślnie
/opt/collectd/var/log/collectd.json.log.librato_default_pluginsTyp: array
Lista domyślnych wtyczek do uwzględnienia. Domyślnie:
cpu,df,disk,swap,memory,load.librato_enabled_pluginsTyp: 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-ec2jest zainstalowane:gem install kitchen-ec2 - Zaktualizuj
.kitchen.yml, aby zawierał poprawny AWS key ID, którego zamierzasz użyć. - Ustaw
security_group_idsw sekcji sterownika, aby obejmowało grupę zabezpieczeń dostępną z laptopa. Nie ustawienie tego spowoduje użycie grupy zabezpieczeńdefault. - Ustaw
transport.ssh_keyna ścieżkę do klucza SSH. Domyślnie szukaid_rsa.
Licencja
MIT
Autorzy i współtwórcy
Mike Julian (@mjulian)
ansible-galaxy install librato.librato