cloudalchemy.grafana

DEPRECJONOWANE

Ta rola została wycofana na rzecz kolekcji grafana-ansible-collection.

grafana logo

Rola Ansible: grafana

Status budowy Licencja Rola Ansible Tag GitHub

Zarządzaj i konfiguruj grafana - platformę do analizy i monitorowania.

Wymagania

  • Ansible >= 2.7 (Może działać na wcześniejszych wersjach, ale nie możemy tego zagwarantować)
  • libselinux-python na hoście wdrożeniowym (tylko gdy maszyna wdrożeniowa ma włączone SELinux)
  • grafana >= 5.1 (do starszych wersji grafana użyj tej roli w wersji 0.10.1 lub wcześniejszej)
  • jmespath na maszynie wdrożeniowej. Jeśli używasz Ansible z wirtualnego środowiska Pythona, zainstaluj jmespath w tym samym wirtualnym środowisku za pomocą pip.

Zmienne roli

Wszystkie zmienne, które można nadpisać, są przechowywane w pliku defaults/main.yml oraz w tabeli poniżej.

Nazwa Wartość domyślna Opis
grafana_use_provisioning true Użyj możliwości provisioningu Grafany, gdy to możliwe (grafana_version=latest będzie zakładać >= 5.0).
grafana_provisioning_synced false Upewnij się, że nie są zachowywane wcześniej przygotowane pulpity, jeśli nie są już powiązane.
grafana_version latest Wersja pakietu Grafana
grafana_yum_repo_template etc/yum.repos.d/grafana.repo.j2 Szablon Yum do użycia
grafana_manage_repo true Zarządzaj repozytorium pakietów (lub nie)
grafana_instance {{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }} Nazwa instancji Grafana
grafana_logs_dir /var/log/grafana Ścieżka do katalogu logów
grafana_data_dir /var/lib/grafana Ścieżka do katalogu bazy danych
grafana_address 0.0.0.0 Adres, na którym Grafana nasłuchuje
grafana_port 3000 port, na którym Grafana nasłuchuje
grafana_cap_net_bind_service false Umożliwia używanie portów poniżej 1024 bez uprawnień roota, wykorzystując 'capabilities' kernelu Linux. przeczytaj: http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_url "http://{{ grafana_address }}:{{ grafana_port }}" Pełny adres URL używany do uzyskania dostępu do Grafany z przeglądarki internetowej
grafana_api_url "{{ grafana_url }}" URL używany do wywołań API w provisioning, jeśli różni się od publicznego URL. Zobacz ten temat.
grafana_domain "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}" Ustawienie używane tylko jako część opcji root_url. Przydatne przy użyciu GitHub lub Google OAuth
grafana_server { protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } Sekcja konfiguracji serwera
grafana_security { admin_user: admin, admin_password: "" } Sekcja konfiguracji bezpieczeństwa
grafana_database { type: sqlite3 } Sekcja konfiguracji bazy danych
grafana_welcome_email_on_sign_up false Wysyłaj powitalny e-mail po rejestracji
grafana_users { allow_sign_up: false, auto_assign_org_role: Viewer, default_theme: dark } Sekcja konfiguracji użytkowników
grafana_auth {} Sekcja konfiguracji autoryzacji
grafana_ldap {} Sekcja konfiguracji ldap. mapowania grup są rozwijane, zobacz domyślne dla przykładów
grafana_session {} Sekcja zarządzania konfiguracją sesjami
grafana_analytics {} Sekcja konfiguracji Google analityki
grafana_smtp {} Sekcja konfiguracji smtp
grafana_alerting {} Sekcja konfiguracji powiadamiania
grafana_log {} Sekcja konfiguracji logów
grafana_metrics {} Sekcja konfiguracji metryk
grafana_tracing {} Sekcja konfiguracji śledzenia
grafana_snapshots {} Sekcja konfiguracji zrzutów
grafana_image_storage {} Sekcja konfiguracji przechowywania obrazów
grafana_dashboards [] Lista pulpitu, które powinny być zaimportowane
grafana_dashboards_dir "dashboards" Ścieżka do lokalnego katalogu zawierającego pliki pulpitów w formacie json
grafana_datasources [] Lista źródeł danych, które powinny być skonfigurowane
grafana_environment {} Opcjonalny parametr środowiskowy dla instalacji Grafany, przydatny np. do ustawienia http_proxy
grafana_plugins [] Lista wtyczek Grafany, które powinny być zainstalowane
grafana_alert_notifications [] Lista kanałów powiadomień o alertach do utworzenia, aktualizacji lub usunięcia

Przykład źródła danych:

grafana_datasources:
  - name: prometheus
    type: prometheus
    access: proxy
    url: 'http://{{ prometheus_web_listen_address }}'
    basicAuth: false

Przykład pulpitu:

grafana_dashboards:
  - dashboard_id: 111
    revision_id: 1
    datasource: prometheus

Przykład kanału powiadomień o alertach:

UWAGA: ustawienie zmiennej grafana_alert_notifications wejdzie w życie tylko wtedy, gdy grafana_use_provisioning jest ustawione na true. Oznacza to, że nowy system provisioning oparty na plikach konfiguracyjnych, dostępny od wersji Grafana 5.0, musi być używany.

grafana_alert_notifications:
  notifiers:
    - name: Kanał 1
      type: email
      uid: channel1
      is_default: false
      send_reminder: false
      settings:
        addresses: "example@example.com"
        autoResolve: true
  delete_notifiers:
    - name: Kanał 2
      uid: channel2

Użyj niestandardowego szablonu repozytorium Yum Grafany:

  • Umieść swój szablon obok swojego playbooka w folderze templates.

  • Użyj innej ścieżki niż domyślna, ponieważ Ansible, używając ścieżki względnej, używa pierwszego znalezionego szablonu i najpierw przeszukuje katalog roli, a potem katalog playbooka.

  • Rozszerzenie szablonu zostanie umieszczone w /etc/yum.repos.d/, a jego nazwa będzie bazową nazwą ścieżki szablonu bez .j2.

    Przykład:

    grafana_yum_repo_template: my_yum_repos/grafana.repo.j2
    
    # [playbook_dir]/templates/my_yum_repos/grafana.repo.j2
    # zostanie umieszczony w
    # /etc/yum.repos.d/grafana.repo
    # na zdalnym hoście
    

Obsługiwane architektury CPU

Historycznie pakiety były pobierane z różnych kanałów w zależności od architektury CPU. W szczególności pakiety armv6/armv7 i aarch64/arm64 były dystrybuowane przez nieoficjalne pakiety wydawane przez fg2it. Teraz, gdy Grafana wydaje oficjalne kompilacje ARM, wszystkie pakiety są pobierane z oficjalnych pakietów Debian/Ubuntu lub RPM.

Przykład

Playbook

Wypełnij pole hasła administratora zgodnie ze swoim wyborem, strona internetowa Grafany nie poprosi o zmianę hasła przy pierwszym logowaniu.

- hosts: all
  roles:
    - role: cloudalchemy.grafana
      vars:
        grafana_security:
          admin_user: admin
          admin_password: enter_your_secure_password

Witryna demo

Oferujemy witrynę demo dla pełnego rozwiązania monitorującego opartego na prometheus i grafana. Repozytorium z kodem i linkami do działających instancji jest dostępne na githubie, a witryna jest hostowana na DigitalOcean.

Testowanie lokalne

Preferowany sposób lokalnego testowania roli to użycie Dockera i molecule (v2.x). Będziesz musiał zainstalować Dockera na swoim systemie. Zobacz "Rozpocznij" po pakiet Docker odpowiedni dla twojego systemu. Używamy tox, aby uprościć proces testowania na wielu wersjach ansible. Aby zainstalować tox, wykonaj:

pip3 install tox

Aby uruchomić testy na wszystkich wersjach ansible (OSTRZEŻENIE: może to zająć trochę czasu)

tox

Aby uruchomić niestandardowe polecenie molecule w niestandardowym środowisku z tylko domyślnym scenariuszem testowym:

tox -e py35-ansible28 -- molecule test -s default

Aby uzyskać więcej informacji na temat molecule, zobacz ich dokumentację.

Jeśli chcesz uruchomić testy na zdalnym hoście dockera, wystarczy zdefiniować zmienną DOCKER_HOST przed uruchomieniem testów tox.

Travis CI

Połączenie molecule i travis CI pozwala nam testować, jak nowe PR-y będą działać z różnymi wersjami ansible i systemami operacyjnymi. Umożliwia to również tworzenie scenariuszy testowych dla różnych konfiguracji ról. W rezultacie mamy dość dużą macierz testów, co zajmie więcej czasu niż testy lokalne, więc prosimy o cierpliwość.

Współpraca

Zobacz wytyczne dla współpracowników.

Rozwiązywanie problemów

Zobacz rozwiazywanie problemów.

Licencja

Ten projekt jest licencjonowany na podstawie licencji MIT. Zobacz LICENCJA dla dalszych szczegółów.

Zainstaluj
ansible-galaxy install cloudalchemy.grafana
Licencja
mit
Pobrania
1.9M
Właściciel
Setup your monitoring stack with ansible