Proxmoxを可視化する

サーバー
この記事は約7分で読めます。

前回さらっと紹介したGrafanaの導入周りのメモです(うろ覚え)

ツールのざっくり説明

Grafana

可視化ツールの一つです

DBに保存されたログなどを集計し、様々なUIパーツでグラフにすることができます

また、DBなどのデータを集計することができるので下手に自前で作るよりデータ集計クエリの設計やほかのことに専念できます。
(仕事で自前実装する前に触っておけばよかったなと後悔)

今回使うinfluxDB以外にも多くのDB対応してます。

また、有志が作成したダッシュボードも公開されているので、ほぼ触らずにダッシュボードの作成もできます。(しました

参考:

influxDB

時系列系DBです。

ログデータのように時系列で追加されるようなデータが次々と追加されるが更新がほぼされないようなデータを得意とします。

(これも仕事で使えるなら使いたいなとか思ったり)

今回はProxmox内蔵のメトリック出力機能に直接書き出せるDBがこれなので使います

環境とか

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy
# influx version
Influx CLI 2.4.0 (git: 5c7c34f) build_date: 2022-08-18T19:26:48Z
# grafana-server -v
Version 9.1.4 (commit: 2186d0bbeb, branch: HEAD)

インストール

influxDB

公式ドキュメントに従いインストールします

ここではユーザー名をadmin、パスワードは任意ものを、organizationはzin3、Bucketはzin3-bkとします

# apt upgrade
# apt install influxdb2
# systemctl enable influxdb
# systemctl start influxdb
# systemctl status influxdb

# influx setup
Welcome to InfluxDB 2.0!
? Please type your primary username admin
? Please type your password *****
X Sorry, your reply was invalid: value is too short. Min length is 8
X Sorry, your reply was invalid: value is too short. Min length is 8
? Please type your password ********
? Please type your password again ********
? Please type your primary organization name zin3
? Please type your primary bucket name zin3-bk
? Please type your retention period in hours, or 0 for infinite 0
? Setup with these parameters?
  Username:          admin
  Organization:      zin3
  Bucket:            zin3-bk
  Retention Period:  infinite
 Yes
User    Organization    Bucket
admin   zin3            zin3-bk
[email protected]:~# influx config list
Active  Name    URL                     Org
*       default http://localhost:8086   zin3

インストールができるとダッシュボードにアクセスできます(port 8086)

ログイン後、左メニューのLoadDataのAPITokensを開きます

admins’s Tokenをコピーするか、右上のGENERATE API TOKENから先ほど作成したバケットのアクセス権があるAPIトークンを作成し、トークンをコピーしておきます。(proxmoxで指定します)
(アラートにあるようにUIが変わるらしいのと、フルアクセスあげても危ないので個別で作成することをおすすめします。)

Grafana

こちらもドキュメントに従いインストールします

# apt install -y adduser libfontconfig1
# wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.1.4_amd64.deb
# dpkg -i grafana-enterprise_9.1.4_amd64.deb
# systemctl status grafana-server
# systemctl enable grafana-server
# systemctl start grafana-server
# systemctl status grafana-server

インストールできるとダッシュボードにアクセスできます(port 3000)

確か初回起動時はパスワードを設定できたような気がする(うろ覚え

設定とか

Proxmox

ProxmoxのメトリックサーバーにinfluxDBを指定します

追加表示されるウィンドウに該当する値を設定します。

デフォルトはUDPですが、influxDB v2以降はUDPがないためHTTPで登録します

適切に登録できているとinfluxDBのダッシュボードからグラフが表示できるようになります

Grafana

ダッシュボードにアクセスし、左下の歯車をクリックします

集計データの元となるDBを登録するため、右上のadd data sourceをクリック
(すでにinfluxDB(設定したやつ)とかZabbix(プラグイン)が入ってますが気にしないでね)

基本的に入力項目を入れるだけですが、QueryLanguageをFluxにしてください

Save&Testが問題なければ追加したバケット+2ぐらいが見つかったと表示されるはずです

次に左上のメニューからDashbords(窓みたいなアイコン)をクリックします

右上のNewからImportをクリック

ここにGrafana公式サイトに上げられている有志のダッシュボードのURLかIDを入れるとインポートできます

最初参考にした記事ではID:10048を使用していましたが、うまく動かなかったのでID:17051にしました(これもぽん入れで動かなかったので修正したりしましたが)
探すと結構あります

Loadを押すとダッシュボード名などを指定できます。

一番下のinfluxDBを先ほど設定したinfluxDBに選択をしてImportします

AdminTokenを使用しているとおそらく以下の画像のようになります

左上をよく見るとDatasourceやらBucketやらServerやら書いてありますね

ここが正しくないためデータが表示できません

Bucketを変更してやると正しく出てきました

おそらくデータを入れたバケットのみアクセス権があるAPIトークンなら問題なく表示されると思います。

ページをリロードするたび変更するのはめんどいので、ダッシュボードを修正することにしました

右上の歯車から設定を開きます。

VariablesのタブからBucketを開きます

Regexの項目にアンダーバーから始まるバケットを表示しない正規表現を入れてあげます

保存をすれば次からはinfluxDBの管理用バケットは表示されません

これならトークンの権限を見直した方がいいですね


 

今回は既存のダッシュボードで作りましたが、influxDBのクエリさえ書ければ好きなようにできます。

自分用の見やすいダッシュボードを作りたいのと、ほかの機器(特にL3SWなどネットワーク機器)を可視化できるようにしたいです

参考:

コメント