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ユーザからマッピングしたボリュームをアクセスできるようにします。

backend/grafana/Dockerfile
FROM grafana/grafana
LABEL version="1.0" "akiboi.net"="akiboI"

USER 0
COPY build/grafana.ini /etc/grafana

grafana.iniの設定

grafana.iniは、まずは動作することを優先に考えポート番号とメールの設定のみ変更してその他はディフォルトのままとしました。後でじっくりチューニングしていきたいと思います。

backend/prometheus/build/prometheus.yml
:
#################################### 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

他のコンテナとほとんど同じで、ビルド判断するフォルダとコンテナ名、ボリュームマッピングが違うのみです。

backend/.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全体と個々のサーバの情報が見れると思います。これだけで十分な気がしました。

prometheus target

以上で自宅サーバとNetlifyのWebサーバの監視ができるようになりました。



© 2021 akibo.I Blog v2.0.8