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サーバの監視ができるようになりました。