1.直接上干货
接上一篇:脚本安装prometheus监控组件套
每个组件访问地址:
Grafana: http://IP:3000/
Prometheus: http://IP:9090/
Alertmanager: http://IP:9093/
Prometheus: http://IP:9090/
Prometheus Webhook Dingtalk: http://IP:8060/UI
2.各组件配置文件示例
我是docker-compose组件安装,给出docker外部挂载文件目录树
:D 看这里,上面只是给出截图万一不对的时候看看验证一下,这里是配置文件截图说明
以上配置文件为实现监控及钉钉预警所有配置文件
3.配置示例:
从上向下:
alertmanager.yml
global: resolve_timeout: 5m route: receiver: webhook group_wait: 30s group_interval: 5m repeat_interval: 5m group_by: [alertname] routes: - receiver: webhook group_wait: 10s receivers: - name: webhook webhook_configs: - url: http://IP:8060/dingtalk/webhook1/send send_resolved: true #IP 换成自己的IP
dingtalk
config.yml
## Request timeout # timeout: 5s ## Customizable templates path templates: - /etc/prometheus-webhook-dingtalk/templates/legacy/template.tmpl ## You can also override default template using `default_message` ## The following example to use the 'legacy' template from v0.3.0 # default_message: # title: '{ { template "legacy.title" . }}' # text: '{ { template "legacy.content" . }}' ## Targets, previously was known as "profiles" targets: webhook1: url: https://oapi.dingtalk.com/robot/send?access_token=xxxx # secret for signature secret: xxxx #xxxx 替换成自己申请的钉钉机器人配置,怎么申请去百度下吧 :P
template.tmpl
别人写好的模板,长这样,我拿来直接用了
{ { define "__subject" }} [{ { .Status | toUpper }}{ { if eq .Status "firing" }}:{ { .Alerts.Firing | len }}{ { end }}] { { .GroupLabels.SortedPairs.Values | join " " }} { { if gt (len .CommonLabels) (len .GroupLabels) }} ({ { with .CommonLabels.Remove .GroupLabels.Names }}{ { .Values | join " " }}{ { end }}){ { end }}{ { end }}{ { define "__alertmanagerURL" }}{ { .ExternalURL }}/#/alerts?receiver={ { .Receiver }}{ { end }} { { define "__text_alert_list" }}{ { range . }} **Labels** { { range .Labels.SortedPairs }}> - { { .Name }}: { { .Value | markdown | html }} { { end }} **Annotations** { { range .Annotations.SortedPairs }}> - { { .Name }}: { { .Value | markdown | html }} { { end }} **Source:** [{ { .GeneratorURL }}]({ { .GeneratorURL }}) { { end }}{ { end }} { { define "default.__text_alert_list" }}{ { range . }} --- **告警级别:** { { .Labels.severity | upper }} **运营团队:** { { .Labels.team | upper }} **触发时间:** { { dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }} **事件信息:** { { range .Annotations.SortedPairs }} > - { { .Name }}: { { .Value | markdown | html }} { { end }} **事件标签:** { { range .Labels.SortedPairs }}{ { if and (ne (.Name) "severity") (ne (.Name) "summary") (ne (.Name) "team") }}> - { { .Name }}: { { .Value | markdown | html }} { { end }}{ { end }} { { end }} { { end }} { { define "default.__text_alertresovle_list" }}{ { range . }} --- **告警级别:** { { .Labels.severity | upper }} **运营团队:** { { .Labels.team | upper }} **触发时间:** { { dateInZone "2006.01.02 15:04:05" (.StartsAt) "Asia/Shanghai" }} **结束时间:** { { dateInZone "2006.01.02 15:04:05" (.EndsAt) "Asia/Shanghai" }} **事件信息:** { { range .Annotations.SortedPairs }} > - { { .Name }}: { { .Value | markdown | html }} { { end }} **事件标签:** { { range .Labels.SortedPairs }}{ { if and (ne (.Name) "severity") (ne (.Name) "summary") (ne (.Name) "team") }}> - { { .Name }}: { { .Value | markdown | html }} { { end }}{ { end }} { { end }} { { end }} { {/* Default */}} { { define "default.title" }}{ { template "__subject" . }}{ { end }} { { define "default.content" }} [{ { .Status | toUpper }}{ { if eq .Status "firing" }}:{ { .Alerts.Firing | len }}{ { end }}] **[{ { index .GroupLabels "alertname" }}]({ { template "__alertmanagerURL" . }})** { { if gt (len .Alerts.Firing) 0 -}} ![警报 图标](https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3626076420,1196179712&fm=15&gp=0.jpg) **====侦测到故障====** { { template "default.__text_alert_list" .Alerts.Firing }} { {- end }} { { if gt (len .Alerts.Resolved) 0 -}} { { template "default.__text_alertresovle_list" .Alerts.Resolved }} { {- end }} { {- end }} { {/* Legacy */}} { { define "legacy.title" }}{ { template "__subject" . }}{ { end }} { { define "legacy.content" }} [{ { .Status | toUpper }}{ { if eq .Status "firing" }}:{ { .Alerts.Firing | len }}{ { end }}] **[{ { index .GroupLabels "alertname" }}]({ { template "__alertmanagerURL" . }})** { { template "__text_alert_list" .Alerts.Firing }} { {- end }} {