cloudalchemy.grafana
DEPRECJONOWANE
Ta rola została wycofana na rzecz kolekcji grafana-ansible-collection.
Rola Ansible: grafana
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: "[email protected]"
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.
Grafana - platform for analytics and monitoring
ansible-galaxy install cloudalchemy.grafana