William-Yeh.prometheus
william-yeh.prometheus dla Ansible Galaxy
Podsumowanie
Nazwa roli w Ansible Galaxy: william-yeh.prometheus
Ta rola Ansible ma następujące funkcje dla Prometheus:
- Instalacja konkretnych wersji serwera Prometheus, Node exporter, Alertmanager.
- Obsługa zdarzeń restartu/przeładowania/zatrzymania;
- Minimalna konfiguracja (prawdziwa konfiguracja powinna być pozostawiona plikom szablonów użytkownika; zobacz sekcję Użycie poniżej).
Aby zachować tę rolę prostą, rola ta instaluje tylko 3 komponenty: serwer Prometheus, Node exporter oraz Alertmanager. Jeśli chcesz zainstalować inne eksportery Prometheus, użyj następujących ról:
- Consul: william-yeh.consul_exporter
- Elasticsearch: william-yeh.es_cluster_exporter
- MongoDB: williamyeh.mongodb_exporter
Wsparcie dla Ubuntu 12.04 (Precise) i CentOS 6 zakończono w listopadzie 2018 roku.
Zmienne roli
Zmienne obowiązkowe
Komponenty do zainstalowania:
# Obsługiwane komponenty:
#
# [Komponenty serwera]
# - "prometheus"
# - "alertmanager"
#
# [Komponenty eksportera]
# - "node_exporter"
#
prometheus_components
Zmienne opcjonalne: ustawienia ogólne
Domyślne ustawienia konfigurowane przez użytkownika:
# użytkownik i grupa
prometheus_user: prometheus
prometheus_group: prometheus
# katalog dla plików wykonywalnych
prometheus_install_path: /opt/prometheus
# katalog dla plików konfiguracyjnych
prometheus_config_path: /etc/prometheus
# katalog dzienników
prometheus_log_path: /var/log/prometheus
# katalog dla plików PID
prometheus_pid_path: /var/run/prometheus
# katalog dla plików tymczasowych
prometheus_download_path: /tmp
# wersja narzędzia pomocniczego "gosu"
gosu_version: "1.11"
Zmienne opcjonalne: systemd czy nie
Jeśli dystrybucje Linuxa są wyposażone w systemd, ta rola użyje tego mechanizmu. Możesz to wyłączyć (tj. użyć tradycyjnego skryptu inicjującego w stylu SysV), definiując następującą zmienną jako false
:
prometheus_use_systemd
Zmienne opcjonalne: serwer Prometheus
Domyślne ustawienia konfigurowane przez użytkownika:
# która wersja?
prometheus_version: 2.5.0
# katalog dla plików reguł
prometheus_rule_path: {{ prometheus_config_path }}/rules
# katalog dla plików file_sd
prometheus_file_sd_config_path: {{ prometheus_config_path }}/tgroups
# katalog dla bazy danych w czasie rzeczywistym
prometheus_db_path: /var/lib/prometheus
Plik konfiguracyjny instalowany przez użytkownika (zobacz dokumentację po szczegóły):
# główny szablon konfiguracyjny w odniesieniu do `playbook_dir`;
# zostanie zainstalowany do "{{ prometheus_config_path }}/prometheus.yml"
prometheus_conf_main
Pliki reguł instalowane przez użytkownika (zobacz dokumentację po szczegóły):
# pliki reguł do zainstalowania w katalogu "{{ prometheus_rule_path }}";
# pola słownika:
# - klucz: opis tej reguły
# - wartość:
# - src: plik w odniesieniu do `playbook_dir`
# - dest: docelowy plik w odniesieniu do `{{ prometheus_rule_path }}`
prometheus_rule_files
Alertmanager, który ma być wywołany:
prometheus_alertmanager_hostport
Dodatkowe argumenty wiersza poleceń, jeśli występują (użyj prometheus --help
, aby zobaczyć pełną listę argumentów):
prometheus_opts
Zmienne opcjonalne: Node exporter
Domyślne ustawienia konfigurowane przez użytkownika:
# która wersja?
prometheus_node_exporter_version: 0.16.0
Dodatkowe argumenty wiersza poleceń, jeśli występują (użyj node_exporter --help
, aby zobaczyć pełną listę argumentów):
prometheus_node_exporter_opts
Zmienne opcjonalne: Alertmanager
Domyślne ustawienia konfigurowane przez użytkownika:
# która wersja?
prometheus_alertmanager_version: 0.15.3
# katalog dla bazy danych w czasie rzeczywistym (aktualnie dla `silences.json`)
prometheus_alertmanager_db_path: /var/lib/alertmanager
Plik konfiguracyjny alertmanagera instalowany przez użytkownika (zobacz dokumentację po szczegóły):
# główny szablon konfiguracyjny w odniesieniu do `playbook_dir`;
# zostanie zainstalowany do "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf
Dodatkowe argumenty wiersza poleceń, jeśli występują (użyj alertmanager --help
, aby zobaczyć pełną listę argumentów):
prometheus_alertmanager_opts
Opcjonalnie: budowanie z drzewa źródłowego
(Kredyt: Robbie Trencheny)
Dla wymienionych wcześniej prometheus_components
, możesz opcjonalnie pobrać/skompilować z głównej gałęzi repozytoriów Prometheus, ustawiając odpowiednie wersje na git
.
Zainstaluje to tymczasowy kompilator Golang w katalogu prometheus_workdir
(zdefiniowany w defaults/main.yml
).
Na przykład, aby uzyskać najnowszy kod dla wszystkich komponentów, przypisz wszystkie zmienne *_version
do git
:
prometheus_version: git
prometheus_node_exporter_version: git
prometheus_alertmanager_version: git
Jeśli chcesz wymusić ponowne budowanie za każdym razem, włącz następującą zmienną (domyślnie false
):
prometheus_rebuild: true
Obsługa
Serwer Prometheus:
restart prometheus
reload prometheus
stop prometheus
Node exporter:
restart node_exporter
reload node_exporter
(właściwie to samo corestart
)stop node_exporter
Alertmanager:
restart alertmanager
reload alertmanager
stop alertmanager
Użycie
Krok 1: dodaj rolę
Dodaj nazwę roli william-yeh.prometheus
do swojego pliku playbook.
Krok 2: dodaj zmienne
Ustaw zmienne w swoim pliku playbook, jeśli to konieczne.
Prosty przykład:
---
# plik: simple-playbook.yml
- hosts: all
become: True
roles:
- william-yeh.prometheus
vars:
prometheus_components: [ "prometheus", "alertmanager" ]
prometheus_alertmanager_hostport: "localhost:9093"
Krok 3: skopiuj pliki konfiguracyjne użytkownika, jeśli to konieczne
Bardziej praktyczny przykład:
---
# plik: complex-playbook.yml
- hosts: all
become: True
roles:
- william-yeh.prometheus
vars:
prometheus_components:
- prometheus
- node_exporter
- alertmanager
prometheus_rule_files:
this_is_rule_1_InstanceDown:
src: some/path/basic.rules
dest: basic.rules
prometheus_alertmanager_conf: some/path/alertmanager.yml.j2
Krok 4: przeglądaj domyślne strony Prometheus
Otwórz stronę w przeglądarce:
Prometheus -
http://HOST:9090
lubhttp://HOST:9090/consoles/node.html
Alertmanager -
http://HOST:9093
Zależności
Brak.
Współtwórcy
- William Yeh
- Robbie Trencheny - wprowadził wczesną wersję budowania binariów z kodu źródłowego Go.
- Travis Truman - wprowadził wczesną wersję instalatora consul_exporter; obecnie przeniesiony do William-Yeh.consul_exporter.
- Musee Ullah
Licencja
Licencja MIT. Zobacz plik LICENSE po szczegóły.
ansible-galaxy install William-Yeh.prometheus