新增部署Prometheus监控工具脚本;更新README.md文件
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
---
|
||||
flag: ~/.flag/{{ role_name }}
|
||||
@@ -0,0 +1,40 @@
|
||||
{{ define "email.to.message" }}
|
||||
|
||||
{{- if gt (len .Alerts.Firing) 0 -}}
|
||||
{{- range $index, $alert := .Alerts -}}
|
||||
|
||||
========= **监控告警** =========
|
||||
|
||||
**告警程序:** Alertmanager
|
||||
**告警类型:** {{ $alert.Labels.alertname }}
|
||||
**告警级别:** {{ $alert.Labels.severity }} 级
|
||||
**告警状态:** {{ .Status }}
|
||||
**故障主机:** {{ $alert.Labels.instance }} {{ $alert.Labels.device }}
|
||||
**告警主题:** {{ .Annotations.summary }}
|
||||
**告警详情:** {{ $alert.Annotations.message }}{{ $alert.Annotations.description}}
|
||||
**主机标签:** {{ range .Labels.SortedPairs }} </br> [ {{ .Name }}: {{ .Value | markdown | html }} ]
|
||||
{{- end }} </br>
|
||||
|
||||
**故障时间:** {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
|
||||
========= = end = =========
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- if gt (len .Alerts.Resolved) 0 -}}
|
||||
{{- range $index, $alert := .Alerts -}}
|
||||
|
||||
========= 告警恢复 =========
|
||||
**告警程序:** Alertmanager
|
||||
**告警类型:** {{ .Labels.alertname }}
|
||||
**告警级别:** {{ $alert.Labels.severity }} 级
|
||||
**告警状态:** {{ .Status }}
|
||||
**告警主机:** {{ .Labels.instance }}
|
||||
**告警主题:** {{ $alert.Annotations.summary }}
|
||||
**告警详情:** {{ $alert.Annotations.message }}{{ $alert.Annotations.description}}
|
||||
**故障时间:** {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
|
||||
**恢复时间:** {{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}
|
||||
|
||||
========= = **end** = =========
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
70
prometheus/roles/prometheus_webhook_dingtalk/tasks/main.yml
Normal file
70
prometheus/roles/prometheus_webhook_dingtalk/tasks/main.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
---
|
||||
# 校验 PrometheusWebhookDingtalk 是否安装
|
||||
- name: '<{{ cmd | upper }}> | 校验 PrometheusWebhookDingtalk 是否安装'
|
||||
stat:
|
||||
path: '{{ flag }}'
|
||||
register: ret
|
||||
|
||||
# 安装 PrometheusWebhookDingtalk
|
||||
- block:
|
||||
- name: '<{{ cmd | upper }}> | 创建 PrometheusWebhookDingtalk 相关目录'
|
||||
file:
|
||||
path: '{{ item.value }}'
|
||||
state: directory
|
||||
loop: '{{ prometheus_webhook_dingtalk.dir | dict2items }}'
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 安装 PrometheusWebhookDingtalk'
|
||||
template:
|
||||
src: '{{ item.src }}'
|
||||
dest: '{{ item.dest }}'
|
||||
loop:
|
||||
- src: docker-compose.yml.j2
|
||||
dest: '{{ prometheus_webhook_dingtalk.dir.main }}/docker-compose.yml'
|
||||
- src: conf/config.yml.j2
|
||||
dest: '{{ prometheus_webhook_dingtalk.dir.conf }}/config.yml'
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 初始化 PrometheusWebhookDingtalk 告警模板文件'
|
||||
copy:
|
||||
src: '{{ item }}'
|
||||
dest: '{{ prometheus_webhook_dingtalk.dir.template }}'
|
||||
with_fileglob: 'files/template/*'
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 启动 PrometheusWebhookDingtalk 容器'
|
||||
shell: |
|
||||
. /etc/profile
|
||||
cd {{ prometheus_webhook_dingtalk.dir.main }}
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 等待 PrometheusWebhookDingtalk 服务启动'
|
||||
wait_for:
|
||||
port: '{{ prometheus_webhook_dingtalk.port }}'
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 创建 PrometheusWebhookDingtalk 安装标记'
|
||||
shell: |
|
||||
set -ex
|
||||
mkdir -p ~/.flag
|
||||
touch {{ flag }}
|
||||
|
||||
when:
|
||||
- cmd == "install"
|
||||
- not ret.stat.exists
|
||||
- prometheus_webhook_dingtalk.enable
|
||||
|
||||
# 卸载 PrometheusWebhookDingtalk
|
||||
- block:
|
||||
- name: '<{{ cmd | upper }}> | 卸载 PrometheusWebhookDingtalk'
|
||||
shell: |
|
||||
. /etc/profile
|
||||
cd {{ prometheus_webhook_dingtalk.dir.main }}
|
||||
docker-compose down
|
||||
|
||||
- name: '<{{ cmd | upper }}> | 清除 PrometheusWebhookDingtalk 相关文件'
|
||||
shell: |
|
||||
rm -rf {{ prometheus_webhook_dingtalk.dir.main }}
|
||||
rm -rf {{ flag }}
|
||||
|
||||
when:
|
||||
- cmd == "remove"
|
||||
- ret.stat.exists
|
||||
- prometheus_webhook_dingtalk.enable
|
||||
@@ -0,0 +1,35 @@
|
||||
## Request timeout
|
||||
# timeout: 5s
|
||||
|
||||
## Uncomment following line in order to write template from scratch (be careful!)
|
||||
#no_builtin_template: true
|
||||
|
||||
## Customizable templates path
|
||||
#templates:
|
||||
# - contrib/templates/legacy/template.tmpl
|
||||
templates:
|
||||
- /etc/prometheus-webhook-dingtalk/templates/legacy/template.tmpl
|
||||
|
||||
## Targets, previously was known as "profiles"
|
||||
targets:
|
||||
webhook1:
|
||||
url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
|
||||
# secret for signature
|
||||
secret: SEC000000000000000000000
|
||||
webhook2:
|
||||
url: https://oapi.dingtalk.com/robot/send?access_token={{ alert.dingtalk.access_token }}
|
||||
webhook_legacy:
|
||||
url: https://oapi.dingtalk.com/robot/send?access_token={{ alert.dingtalk.access_token }}
|
||||
# Customize template content
|
||||
message:
|
||||
# Use legacy template
|
||||
title: '{{ alert.message.title }}'
|
||||
text: '{{ alert.message.text }}'
|
||||
webhook_mention_all:
|
||||
url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
|
||||
mention:
|
||||
all: true
|
||||
webhook_mention_users:
|
||||
url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
|
||||
mention:
|
||||
mobiles: ['156xxxx8827', '189xxxx8325']
|
||||
@@ -0,0 +1,23 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
prometheus-webhook-dingtalk:
|
||||
image: {{ prometheus_webhook_dingtalk.image }}
|
||||
container_name: {{ docker.network.name }}-prometheus-webhook-dingtalk
|
||||
hostname: prometheus-webhook-dingtalk
|
||||
restart: always
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- {{ prometheus_webhook_dingtalk.dir.conf }}/config.yml:/etc/prometheus-webhook-dingtalk/config.yml
|
||||
- {{ prometheus_webhook_dingtalk.dir.template }}/template.tmpl:/etc/prometheus-webhook-dingtalk/templates/legacy/template.tmpl
|
||||
networks:
|
||||
- {{ docker.network.name }}
|
||||
ports:
|
||||
- {{ prometheus_webhook_dingtalk.port }}:8060
|
||||
environment:
|
||||
- config.file=/etc/prometheus-webhook-dingtalk/config.yml
|
||||
|
||||
networks:
|
||||
{{ docker.network.name }}:
|
||||
external: true
|
||||
name: {{ docker.network.name }}
|
||||
Reference in New Issue
Block a user