0x0i.grafana

以下は、指定されたテキストの日本語への翻訳です。


ansible logo

grafana logo

Ansibleロール :rainbow: :bar_chart: Grafana

Galaxy Role GitHubリリース(最新日付) ライセンス: MIT

目次

Ansibleロールは、分析と監視のオブザーバビリティプラットフォームであるGrafanaをインストールおよび構成します。

サポートされているプラットフォーム:
* Debian
* Redhat(CentOS/Fedora)
* Ubuntu

要件

ターゲットホストにunzip/gtarユーティリティがインストールされている必要があります。詳しくは、ansibleのunarchiveモジュールのノートを参照してください。また、5.0以降に導入されたprovisioning機能を使用するため、Grafanaのバージョンは5.0以上が必要です。

ロール変数

変数は、以下のソフトウェアおよびマシンプロビジョニングのステージに応じて利用可能で整理されています:

  • install
  • config
  • launch
  • uninstall

インストール

grafanaは圧縮アーカイブ(.tar, .zip)およびDEBおよびRPM配布パッケージを使用してインストールできます。これらはさまざまなソースからダウンロードされ、抽出されます。

インストールプロセスのさまざまな側面を制御するためにカスタマイズできる以下の変数があります。これにはソフトウェアのバージョンやバイナリのソースロケーション、保存先のインストールディレクトリが含まれます:

grafana_user: <service-user-name>デフォルトgrafana

grafana_group: <service-group-name>デフォルトgrafana

  • Grafanaによって使用される専用のサービスユーザーとグループです(詳細についてはこちらを参照)。

install_type: <package | archive>デフォルト:archive)

  • package:DebianおよびRedhatディストリビューションでサポートされており、Grafanaのパッケージインストールは、指定されたパッケージをそれぞれのパッケージ管理リポジトリから取得します。

    • インストールディレクトリはパッケージ管理システムによって決定され、現在すべてのディストリビューションで/usr/{sbin,lib, share}の下に設定されています。
  • archivetarおよびzipフォーマットの両方に互換性があり、アーカイブされたインストールバイナリは、公式のリリースインデックスや開発/カスタムソースから取得できます。

install_dir: </path/to/installation/dir>デフォルト/opt/grafana

  • ターゲットホスト上でgrafanaバイナリが抽出されるパスです。

archive_url: <path-or-url-to-archive>デフォルトdefaults/main.ymlを参照)

  • grafanaバイナリを含む圧縮されたtarまたはzipアーカイブのアドレスです。この方法は、実際に利用可能な任意のバージョンのgrafanaのインストールをサポートします。公式バージョンへのリンクはこちらで見つけられます。

archive_checksum: <path-or-url-to-checksum>デフォルトdefaults/main.ymlを参照)

  • 指定されたgrafanaアーカイブのデータ整合性を確認するためのチェックサムファイルのアドレスです。推奨されており、一般的にはベストプラクティスと見なされていますが、チェックサムの指定は必須ではありません。値として空文字列('')を指定することで無効にできます。

checksum_format: <string>デフォルトsha256を参照)

  • 指定されたアーカイブチェックサムに関連付けられたファイル検証に使用されるハッシュアルゴリズムです。チェックサム/暗号学的ハッシュについての詳細はこちらを参照してください。

package_url: <path-or-url-to-package>デフォルトdefaults/main.ymlを参照)

  • grafanaバイナリを含むdebian(DEB)またはRPMパッケージのアドレスです。公式バージョンへのリンクはこちらで見つけられます。

package_checksum: <path-or-url-to-checksum>デフォルトdefaults/main.ymlを参照)

  • 指定されたgrafanaパッケージのデータ整合性を確認するためのチェックサムファイルのアドレスです。推奨されており、一般的にはベストプラクティスと見なされていますが、チェックサムの指定は必須ではありません。値として空文字列('')を指定することで無効にできます。

設定

このロールを使用すると、grafanaインストールの設定があります。その構成は以下のコンポーネントに整理されています:

  • grafanaサービス設定(grafana.ini
  • データソースのプロビジョニング(provisioning/datasources - *.[json|yml]
  • ダッシュボードのプロビジョニング(provisioning/dashboards - *.[json|yml]
  • 通知設定(provisioning/notifiers - [json|yml]

各設定は、指定された設定ファイルの内容や設定をカスタマイズするために以下の変数の中で表現されます:

config_dir: </path/to/configuration/dir>デフォルト{{ install_dir }}

  • ターゲットホスト上でgrafana設定ファイルがレンダリングされるパスです。

provision_configs: <['datasources', 'dashboards' and/or 'notifiers']>デフォルト:[])

  • 設定するGrafanaプロビジョニングコンポーネントのリストです。詳細についてはこちらを参照してください。

Grafanaサービス設定

Grafanaサービス設定はINIファイルに含まれています。デフォルトではgrafana.iniという名前で、以下のサービスビヘイビアのセットがセクションによって整理されています。

これらのセクションと設定は、grafana_configというハッシュ内で、設定セクションごとにキーとディクショナリの値を持つハッシュとして表現されます(例えば、sqlite3データベースファイルを保存するパスなど—デフォルトで有効化されています)。以下は、各セクションの概要と例の設定です。

:paths

[grafana_config:] path: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaがアーティファクトや変数データを保存する場所に関連するパラメータを指定します。
 grafana_config:
   # セクション [paths]
   paths:
     # セクションオプション1 - sqliteデータベースのパス
     data: /mnt/data/grafana
     # セクションオプション2 - ログを保存するパス
     logs: /mnt/logs/grafana

[grafana_config:] server: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaがネットワーク経由でインターフェースできる方法に関連するパラメータを指定します。
 grafana_config:
   # セクション [server]
   server:
     http_addr: 127.0.0.1
     http_port: 3030
:database

[grafana_config:] database: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaが利用可能なバックエンドデータストアタイプ(mysql, postgres, sqliteなど)とインターフェースする方法を制御するパラメータを指定します。
 grafana_config:
   # セクション [database]
   database:
     type: mysql
     host: 127.0.0.1:3306
     name: grafana-test
     user: mysql-admin
     password: PASSWORD
:remote_cache

[grafana_config:] remote_cache: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaが利用可能なリモートキャッシングタイプ(redis, memcached, databaseなど)とインターフェースする方法を制御するパラメータを指定します。
 grafana_config:
   # セクション [remote_cache]
   remote_cache:
     type: redis
     connstr: addr=127.0.0.1:6379,pool_size=100,db=0,ssl=false
:security

[grafana_config:] security: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaのユーザー/組織の認証および認可の動作を管理するパラメータを指定します。
  grafana_config:
    # セクション [security]
    security:
      admin_user: sre-user
      admin_password: PASSWORD
      login_remember_days: 7
:users

[grafana_config:] users: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaのユーザー機能を制御するパラメータを指定します。
  grafana_config:
    # セクション [users]
    users:
      allow_sign_up: true
      allow_org_create: false
      login_hint: THIS IS A HINT
:auth

[grafana_config:] auth: <key: value,...>デフォルト:詳細はセクションを参照)

  • ユーザーの認可機能を規制するパラメータを指定します。

Grafanaは、ユーザーを認証するための複数の方法を提供しており、各方法の設定は適切に[auth.]セクションに表現されます。これにより、基本的なユーザー認証からGoogleやGithubのOAuthまで、さまざまな認証が可能です。

  grafana_config:
    # セクション [auth.github] - 注: **github**は認証方法を示します
    auth.github:
      enabled: true
      allow_sign_up: true
      client_id: YOUR_GITHUB_APP_CLIENT_ID
      client_secret: YOUR_GITHUB_APP_CLIENT_SECRET
      scopes: user:email,read:org
      auth_url: https://github.com/login/oauth/authorize
      token_url: https://github.com/login/oauth/access_token
      api_url: https://api.github.com/user
:dataproxy

[grafana_config:] dataproxy: <key: value,...>デフォルト:詳細はセクションを参照)

  • データプロキシログを有効にするためのパラメータを指定します。
  grafana_config:
    # セクション [dataproxy]
    dataproxy:
      logging: true
      timeout: 60
      send_user_header: true
:analytics

[grafana_config:] analytics: <key: value,...>デフォルト:詳細はセクションを参照)

  • 使用統計の収集とレポートを有効にするためのパラメータを指定します。
  grafana_config:
    # セクション [analytics]
    analytics:
      reporting_enabled: true
      google_analytics_ua_id: UA_ID
      check_for_updates: true
:dashboards

[grafana_config:] dashboards: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaのダッシュボードの管理ポリシーを制御するためのパラメータを指定します。
  grafana_config:
    # セクション [dashboards]
    dashboards:
      versions_to_keep: 5
:smtp

[grafana_config:] smtp: <key: value,...>デフォルト:詳細はセクションを参照)

  • 身元認証およびアラート/通知のためのメールサーバー設定を指定します。
  grafana_config:
    # セクション [smtp]
    smtp:
      enabled: true
      host: 127.0.0.1:65
      user: smtp-user
      password: PASSWORD
:log

[grafana_config:] log: <key: value,...>デフォルト:詳細はセクションを参照)

  • ログ設定(例:ログレベルとログ出力モードやチャネル)を指定します。
  grafana_config:
    # セクション [log]
    log:
      mode: console
      level: debug
:metrics

[grafana_config:] metrics: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaのテレメトリ出力を管理するための設定を指定します。
  grafana_config:
    # セクション [metrics]
    metrics:
      enabled: true
      interval_seconds: 5s
    metrics.graphite:
      address: 127.0.0.1:7070
:snapshots

[grafana_config:] snapshots: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaのインタラクティブダッシュボードスナップショット機能の公開動作を管理するための設定を指定します。
  grafana_config:
    # セクション [snapshots]
    snapshots:
      external_enabled: true
      external_snapshot_name: ENDPOINT
:external_image_storage

[grafana_config:] external_image_storage: <key: value,...>デフォルト:詳細はセクションを参照)

  • 画像をサービス(例えば、Slack)上で共有するために公開する方法を管理するための設定を指定します。

Grafanaは、各バックエンドストレージプロバイダーに対する個別の設定を[external_image_storage.]セクションに表現することをサポートしており、s3, gcs, azure blob, local storageなどのサービスでリモートストレージを有効にすることができます。

  grafana_config:
    # セクション [external_image_storage]
    external_image_storage:
      external_enabled: true
      external_snapshot_name: Publish to ENDPOINT
    external_image_storage.s3:
      endpoint: http://example.org.s3/
      bucket: grafana-snapshots
      region: us-east-1
      path: ${HOSTNAME}
      access_key: ACCESS_KEY
      secret_key: SECRET_KEY
:alerting

[grafana_config:] alerting: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaのアラートエンジンおよびその動作/ルールセットを管理するための設定を指定します。
  grafana_config:
    # セクション [alerting]
    alerting:
      enabled: true
      execute_alerts: true
      nodata_or_nullvalues: no_data
      evaluation_timeout_seconds: 10
      notification_timeout_seconds: 60
      max_attempts: 5
:rendering

[grafana_config:] rendering: <key: value,...>デフォルト:詳細はセクションを参照)

  • リモートHTTPレンダリングサービスを操作するための設定を指定します。
  grafana_config:
    # セクション [rendering]
    rendering:
      server_url: http://localhost:8081/render
      callback_url: http://grafana.open.domain
:plugins

[grafana_config:] plugins: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaプラグインの利用可能性とアクセス性を管理するための設定を指定します。
  grafana_config:
    # セクション [plugins]
    plugins:
      enable_alpha: true
:feature_toggles

[grafana_config:] feature_toggles: <key: value,...>デフォルト:詳細はセクションを参照)

  • Grafanaインスタンスでアルファ機能の使用を切り替えるための設定を指定します。
  grafana_config:
    # セクション [feature_toggles]
    features_toggles:
      enable: transformations
:tracing.jaeger

[grafana_config:] tracing.jaeger: <key: value,...>デフォルト:詳細はセクションを参照)

  • 分散トレーシングのためのGrafanaのJaegerクライアントを設定するための設定を指定します。

注: 標準のJaeger環境変数(JAEGAR_*でプレフィックスされる)は依然として指定可能で、ここで提供された設定を上書きします。

  grafana_config:
    # セクション [tracing.jaegar]
    tracing.jaegar:
      address: http://localhost:6381
      always_included_tag: key1:value1,key2:value2

データソース

Grafanaは、時系列データ用のさまざまなストレージバックエンドをサポートしており、これらはデータソースと呼ばれています。各データソースは、Grafanaのprovisioningディレクトリ内のjson|yml設定ファイルセットで構成されます。これらの設定は、[paths]セクションの中で調整できます。

これらのデータソース設定は、grafana_datasourcesというハッシュ内で表現されます。このハッシュには、アクティベーション用のデータソース構造のリストと削除用のリストが含まれ、キーはそれぞれdatasourcesdeleteDatasourcesです。値自体は、個々のデータソース仕様を表す辞書のリストで構成されています。サポートされているデータソースの詳細とリストについてはこちらを参照してください。

grafana_datasources: <list-of-dicts>デフォルト:[])

  • レンダリングするgrafanaデータソース定義を指定します。利用可能なデータソースの参考にはこちらを参照してください。

grafana_datasources: name: <string>デフォルト必須

  • レンダリングするgrafanaデータソースファイルの名前です。

grafana_datasources: <entry> : datasources: <list-of-dicts>デフォルト[]

  • 設定ファイル内でレンダリングするデータソース定義のリスト(上記のサポートリストに基づく)です。

grafana_datasources: <entry> : deleteDatasources: <list-of-dicts>デフォルト[]

  • 設定ファイル内でレンダリングするために削除する以前にインポートされたデータソース定義のリスト(上記のサポートリストに基づく)です。
 grafana_datasources:
 - name: example_datasource
   datasources:
     - name: elasticsearch-logs
       type: elasticsearch
       access: proxy
       database: "[logs-]YYYY.MM.DD"
       url: http://localhost:9200
       jsonData:
         interval: Daily
         timeField: "@timestamp"
         esVersion: 70
         logMessageField: message
         logLevelField: fields.level
     - name: prometheus_example
       type: prometheus
       access: proxy
       url: http://localhost:9090
   deleteDatasources:
     - name: graphite-legacy
       type: graphite
       access: proxy
       url: http://localhost:8080
       jsonData:
         graphiteVersion: "1.1"

5.0以降、Grafanaはprovisioning/dashboardsディレクトリに1つ以上のyaml|json設定ファイルを追加することを許可しました。これにより、Grafanaはローカルファイルシステムからダッシュボードを読み込むことができます。このディレクトリには、読み込み元のディレクトリ/ファイルに関連する特徴やさまざまな形式のメタデータを示すダッシュボードプロバイダーのリストが含まれます。

これらのダッシュボードプロバイダーの設定は、grafana_dashboardsというハッシュ内で表現され、上述のダッシュボードプロバイダー構造のリストで構成されます。コミュニティによって作成されたダッシュボードの詳細とダウンロード可能なリストについてはこちらを参照してください。

grafana_dashboards: <list-of-dicts>デフォルト:[])

  • レンダリングするgrafanaダッシュボードプロバイダー定義を指定します。サポートされているオプションのリファレンスはこちらを参照してください。

grafana_dashboards: <entry> : name: <string>デフォルト必須

  • レンダリングするgrafanaダッシュボードプロバイダーのファイル名です。

grafana_dashboards: <entry> : apiVersion: <string>デフォルト[]

  • Grafanaダッシュボードプロバイダーファイルのバージョン名(インスタンス間での同期に便利です)。

grafana_dashboards: <entry> : providers: <list-of-dicts>デフォルト[]

  • 設定ファイル内でレンダリングするためのダッシュボードプロバイダー定義のリストです。

[grafana_dashboards: <entry> : urls: <entry>:] name デフォルト必須

  • ダッシュボード設定/内容を保存するためのJSONファイルの名前です。

[grafana_dashboards: <entry> : urls: <entry>:] src デフォルト[]

  • JSONファイル/コンテンツをダウンロードするためのURLまたはウェブアドレスです。

[grafana_dashboards: <entry> : urls: <entry>:] id <整数> (デフォルト[]

  • Grafanaの公式コミュニティハブからダウンロードするためにダッシュボードを参照するための一意の識別子です。

[grafana_dashboards: <entry> : urls: <entry>:] destデフォルト{{ provisioning_dir }}/dashboards

  • JSONダッシュボード定義をホストファイルシステム上に保存する場所です。

注: ダッシュボードの識別と場所に関しては、_.srcまたは_.idのどちらかが必須です

  grafana_dashboards:
    - name: test-example
      apiVersion: 2
      urls:
        - name: node_exporter_prometheus
          src: https://grafana.com/api/dashboards/11173/revisions/1/download
        - name: geth_server
          id: '6976'
      providers:
        - name: 'default-example'
          folder: 'default'
          folderUid: 1
          type: file
          disableDeletion: true
          updateIntervalSeconds: 30
          options:
            path: /var/lib/grafana/conf/provisioning/dashboards

通知

アラート通知チャネルは、provisioning/notifiersディレクトリに1つ以上のyaml|json設定ファイルを追加することでプロビジョニングできます。

各設定ファイルは、次の最上位フィールドを含むgrafana_notifiersハッシュ内で表現されます:

  • notifiers:起動時に追加または更新されるアラート通知のリストです。通知チャネルが既に存在する場合、Grafanaはそれを設定ファイルに合わせて更新します。
  • delete_notifiers:noフィルタが設定された場合、通知リスト内のそれに挿入/更新する前に削除するアラート通知のリストです。

プロビジョニングは通知をuidで照会し、提供されたuidで既存の通知を更新します。

grafana_notifiers: <list-of-dicts>デフォルト:[])

  • レンダリングするgrafana通知定義を指定します。サポートされているオプションのリファレンスはこちらを参照してください。

grafana_notifiers: <entry> : name: <string>デフォルト必須

  • レンダリングするgrafanaアラート通知ファイルの名前です。

grafana_notifiers: <entry> : notifiers: <string>デフォルト[]

  • grafanaインスタンスのためにアクティベートするgrafanaアラート通知のリストです。

grafana_notifiers: <entry> : delete_notifiers: <list-of-dicts>デフォルト[]

  • grafanaインスタンスから削除するgrafanaアラート通知のリストです。
  grafana_notifiers:
    - name: slack-example
      notifiers:
        - name: example-org-slack
          url: http://slack.example.org
          recipient: team-channel
        - name: example-org-pagerduty
          integrationKey: PAGER_DUTY_KEY
      delete_notifiers:
        - name: example-org-email
          addresses: [email protected],[email protected]

プラグイン

Grafanaは、データソース、パネル、およびアプリプラグインをサポートしています。このロールは、プラグインをダウンロードするためのプラグインの名前とバージョンを指定するリスト変数grafana_pluginsを提供します。プラグインのインストールに関する詳細については、Grafanaの公式プラグインドキュメントを参照し、利用可能なプラグインのリファレンスにはこちらを参照してください。

[grafana_plugins: <entry>:] name: デフォルト必須

  • ダウンロードするGrafanaプラグインの名前です。

[grafana_plugins: <entry>:] version: デフォルトlatest

  • ダウンロードするGrafanaプラグインのバージョンです。
  grafana_plugins:
    - name: petrslavotinek-carpetplot-panel
      version: 0.1.1
    - name: briangann-gauge-panel
      # version: latest

起動

このロールは、systemdサービス管理ツールを利用して、grafanaウェブサーバーを起動することをサポートします。これにより、サービスはバックグラウンドプロセスまたはデーモンとして管理されます。構成と実行ポテンシャルはその基盤となる管理フレームワークによって提供されます。

次の変数をカスタマイズして、サービスのsystemd [Service]単位定義と実行プロファイル/ポリシーを管理できます:

extra_run_args: <grafana-cli-options>デフォルト[]

  • リアルタイムでバイナリに渡すgrafanaコマンドライン引数のリストです。これにより、起動時にカスタマイズが可能です。

custom_unit_properties: <hash-of-systemd-service-settings>デフォルト[]

  • Grafana systemdサービスの[Service]単位構成と実行環境をカスタマイズするための設定のハッシュです。

アンインストール

プロビジョニングに必要なアーティファクトをアンインストールおよび削除するサポートにより、ユーザー/オペレーターはターゲットホストをこのロールの適用前の構成状態に戻すことができます。これにより、ノードを再利用したり、ツールのアップグレード間の移行をより洗練された/管理されたものにすることができます。

このアンインストールプロセスを管理するためにカスタマイズできる次の変数があります:

perform_uninstall: <true | false>デフォルトfalse

  • ターゲットホスト上でこのgrafanaインストールのすべてのアーティファクトと残骸をアンインストールおよび削除するかどうか(詳細についてはhandlers/main.ymlを参照)。

依存関係

  • 0x0i.systemd

例のプレイブック

デフォルト例:

- hosts: all
  roles:
  - role: 0x0I.grafana

特定のバージョンのGrafanaビットをインストールする:

- hosts: all
  roles:
  - role: 0xOI.grafana
    vars:
      archive_url: https://dl.grafana.com/oss/release/grafana-6.6.1.linux-amd64.tar.gz
      archive_checksum: 0edc8207e356ef66eb7b1c78a1cdabc2cd5c0655de774000de2ad0397e543377

Grafanaのインストール、設定、およびデータディレクトリを調整する:

- hosts: all
  roles:
  - role: 0x0I.grafana
    vars:
      install_dir: /usr/local
      config_dir: /etc/grafana
      data_dir: /mnt/grafana

トラブルシューティング用にデバッグモードでGrafanaを起動し、のみコンソール/stdout{err}に出力する:

- hosts: all
  roles:
  - role: 0x0I.grafana
    vars:
      grafana_config:
        log:
          level: debug
          mode: console

ライセンス

MIT

著者情報

このロールは2019年にO1.IOによって作成されました。

プロジェクトについて

Grafana - an analytics and monitoring observability platform

インストール
ansible-galaxy install 0x0i.grafana
ライセンス
Unknown
ダウンロード
337
所有者