コンテンツにスキップ

Grafana Cloud

Created: 2023/08/31

概要

PrometheusとかGrafanaとか自前で構築しようかと思ったけど途端にめんどくさくなったのでGrafana Cloudで楽できないか検討してみます。

参考

https://blog.geeko.jp/ftake/2866

Prometheus/Grafanaの参考

Prometheus最速構築 - Zenn

Ubuntu20.04でPrometheusを用いてリソースモニタリング(環境構築編) - Qiita

やったこと

Ubuntu (VM)

手順に従ってGrafana Agentのインストールと/etc/grafana-agent.yamlの設定ファイル書き換えを行う。最後にサービスをリスタートして完了。

https://kokshi.grafana.net/connections/add-new-connection/linux-node

Alt text

TrueNAS

Graphiteでデータを吐けるとのことなので、TrueNAS -> Graphite -> Grafana Cloudでイケないか試す。

訂正 TrueNAS -> graphite-expoter -> Grafana Agent -> Grafana Cloud

https://github.com/prometheus/graphite_exporter/

$ sudo docker pull prom/graphite-exporter
$ sudo docker run -d -p 9108:9108 -p 2003:9109 -p 2003:9109/udp -v ${PWD}/graphite_mapping.conf:/tmp/graphite_mapping.conf --restart=always --name graphite-exporter prom/graphite-exporter --graphite.mapping-config=/tmp/graphite_mapping.conf --graphite.mapping-strict-match

graphite_mapping.confは空でも動きます。

Grafana Agentの設定に次の設定を追加する。ターゲットに graphite-expoterのホスト名+ポートを書けばOKです。

metrics:
  configs:
  - name: integrations
    remote_write:
    - basic_auth:
        password: any
        username: any
      url: https://prometheus-prod-37-prod-ap-southeast-1.grafana.net/api/prom/push
    scrape_configs:
      # Add here any snippet that belongs to the `metrics.configs.scrape_configs` section.
      # For a correct indentation, paste snippets copied from Grafana Cloud at the beginning of the line.
      - job_name: 'graphite'
        static_configs:
        - targets: ['localhost:9108']

Alt text

もしかしたら変換したほうがやりやすいのかもしれません。

https://kokshi.grafana.net/a/cloud-home-app

多分タグ付けとかができるので頑張って書く。

下記のコマンドでテスト受信できる。

$ nc -lk 2003

graphite-expoter マッピングの設定

matchは基本Globで書けるが.cpu-*.のように、ワイルドカードに.以外が隣接する場合エラーになるので注意する。TrueNASはReports Configの"Graphite Separate Instances"を有効にするとマッピングが思い通りに行く。

prometheus/statsd_exporter - マッピングファイルの記法

# graphite_mapping.conf
mappings:
- match: servers.truenas_local.cpu.*.cpu.*
  name: truenas_cpu
  labels:
    cpu: $1
    mode: $2
- match: servers.truenas_local.disk.*.disk_time.*
  name: "truenas_disk_time_${2}"
  labels:
    disk: $1
- match: "servers.truenas_local.interface.*.*.*"
  name: "truenas_${2}_${3}"
  labels:
    interface: $1
- match: "servers.truenas_local.memory.memory.*"
  name: "truenas_memory_${1}"

文献

https://www.truenas.com/docs/scale/scaleuireference/reportingscreensscale/

https://www.truenas.com/community/threads/truenas-scale-reporting-to-graphite-change-port.101052/

TrueNASはGraphiteサーバーへのアクセスポート(2003らしい)を変えられないみたい