Prometheusの設定変更・チェック・ReloadまでAnsibleで一発でやる
4323 ワード
Prometheusの設定変更、Alertルールの変更した際にそれ専用のPlaybookを実行するとか面倒すぎる
同じplaybookで一発で反映・チェック・Reloadまでできるようにしてみた
まず、systemdのprometheus.serviceでReloadできるようにしておく
[Unit]
Description=Prometheus - Monitoring system and time series database
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
Ansibleは
- validateでpromtoolを使ってcheckする
- changedならnotifyでreloadを実行
- tagを追加して単発実行できるようにしておく
- handlerにreloadを作成
と修正
task
- name: rule files of Prometheus
copy:
src: "{{ rule }}"
dest: "{{ root_path }}/prometheus/rules.yml"
validate: "{{ root_path }}/prometheus/promtool check rules %s"
notify: Reload Prometheus
with_items:
- files/rules.yml
loop_control:
loop_var: rule
tags: rules
- name: Configure Prometheus
template:
src: templates/prometheus.yml.j2
dest: "{{ root_path }}/prometheus/prometheus.yml"
validate: "{{ root_path }}/prometheus/promtool check config %s"
notify: Reload Prometheus
tags: config
handler
- name: Reload Prometheus
service:
name: prometheus
state: reloaded
ruleを反映させるには --tag rules
、config fileの場合は --tag config
を指定するだけ
playbookも1つで済むし、rulesやconfigが間違っててPrometheus起動できないっていう事故も無くせるので
Author And Source
この問題について(Prometheusの設定変更・チェック・ReloadまでAnsibleで一発でやる), 我々は、より多くの情報をここで見つけました https://qiita.com/naoaki-yzrh/items/9189c387245404a19495著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .