Fedora CoreOS + Podman + Prometheus + Blackbox Exporter + GrafanaでWebサーバ(IPv6)を監視してみた。(その2)
Web Server(IPv6)を監視するために、Fedora CoreOS に Podman で監視コンテナ(Prometheus+Blackbox Exporter+Grafana)を作成してみました。今回は Grafana の設定です。
前回の設定で Prometheus で自宅サーバと Netlify の Web Server を外形監視することができましたので今回は Grafana を導入していきます。
Grafana コンテナの作成
Grafana のコンテナを作成していきます。
ビルド用フォルダ
backend
:
├── grafana
│ ├── Dockerfile
│ └── build
│ └── grafana.ini
grafana Dockerfile
grafana/grafana イメージを利用します。設定ファイルは grafana.ini に記載して/etc/grafana にコピーします。またこちらも prothemeus と同様に USER 0(root)としてホスト側の rootless ユーザからマッピングしたボリュームをアクセスできるようにします。
FROM grafana/grafana
LABEL version="1.0" "akiboi.net"="akiboI"
USER 0
COPY build/grafana.ini /etc/grafana
grafana.ini の設定
grafana.ini は、まずは動作することを優先に考えポート番号とメールの設定のみ変更してその他はディフォルトのままとしました。後でじっくりチューニングしていきたいと思います。
:
#################################### Database ####################################
[server]
http_port = 52102
:
#################################### SMTP / Emailing ##########################
[smtp]
enabled = true
host = smtp.gmail.com:587
user = ●●●●@gmail.com
password = ●●●●●●●●●●●●●
skip_verify = false
from_address = ●●●●@gmail.com
from_name = Grafana
:
Grafana の.gitlab-ci.yml
他のコンテナとほとんど同じで、ビルド判断するフォルダとコンテナ名、ボリュームマッピングが違うのみです。
grafana:
stage: buildContainer
only:
changes:
- backend/grafana/**/*
script:
- HOST="xxxx@yyyy"
- POD="backend"
- BASEDIR="/vol"
- HOMEDIR=`pwd`
- WORKDIR=`echo ${HOMEDIR} | sed -e "s/^\/home\/gitlab-runner/\/vol\/gitlab-runner\/data/g"`
- CONTAINER=grafana
- VOLUME="-v $BASEDIR/$CONTAINER/data:/var/lib/grafana:Z "
- REGISTRY="registry.akiboi.net:5000"
- ssh $HOST mkdir -p $BASEDIR/$CONTAINER/data
- ssh $HOST podman build -t $REGISTRY/$CONTAINER $WORKDIR/$POD/$CONTAINER
- ssh $HOST podman push $REGISTRY/$CONTAINER
- ssh $HOST podman stop -i $CONTAINER
- ssh $HOST podman rm -i $CONTAINER
- ssh $HOST podman run -dt --pod $POD --restart=always --name $CONTAINER $VOLUME $REGISTRY/$CONTAINER
ダッシュボードの作成
Grafana のコンテナが作成できましたので、Grafan にログインしてみます。 標準であれば http://grafana サーバ:3000 にアクセスすると Grafana の初期画面が表示できると思います。私の環境は FrontEnd Server の Proxy1 の設定も行い https://●●●●.akiboi.net/でアクセスしてみます。最初にログインするときはユーザ ID adminで行います。パスワードを設定してログインできるようになると思います。
Data Source の設定
ログインしたらサイドメニューの Configuration-Data Sources を選択して Prometheus と接続してみます。Prometheus は同じ Pod 内で動作していますので、URL にhttp://localhost:52103(標準のポートを利用している場合は 9090)と入力して Save&Test ボタンをクリックして接続ができたら完了です。
ダッシュボードの設定
最初から設定するのもいいですが、既に公開されているダッシュボードの設定をダウンロードして利用させていただきました。今回利用したのはBlackbox Exporter Overviewで JSON ファイルをダウンロードして Grafana のサイドメニューの Create-Import を選択してダウンロードしたファイルを Upload JSON file ボタンをクリックしてアップロードします。あとはデータソースを登録した Prometheus を選択すると Blackbox Exporter で取得したメトリックスを表示することができると思います。登録したサーバの Duration 全体と個々のサーバの情報が見れると思います。これだけで十分な気がしました。
以上で自宅サーバと Netlify の Web サーバの監視ができるようになりました。