2023年3月15日水曜日

Promethues の Basic 認証を追加する方法

Promethues の Basic 認証を追加する方法

概要

タイトルの通りです
web.yml に認証情報を記載して Prometheus を起動させるだけです
今回は docker コンテナで Promethues は動作させます

環境

  • Ubuntu 18.04
  • docker 20.10.7
  • Python 3.10.2
  • bcrypt 4.0.1

bcrypt パスワードの生成

ベーシック認証用のパスワードは bcrypt で暗号化された文字列が必要です

公式にもありますが bcrypt は Python のライブラリを使って生成しました

  • pip install bcrypt
  • python -c 'import bcrypt; hashed_password=bcrypt.hashpw("passw0rd!".encode("utf-8"), bcrypt.gensalt()); print(hashed_password)'

上記の平文パスワードの部分を適宜変更すれば OK です

web.yml の作成

パスワード情報は web.yml に記載します

  • vim web.yml
basic_auth_users:
    admin: $2b$12$BB48JzIK5bfRo44g4GOAPe3/q6sTaLW3pbvugPlUZVuYg8LOW4sOK

起動する

作成した web.yml を使って起動します
web.yml を指定するオプションは web.config.file です

  • docker run -d -p 9090:9090 -v $(pwd):/prometheus-data prom/prometheus --config.file=/prometheus-data/prometheus.yml --web.config.file=/prometheus-data/web.yml

prometheus.yml は必須なので適当にこちらから作成してください (ノードエクスポータなどの内容は仮で大丈夫です)

動作確認

localhost:9090 にアクセスするとブラウザのベーシック認証が発動するのが確認できると思います

API をコールするときもベーシック認証が必要になっていることを CLI で確認しましょう

  • curl --head -u admin http://localhost:9090/graph

最後に

今回は紹介しませんが Alertmanager でも同じ歩法でベーシック認証を付与することができます

参考サイト

0 件のコメント:

コメントを投稿