kibatic.prometheus
kibatic.prometheus dla Ansible Galaxy
Podsumowanie
Nazwa roli w Ansible Galaxy: kibatic.prometheus
Ta rola Ansible ma następujące funkcje dla Prometheus:
- Instalacja wybranych wersji serwera Prometheus, Node exportera i Alertmanagera.
- Obsługa zdarzeń restartu/ponownego wczytania/zatrzymania;
- Podstawowa konfiguracja (prawdziwe konfiguracje powinny być pozostawione plikom szablonów użytkownika; zobacz sekcję Użycie poniżej).
Aby zachować prostotę tej roli, instalowane są tylko 3 komponenty: serwer Prometheus, Node exporter i Alertmanager. Użyj następujących ról, jeśli chcesz zainstalować inne eksportery Prometheus:
- Consul: William-Yeh.consul_exporter
- Elasticsearch: William-Yeh.es_cluster_exporter
- MongoDB: williamyeh.mongodb_exporter
Zmienne roli
Zmienne obowiązkowe
Komponenty do zainstalowania:
# Obsługiwane komponenty:
#
# [Komponenty serwera]
# - "prometheus"
# - "alertmanager"
#
# [Komponenty eksportera]
# - "node_exporter"
#
prometheus_components
Zmienne opcjonalne: ogólne ustawienia
Domyślne wartości 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 dla logó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 pomocniczego narzędzia "gosu"
gosu_version: "1.10"
Zmienne opcjonalne: systemd lub nie
Jeśli dystrybucje Linuksa są wyposażone w systemd, ta rola będzie go odpowiednio wykorzystywać. Możesz to wyłączyć (tj. użyć tradycyjnego skryptu inicjalizacyjnego w stylu SysV) przez zdefiniowanie poniższej zmiennej jako false
:
# obecnie obsługiwany jest tylko node_exporter.
prometheus_node_exporter_use_systemd
Zmienne opcjonalne: serwer Prometheus
Domyślne wartości konfigurowane przez użytkownika:
# jaka wersja?
prometheus_version: 1.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 do zainstalowania przez użytkownika (zobacz dokumentację dla szczegółów):
# główny szablon konfiguracji w stosunku do `playbook_dir`;
# instalowany do "{{ prometheus_config_path }}/prometheus.yml"
prometheus_conf_main
Pliki reguł do zainstalowania przez użytkownika (zobacz dokumentację dla szczegółów):
# pliki reguł do zainstalowania w katalogu "{{ prometheus_rule_path }}";
# pola słownika:
# - klucz: notatka dla tej reguły
# - wartość:
# - src: plik względny do `playbook_dir`
# - dest: plik docelowy względny do `{{ prometheus_rule_path }}`
prometheus_rule_files
Alertmanager do uruchomienia:
prometheus_alertmanager_url
Dodatkowe argumenty wiersza poleceń, jeśli są (użyj prometheus --help
, aby zobaczyć pełną listę argumentów):
prometheus_opts
Zmienne opcjonalne: Node exporter
Domyślne wartości konfigurowane przez użytkownika:
# jaka wersja?
prometheus_node_exporter_version: 0.13.0
Dodatkowe argumenty wiersza poleceń, jeśli są (użyj node_exporter --help
, aby zobaczyć pełną listę argumentów):
prometheus_node_exporter_opts
Zmienne opcjonalne: Alertmanager
Domyślne wartości konfigurowane przez użytkownika:
# jaka wersja?
prometheus_alertmanager_version: 0.5.1
# katalog dla bazy danych w czasie rzeczywistym (obecnie dla `silences.json`)
prometheus_alertmanager_db_path: /var/lib/alertmanager
Plik konfiguracyjny alertmanagera do zainstalowania przez użytkownika (zobacz dokumentację dla szczegółów):
# główny szablon konfiguracji w stosunku do `playbook_dir`;
# instalowany do "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf
Dodatkowe argumenty wiersza poleceń, jeśli są (użyj alertmanager --help
, aby zobaczyć pełną listę argumentów):
prometheus_alertmanager_opts
Opcjonalnie: budowanie z drzewa źródłowego
(Zasługa: Robbie Trencheny)
Dla wcześniej wymienionych prometheus_components
, możesz opcjonalnie pobrać/skompilować z gałęzi głównej repozytoriów Prometheus, ustawiając odpowiednią wersję na git
.
Zainstaluje tymczasowy kompilator Golang w katalogu prometheus_workdir
(zdefiniowanym 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 zbudowanie za każdym razem, aktywuj 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 praktyce to samo corestart
)stop node_exporter
Alertmanager:
restart alertmanager
reload alertmanager
stop alertmanager
Użycie
Krok 1: dodaj rolę
Dodaj nazwę roli kibatic.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:
- kibatic.prometheus
vars:
prometheus_components: [ "prometheus", "alertmanager" ]
prometheus_alertmanager_url: "http://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:
- kibatic.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ółautorzy
- William Yeh
- Robbie Trencheny - wkład w wczesną wersję budowania binarnych z kodu źródłowego Go.
- Travis Truman - wkład w wczesną wersję instalatora consul_exporter; obecnie przeniesiony do William-Yeh.consul_exporter.
- Musee Ullah
Licencja
Licencja MIT. Zobacz szczegóły w pliku LICENSE.
ansible-galaxy install kibatic.prometheus