kibatic.prometheus

kibatic.prometheus dla Ansible Galaxy

Circle CI Build Status

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:

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 co restart)
  • 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 lub http://HOST:9090/consoles/node.html
  • Alertmanager - http://HOST:9093

Zależności

Brak.

Współautorzy

Licencja

Licencja MIT. Zobacz szczegóły w pliku LICENSE.

O projekcie

Install and configure Prometheus

Zainstaluj
ansible-galaxy install kibatic.prometheus
Licencja
mit
Pobrania
1k
Właściciel
Ajoutez de l'intelligence à vos systèmes