cloudalchemy.grafana
廃止
この役割は、grafana-ansible-collection コレクションに代わって廃止されました。
Ansibleロール: grafana
Grafana のプロビジョニングと管理 - 分析と監視のためのプラットフォーム
要件
- Ansible >= 2.7(以前のバージョンで動作する可能性がありますが、保証はできません)
- デプロイホストに libselinux-python(デプロイマシンにSELinuxがある場合のみ)
- grafana >= 5.1(古いgrafanaバージョンを使用する場合は、このロールのバージョン0.10.1またはそれ以前を使用してください)
- デプロイマシンに jmespath が必要です。Pythonの仮想環境からAnsibleを使用している場合は、同じ仮想環境にpipで jmespath をインストールしてください。
ロール変数
オーバーライド可能なすべての変数は、defaults/main.yml ファイルと以下の表に格納されています。
名前 | デフォルト値 | 説明 |
---|---|---|
grafana_use_provisioning |
true | 可能な場合、Grafanaのプロビジョニング機能を使用する(grafana_version=latestは>= 5.0を想定します)。 |
grafana_provisioning_synced |
false | 参照されていない以前にプロビジョニングされたダッシュボードを保持しないことを確認します。 |
grafana_version |
latest | Grafanaパッケージのバージョン |
grafana_yum_repo_template |
etc/yum.repos.d/grafana.repo.j2 | 使用するYumテンプレート |
grafana_manage_repo |
true | パッケージリポジトリを管理する(またはしない) |
grafana_instance |
{{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }} | Grafanaインスタンス名 |
grafana_logs_dir |
/var/log/grafana | ログディレクトリへのパス |
grafana_data_dir |
/var/lib/grafana | データベースディレクトリへのパス |
grafana_address |
0.0.0.0 | Grafanaがリッスンするアドレス |
grafana_port |
3000 | Grafanaがリッスンするポート |
grafana_cap_net_bind_service |
false | root特権なしで1024未満のポートを使用できるようにするため、Linuxカーネルの「能力」を活用します。詳しくは http://man7.org/linux/man-pages/man7/capabilities.7.html を参照してください。 |
grafana_url |
"http://{{ grafana_address }}:{{ grafana_port }}" | WebブラウザからGrafanaにアクセスするために使用する完全なURL |
grafana_api_url |
"{{ grafana_url }}" | 公開URLと異なる場合、プロビジョニングでのAPI呼び出しに使用されるURLです。詳細は この問題 を参照してください。 |
grafana_domain |
"{{ ansible_fqdn | default(ansible_host) | default('localhost') }}" | 設定はroot_url オプションの一部としてのみ使用されます。GitHubまたはGoogle OAuthを使用する際に便利です。 |
grafana_server |
{ protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } | サーバーの設定セクション |
grafana_security |
{ admin_user: admin, admin_password: "" } | セキュリティの設定セクション |
他の多数の変数 ... | ... | ... |
データソースの例:
grafana_datasources:
- name: prometheus
type: prometheus
access: proxy
url: 'http://{{ prometheus_web_listen_address }}'
basicAuth: false
ダッシュボードの例:
grafana_dashboards:
- dashboard_id: 111
revision_id: 1
datasource: prometheus
アラート通知チャネルの例:
注意: grafana_alert_notifications
変数を設定しても、grafana_use_provisioning
が true
の場合にのみ効果があります。つまり、Grafana v5.0から利用可能な新しいプロビジョニングシステムが使用されている必要があります。
grafana_alert_notifications:
notifiers:
- name: Channel 1
type: email
uid: channel1
is_default: false
send_reminder: false
settings:
addresses: "example@example.com"
autoResolve: true
delete_notifiers:
- name: Channel 2
uid: channel2
カスタムGrafana Yumリポジトリテンプレートの例:
- テンプレートを
templates
フォルダ内のプレイブックの隣に置きます - Ansibleは、相対パスを使用する際に最初に見つかったテンプレートを参照するため、デフォルトのパスとは異なるパスを使用します。
- テンプレートの展開は
/etc/yum.repos.d/
に行われ、テンプレートパスのbasename
が .j2 を取り除いた名前になります。
例:
grafana_yum_repo_template: my_yum_repos/grafana.repo.j2
# [playbook_dir]/templates/my_yum_repos/grafana.repo.j2
# は次の場所に配置されます
# /etc/yum.repos.d/grafana.repo
# リモートホスト
サポートするCPUアーキテクチャ
過去には、CPUアーキテクチャに応じて異なるチャネルからパッケージが取得されていました。具体的には、armv6/armv7およびaarch64/arm64パッケージはfg2itによって配布される非公式パッケージを介して提供されていました。現在、Grafanaが公式のARMビルドを公開しているため、すべてのパッケージは公式のDebian/UbuntuまたはRPMパッケージから取得されます。
例
プレイブック
管理者パスワードフィールドに任意の値を入力してください。GrafanaのWebページは最初のログイン時にパスワードの変更を要求しません。
- hosts: all
roles:
- role: cloudalchemy.grafana
vars:
grafana_security:
admin_user: admin
admin_password: enter_your_secure_password
デモサイト
PrometheusとGrafanaに基づく完全な監視ソリューションのデモサイトを提供しています。コードのリポジトリと実行しているインスタンスへのリンクはGitHubで入手可能です。サイトはDigitalOceanにホストされています。
ローカルテスト
ローカルでロールをテストするための推奨方法は、Dockerとmolecule (v2.x)を使用することです。まず、システムにDockerをインストールする必要があります。「Get started」を参照し、システムに適したDockerパッケージを取得してください。 複数のansibleバージョンでのテストプロセスを簡素化するためにtoxを使用しています。toxをインストールするには、以下を実行します:
pip3 install tox
すべてのansibleバージョンでテストを実行するには(警告: 時間がかかる場合があります):
tox
カスタム環境でカスタムモレキュールコマンドを実行するには、デフォルトのテストシナリオのみを使用します:
tox -e py35-ansible28 -- molecule test -s default
moleculeに関する詳細は、ドキュメントを参照してください。
リモートDockerホストでテストを実行したい場合は、toxテストを実行する前にDOCKER_HOST
変数を指定してください。
Travis CI
MoleculeとTravis CIを組み合わせることで、新しいPRが複数のansibleバージョンおよび複数のオペレーティングシステムでどのように動作するかをテストできます。また、さまざまなロール構成のテストシナリオを作成することも可能です。その結果、かなり大きなテストマトリックスが得られ、それはローカルテストよりも長い時間がかかるため、辛抱してください。
貢献
貢献ガイドラインを参照してください。
トラブルシューティング
トラブルシューティングを参照してください。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEを参照してください。
Grafana - platform for analytics and monitoring
ansible-galaxy install cloudalchemy.grafana