フロントエンドGrafanaの導入
Grafanaのインストールは、パッケージマネージャから。登録されたサービスの開始や自動起動登録の要領は、Prometheusと同じです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
prom14:~$ sudo apk add grafana (1/4) Installing grafana-frontend (10.4.2-r0) (2/4) Installing sqlite-libs (3.45.2-r0) (3/4) Installing grafana (10.4.2-r0) Executing grafana-10.4.2-r0.pre-install (4/4) Installing grafana-openrc (10.4.2-r0) Executing busybox-1.36.1-r25.trigger OK: 720 MiB in 91 packages prom14:~$ sudo rc-service grafana start * Caching service dependencies ... [ ok ] * /var/lib/grafana: creating directory * /var/lib/grafana: correcting owner * /var/lib/grafana/provisioning: creating directory * /var/lib/grafana/provisioning: correcting owner * /var/lib/grafana/provisioning/alerting: creating directory * /var/lib/grafana/provisioning/alerting: correcting owner * /var/lib/grafana/provisioning/dashboards: creating directory * /var/lib/grafana/provisioning/dashboards: correcting owner * /var/lib/grafana/provisioning/datasources: creating directory * /var/lib/grafana/provisioning/datasources: correcting owner * /var/lib/grafana/provisioning/notifiers: creating directory * /var/lib/grafana/provisioning/notifiers: correcting owner * /var/lib/grafana/provisioning/plugins: creating directory * /var/lib/grafana/provisioning/plugins: correcting owner * Starting Grafana ... [ ok ] prom14:~$ rc-service grafana status * status: started prom14:~$ sudo rc-update add grafana default * service grafana added to runlevel default |
これで3000番ポートをブラウザで開けばGrafanaのログイン画面を拝めるはずも、ブラウザのエラーページ。
grafanaの設定ファイル /etc/grafana.ini の [server] 項にある、デフォルトパラメータをいくつかコメントアウトを外して手打ちするも、効果なし。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#################################### Server #################################### [server] # Protocol (http, https, h2, socket) ;protocol = http protocol = http # The ip address to bind to, empty will bind to all interfaces ;http_addr = http_addr = 192.168.51.14 # The http port to use ;http_port = 3000 http_port = 3000 # The public facing domain name used to access grafana from a browser ;domain = localhost domain = prom14.lan |
netstat で待ち受けを確認すると、3000番は localhost の方にしか向いていませんでした。
|
1 2 3 4 5 6 7 8 |
prom14:/etc$ sudo netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 :::9090 :::* LISTEN - tcp 0 0 :::9100 :::* LISTEN - tcp 0 0 :::22 :::* LISTEN - |
プロセスの様子を確認と、遂にその犯人を発見。
|
1 2 3 4 5 6 7 |
4157 grafana 0:02 /usr/bin/grafana server -config /etc/grafana.ini -homepath /usr/share/grafana cfg:paths.data=/var/lib/grafana/data cfg:paths.plugins=/var/lib/grafana/plugins cfg:paths.provisioning=/var/lib/grafana/provisioning cfg:server.http_addr=127.0.0.1 cfg:log.mode=syslog |
grafanaのサービスファイルに $GRAFANA_OPTS とだけ記されている変数は、
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/sbin/openrc-run supervisor=supervise-daemon name="Grafana" description="Metrics Dashboard and Graph Editor" command="/usr/bin/grafana" command_args="server $GRAFANA_OPTS" command_user=grafana:grafana depend() { need net after firewall } start_pre() { checkpath -d -o grafana:grafana -m755 $GRAFANA_HOME \ $GRAFANA_HOME/provisioning \ $GRAFANA_HOME/provisioning/alerting \ $GRAFANA_HOME/provisioning/dashboards \ $GRAFANA_HOME/provisioning/datasources \ $GRAFANA_HOME/provisioning/notifiers \ $GRAFANA_HOME/provisioning/plugins } |
自動起動時の設定ファイルにその中身がありました。
|
1 2 3 4 5 6 7 8 |
GRAFANA_HOME=/var/lib/grafana GRAFANA_OPTS="-config /etc/grafana.ini -homepath /usr/share/grafana cfg:paths.data=$GRAFANA_HOME/data cfg:paths.plugins=$GRAFANA_HOME/plugins cfg:paths.provisioning=$GRAFANA_HOME/provisioning cfg:server.http_addr=127.0.0.1 cfg:log.mode=syslog" rc_need=logger |
このファイル書き換えても、今後パッケージ更新などで上書きされてしまう恐れがあることから、nginxリバースプロキシにより、 localhost:3000 <--> LAN_IP:80 を疎通させて対処しようと思います。
nginxリバースプロキシの導入
apkパッケージマネージャでnginxをインストール、開始、自動起動するよう登録。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
prom14:~$ sudo apk add nginx (1/4) Installing hiredis (1.2.0-r0) (2/4) Installing pcre (8.45-r3) (3/4) Installing nginx (1.24.0-r18) Executing nginx-1.24.0-r18.pre-install Executing nginx-1.24.0-r18.post-install (4/4) Installing nginx-openrc (1.24.0-r18) Executing busybox-1.36.1-r25.trigger OK: 721 MiB in 95 packages prom14:~$ sudo rc-update add nginx default * service nginx added to runlevel default prom14:~$ sudo rc-service nginx start * Caching service dependencies ... [ ok ] * Starting nginx ... [ ok ] |
nginxのデフォルト設定ファイル /etc/nginx/http.d/default.conf を、次のように記述します。
|
1 2 3 4 5 6 7 |
server { listen 80; location / { proxy_set_header Host $host; proxy_pass http://localhost:3000/; } } |
その中にある proxy_set_header Host $host は、実際にブラウザで開き、何か設定する度に出てくるエラー、 "origin not allowed" に対処するものです(こちらのスレッド参照)。
サービスを再起動して、80番での待ち受け確認。
|
1 2 3 4 5 6 7 8 9 10 |
prom14:~$ sudo netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN - tcp 0 0 :::9090 :::* LISTEN - tcp 0 0 :::9100 :::* LISTEN - tcp 0 0 :::22 :::* LISTEN - tcp 0 0 :::80 :::* LISTEN - |
ブラウザでようやくGrafanaのログインページを拝めました。

図07.Grafanaログイン
Grafanaの初期設定
Grafanaのメニューを Connections → Data sources と進み、 Add data source をクリック
Time series databases に分類されている Prometheus を選択。
設定は、 Connection のところに http://localhost:9090/ をセットするぐらい。
ページ下端にある Save & test を押下、成功することを確認。
Node Exporter Fullダッシュボード
Grafanaでは、多種多様なダッシュボードがサイトで公開されています。
この中からNode-exporter向けの定番、Node Exporter Fullをインポートしてみます。
ダッシュボードページ右にある、Copy ID to clipboardを押して、
Grafanaページ右上の+ボタンを押してImport dashboardを押し、
データソースにPrometheusを選んでインポートを実行します。
これだけで、こんな見事なダッシュボードの出来上がり。
ようやくフロントエンドが華やかになったところで、次ページでは監視ターゲットを増やします。












