William-Yeh.prometheus

william-yeh.prometheus dla Ansible Galaxy

Circle CI Build Status

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:

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 co restart)

  • 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 lub http://HOST:9090/consoles/node.html

  • Alertmanager - http://HOST:9093

Zależności

Brak.

Współtwórcy

Licencja

Licencja MIT. Zobacz plik LICENSE po szczegóły.

O projekcie

Install and configure Prometheus

Zainstaluj
ansible-galaxy install William-Yeh.prometheus
Licencja
mit
Pobrania
27.5k
Właściciel