buluma.grafana

Ansibleロール grafana

Grafana - 分析と監視のプラットフォーム

GitHub バージョン 課題 プルリクエスト ダウンロード
github Version Issues PullRequests Ansible Role

サンプルプレイブック

このサンプルは molecule/default/converge.yml から取られており、プッシュ、プルリクエスト、リリースのたびにテストされています。

---
- name: Converge
  hosts: all
  become: yes
  gather_facts: yes

  roles:
    - role: buluma.grafana
      vars:
        grafana_security:
          admin_user: admin
          admin_password: password

マシンを準備する必要があります。CIでは molecule/default/prepare.yml を使用して行います:

---
- name: Prepare
  hosts: all
  gather_facts: no
  become: yes

  roles:
    - role: buluma.bootstrap

また、これらのロールの使い方についての詳細な説明と例も参照してください。

ロール変数

変数のデフォルト値は defaults/main.yml に設定されています:

---
grafana_version: latest
grafana_yum_repo_template: etc/yum.repos.d/grafana.repo.j2
grafana_manage_repo: true

# プロビジョニング機能を使用する必要がありますか? (プロビジョニングには grafana >= 5.0 が必要)
grafana_use_provisioning: true

# プロビジョニングを同期させるべきか。trueの場合、以前にプロビジョニングされたオブジェクトは参照がなくなると削除されます。
grafana_provisioning_synced: false

grafana_instance: "{{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }}"

grafana_logs_dir: "/var/log/grafana"
grafana_data_dir: "/var/lib/grafana"

grafana_address: "0.0.0.0"
grafana_port: 3000
# 1024未満のポートを特権のないプロセスで使用するには、linuxはCAP_NET_BIND_SERVICEを設定する必要があります。
# これはセキュリティに関連する意味を持ち、意図的に行うべきです。
# 情報を得るには以下を読んでください: http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_cap_net_bind_service: false

# 外部Grafanaアドレス。変数はgrafanaサーバーセクションの"root_url"にマップされます
grafana_url: "http://{{ grafana_address }}:{{ grafana_port }}"
grafana_api_url: "{{ grafana_url }}"
grafana_domain: "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}"

# grafana "server"セクション用の追加オプション
# このセクションでは、http_addr、http_port、domain、root_urlのオプションは省略されます。これらの設定は前に示した変数で設定されています。
grafana_server:
  protocol: http
  enforce_domain: false
  socket: ""
  cert_key: ""
  cert_file: ""
  enable_gzip: false
  static_root_path: public
  router_logging: false
  serve_from_sub_path: false

# grafana.ini設定ファイルの変数に対応
# セキュリティ
grafana_security:
  admin_user: admin
  admin_password: "password"
#  secret_key: ""
#  login_remember_days: 7
#  cookie_username: grafana_user
#  cookie_remember_name: grafana_remember
#  disable_gravatar: true
#  data_source_proxy_whitelist:

# データベース設定
grafana_database:
  type: sqlite3
#  host: 127.0.0.1:3306
#  name: grafana
#  user: root
#  password: ""
#  url: ""
#  ssl_mode: disable
#  path: grafana.db
#  max_idle_conn: 2
#  max_open_conn: ""
#  log_queries: ""

# リモートキャッシュ
grafana_remote_cache: {}

# ユーザー管理と登録
grafana_welcome_email_on_sign_up: false
grafana_users:
  allow_sign_up: false
  # allow_org_create: true
  # auto_assign_org: true
  auto_assign_org_role: Viewer
  # login_hint: "email or username"
  default_theme: dark
  # external_manage_link_url: ""
  # external_manage_link_name: ""
  # external_manage_info: ""

# grafana認証メカニズム
grafana_auth: {}
#  disable_login_form: false
#  oauth_auto_login: false
#  disable_signout_menu: false
#  signout_redirect_url: ""
#  anonymous:
#    org_name: "Main Organization"
#    org_role: Viewer
#  ldap:
#    config_file: "/etc/grafana/ldap.toml"
#    allow_sign_up: false
#  basic:
#    enabled: true

grafana_ldap: {}
#  verbose_logging: false
#  servers:
#    host: 127.0.0.1
#    port: 389 # 636 for SSL
#    use_ssl: false
#    start_tls: false
#    ssl_skip_verify: false
#    root_ca_cert: /path/to/certificate.crt
#    bind_dn: "cn=admin,dc=grafana,dc=org"
#    bind_password: grafana
#    search_filter: "(cn=%s)" # "(sAMAccountName=%s)" on AD
#    search_base_dns:
#      - "dc=grafana,dc=org"
#    group_search_filter: "(&(objectClass=posixGroup)(memberUid=%s))"
#    group_search_base_dns:
#      - "ou=groups,dc=grafana,dc=org"
#    attributes:
#      name: givenName
#      surname: sn
#      username: sAMAccountName
#      member_of: memberOf
#      email: mail
#  group_mappings:
#    - name: Main Org.
#      id: 1
#      groups:
#        - group_dn: "cn=admins,ou=groups,dc=grafana,dc=org"
#          org_role: Admin
#        - group_dn: "cn=editors,ou=groups,dc=grafana,dc=org"
#          org_role: Editor
#        - group_dn: "*"
#          org_role: Viewer
#    - name: Alternative Org
#      id: 2
#      groups:
#        - group_dn: "cn=alternative_admins,ou=groups,dc=grafana,dc=org"
#          org_role: Admin

grafana_session: {}
#  provider: file
#  provider_config: "sessions"

grafana_analytics: {}
#  reporting_enabled: true
#  google_analytics_ua_id: ""

# メール通知用に設定
grafana_smtp: {}
#  host:
#  user:
#  password:
#  from_address:

# grafanaアラートメカニズムを有効化
grafana_alerting:
  execute_alerts: true
#  error_or_timeout: 'alerting'
#  nodata_or_nullvalues: 'no_data'
#  concurrent_render_limit: 5

# Grafanaのログ設定
grafana_log:
# mode: 'console file'
# level: info

# 内部のgrafanaメトリクスシステム
grafana_metrics: {}
#  interval_seconds: 10
#  graphite:
#    address: "localhost:2003"
#    prefix: "prod.grafana.%(instance_name)s"

# 分散トレースオプション
grafana_tracing: {}
#  address: "localhost:6831"
#  always_included_tag: "tag1:value1,tag2:value2"
#  sampler_type: const
#  sampler_param: 1

grafana_snapshots: {}
#  external_enabled: true
#  external_snapshot_url: "https://snapshots-origin.raintank.io"
#  external_snapshot_name: "Publish to snapshot.raintank.io"
#  snapshot_remove_expired: true
#  snapshot_TTL_days: 90

# 外部画像ストレージ
grafana_image_storage: {}
#  provider: gcs
#  key_file:
#  bucket:
#  path:

#######
# https://grafana.com/plugins からのプラグイン
grafana_plugins: []
#  - raintank-worldping-app

# https://grafana.com/dashboards からのダッシュボード
grafana_dashboards: []
#  - dashboard_id: '4271'
#    revision_id: '3'
#    datasource: 'Prometheus'
#  - dashboard_id: '1860'
#    revision_id: '4'
#    datasource: 'Prometheus'
#  - dashboard_id: '358'
#    revision_id: '1'
#    datasource: 'Prometheus'

grafana_dashboards_dir: "dashboards"

# 構成するアラート通知チャネル
grafana_alert_notifications: []
#  - name: "Email Alert"
#    type: "email"
#    uid: channel1
#    is_default: true
#    settings:
#      addresses: "[email protected]"

# 構成するデータソース
grafana_datasources: []
#  - name: "Prometheus"
#    type: "prometheus"
#    access: "proxy"
#    url: "http://prometheus.mydomain"
#    basicAuth: true
#    basicAuthUser: "admin"
#    basicAuthPassword: "password"
#    isDefault: true
#    jsonData:
#      tlsAuth: false
#      tlsAuthWithCACert: false
#      tlsSkipVerify: true

# 構成するAPIキー
grafana_api_keys: []
#  - name: "admin"
#    role: "Admin"
#  - name: "viewer"
#    role: "Viewer"
#  - name: "editor"
#    role: "Editor"

# キーを保存する場所
grafana_api_keys_dir: "{{ lookup('env', 'HOME') }}/grafana/keys"

grafana_environment: {}

# パネル設定
grafana_panels: {}
#  disable_sanitize_html: false
#  enable_alpha: false

要件

使用されるロールの状態

システムを準備するために次のロールが使用されます。他の方法でシステムを準備することも可能です。

要件 GitHub バージョン
buluma.bootstrap Ansible Molecule Version

コンテキスト

このロールは多くの互換性のあるロールの一部です。これらのロールのドキュメントを確認してください。

関連ロールの概要は次の通りです:

dependencies

互換性

このロールは以下のコンテナイメージでテストされています:

コンテナ タグ
Ubuntu すべて
Debian すべて
EL すべて
Fedora すべて

必要なAnsibleの最小バージョンは2.12です。テストは以下に対して行われました:

  • 前のバージョン。
  • 現在のバージョン。
  • 開発バージョン。

問題を見つけた場合は、GitHubに登録してください。

変更履歴

ロールの履歴

ライセンス

Apache-2.0

著者情報

Shadow Walker

プロジェクトについて

Grafana - platform for analytics and monitoring

インストール
ansible-galaxy install buluma.grafana
ライセンス
apache-2.0
ダウンロード
374
所有者
DevOps Engineer