prometheus +alertmanger+Grafana (Email :QQ+阿里云企业邮箱) 配置篇 监控linux+windows系统

编程入门 行业动态 更新时间:2024-10-18 08:24:34

prometheus +alertmanger+Grafana (Email :QQ+<a href=https://www.elefans.com/category/jswz/34/1770131.html style=阿里云企业邮箱) 配置篇 监控linux+windows系统"/>

prometheus +alertmanger+Grafana (Email :QQ+阿里云企业邮箱) 配置篇 监控linux+windows系统

环境要求:
根据环境下载 对应环境的:prometheus包
根据环境下载 对应prometheus Service 端环境的 alertmanger
Grafana图形工具
常用的exporter Linux环境: node_exporter Windows环境: windows_exporter 下载链接

端口

工具端口号
prometheus9090
Grafan3000
windows_exporter9182
Node_exporter9100
postgres_exporter9187
Stmp(邮箱)25 QQ邮箱 ,465 阿里邮箱

1.先上 prometheus的架构图吧

参考链接 :prometheus架构原理

理解了 prometheus的架构原理后 我们开始 搭建系统吧

  1. 下载完 prometheus的包后 点击 prometheus.exe 文件 ,访问http://localhost/:9090 prometheus 配置好了

现在 我们 prometheus 上 没有配置任何的监控目标 ,下面 我们配置 二个监控目标

环境IP监控身份
Linux192.36.168.1被监控的客户端
Windows192.36.168.2被监控的客户端
Windows192.36.168.3prometheus Service端

3.我们在 不同的客户端上,下载对应不同环境系统的exporter导出器
例如 Linux 环境下:

ubuntu@ip-192.36.168.1:~$ wget .0.1/node_exporter-1.0.1.linux-amd64.tar.gz  --下载压缩包
ubuntu@ip-192.36.168.1:~$ tar xvfz node_exporter-*.*-amd64.tar.gz  --解压压缩包
--配置 linux 服务启动的时候 启动 node_exporter
ubuntu@ip-192.36.168.1:~$ cd /etc/systemd/system/ --到系统目录下 创建 server配置文件
ubuntu@ip-192.36.168.1:~$ sudo vi node_exporter.service
--填入以下内容
[Service]
User=root
ExecStart = /usr/local/bin/node_exporter/node_exporter[Install]
WantedBy=multi-user.target[Unit]
Description=node_exporter
After=network.target
ubuntu@ip-10-0-1-4:~$ sudo systemctl start node_exporter  --启动node_exporter服务 配置成功

windows 环境下 点击 下载的包 即可启动成功

  1. 配置完 监控客户端后, 配置prometheus Service 服务端 prometheus.yml文件 获取 客户端监控的指标数据 (此处 配置的是prometheus 服务发现模式 )
# my global config
global:scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:- localhost:9093# - localhost:9093# Load rules once and periodically evaluate them according to the global  'evaluation_interval'.  
--告警规则文件
rule_files:- "node-up.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']# 在这里 添加一个监控 任务 去实时的 加载 配置文件里面的 targets 监控目标    以下 内容- job_name: 'dynami_service'file_sd_configs:- files: ['D:\监控系统\prometheus-2.21.0-rc.0.windows-amd64\conf\exporter.yml'] # 监测 频率 refresh_interval: 10s 

监控客户端目标 的 exporter.yml 配置文件

- targets: ['192.36.168.2:9182']labels:  --labels 下的标签都是 自定义标签app:    '本机 windows(1)'  env:   'windows Service'# region: 'us-west-2'
- targets: ['192.36.168.1:9100']labels:app:    'example-linux'env:   'Linux'# region: 'ap-southeast-1'

exporter.json 格式

[{"targets": ["monitor.gimyingao:9100"],"labels": {"app":"ubuntu@52.83.68.66-Linux","hostname": "test1","env":"Linux_Service"}},{"targets": ["52.82.5.91:9187"],"labels": {"hostname": "test2","app":"ubuntu@52.82.5.91-pgsql","env":"pgsql_Service"}},{"targets": ["monitor.gimyingao:9121"],"labels":{"app":"redis_exporter-Linux","hostname":"test3","env":"redis"}},{"targets":["173.0.1.98:9100"],"labels":{"app":"@ubuntu-173.0.1.98-Linux","hostname":"test4","env":"Linux-sercice-app1-server"}},{"targets":["173.0.1.83:9100"],"labels":{"app":"@ubuntu-173.0.1.83-Linux","hostname":"test5","env":"Linux-sercice-app2-server"}}
]

5.现在 prometheus 开始收集 监控目标的指标数据了,如下:

  1. 现在 已经获取到监控客户端的数据了,有监控 就一定有报警,不然 就不完美了 。 接下来 我们 配置 alertmanger
    配置 alertmanger .yml 文件
global:resolve_timeout: 5m# smtp_from: '{{ template "email.from" . }}'smtp_from: 'haoyacong@gimmake'smtp_smarthost: 'smtp.mxhichina:465'# smtp_auth_username: '{{ template "email.from" . }}'smtp_auth_username: 'haoyacong@gimmake'smtp_auth_password: 'Haoyacong515'# smtp_auth_password: 'dpbbqhaxwltxdcia'smtp_require_tls: false# smtp_hello: 'mailsso.mxhichina'
templates:
--邮件自定义模板 - 'email.tmpl'
route:group_by: ['alertname']group_wait: 15sgroup_interval: 5srepeat_interval: 5mreceiver: 'email'
receivers:
- name: 'email'email_configs:- to: '2716966498@qq , weilina@gimmake'# - to: '{{ template "email.to" . }}'# html: '{{ template "email.to.html" . }}'send_resolved: true
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

email.tmpl 文件

{{ define "email.from" }}2716966498@qq{{ end }}
{{ define "email.to" }}2716966498@qq{{ end }}
{{ define "email.to.html" }}
{{ range .Alerts }}
=========start==========<br>
告警程序: prometheus_alert <br>
告警级别: {{ .Labels.severity }} <br>
告警类型: {{ .Labels.alertname }} <br>
故障主机: {{ .Labels.instance }} <br>
告警主题: {{ .Annotations.summary }} <br>
告警详情: {{ .Annotations.description }} <br>
=========end==========<br>
{{ end }}
{{ end }}

有了 告警 发件人和收件人 ,现在 我们配置一下 触发告警的规则

告警规则文件 (常用的规则) 官方的规则

groups:
- name: node-up.ymlrules:- alert: Linux_cpuexpr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 90   # 自定义摘要 10for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} 主机内存不足 (剩余<10%)" # 自定义摘要    Linux- alert: Prometheus_task_downexpr: absent(up{job="my-job"})for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} Prometheus 的工作宕机" # 自定义摘要- alert: PrometheusNotConnectedToAlertmanagerexpr: prometheus_notifications_alertmanagers_discovered < 1for: 5mlabels:severity: warningannotations:summary: " Prometheus Service 无法连接到报警器" # 自定义摘要- alert: PrometheusConfigurationReloadFailureexpr: prometheus_config_last_reload_successful != 1for: 5mlabels:severity: warningannotations:summary: " Prometheus Service 配置重新加载失败" # 自定义摘要- alert: service_downexpr: up == 0for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} 目标 exporter 意外宕机!!" # 自定义摘要- alert: Linux_internalexpr: rate(node_vmstat_pgmajfault[1m]) > -1    # 1000for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 主机内存承受内存压力过大" # 自定义摘要   Linux- alert: Linux_pull_datasexpr: sum by (instance) (irate(node_network_receive_bytes_total[2m])) / 1024 / 1024 > 100for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }}  主机网络接口可能接收到太多数据(> 100 MB / s)" # 自定义摘要   Linux- alert: Linux_push_datasexpr: sum by (instance) (irate(node_network_transmit_bytes_total[2m])) / 1024 / 1024 > 0   # 100for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 主机网络接口可能正在发送过多数据(> 100 MB / s)" # 自定义摘要   Linuxs# - alert: windows_exporter_down#   expr: windows_exporter_collector_success == 0#   for: 5m#   labels:#     severity: warning#   annotations:#     summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} exporter 服务关闭" # 自定义摘要  - alert: windows_cpuexpr: 100 - (avg by (instance) (rate(windows_cpu_time_total{mode="idle"}[2m])) * 100) > 10  # 80for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 服务器 CPU使用率超过80%" # 自定义摘要- alert: windows_internalexpr: 100 * (windows_os_physical_memory_free_bytes) / windows_cs_physical_memory_bytes >20  # 90for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 服务器 内存使用率超过90%" # 自定义摘要- alert: windows_panlexpr: 100.0 - 100 * ((windows_logical_disk_free_bytes{} / 1024 / 1024 ) / (windows_logical_disk_size_bytes{} / 1024 / 1024)) > 50   # 80for: 5mlabels:severity: warningannotations:summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 服务器  {{ $labels.volume  }} 磁盘使用率超过80%" # 自定义摘要     

注意 配置 yml配置文件时 不可以使用tab键 要用空格键

  1. 告警和 Service 端 已经配置好了,prometheus 也有自带的图像 但是 不太美观 ,我们使用 Grafana 工具

点击 grafana-server.exe 文件后 在本地 访问 http://localhost:3000
账户,密码 默认是 admin
8. 配置 Grafana 数据源为prometheus

9.配置数据源后,我们 添加 不同环境的监控指标数据的页面模板
node_exporter 的指标数据的模板
windows_exporter的指标数据的模板
可以去 官网查询 合适的模板。

配置 模板 如下

更多推荐

prometheus +alertmanger+Grafana (Email :QQ+阿里云企业邮箱) 配置篇 监控linux+windows系统

本文发布于:2024-03-04 19:43:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1710239.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:阿里   企业邮箱   系统   Grafana   prometheus

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!