Prometheus普罗米修斯监控+Alertmanager预警+钉钉预警
简单实操,可直接拷贝命令执行
前提条件:
centos7 10.11.7.95
关闭selinux
vi /etc/sysconfig/selinuxSELINUX=disabled
setenforce 0关闭防火墙或者开放对应端口
systemctl stop firewalld
systemctl start firewalld需要开放端口
9090/tcp 3000/tcp 9093/tcp 8060/tcp9090 prometheus
3000 grafana
9093 alertmanager
8060 prometheus-dingfirewall-cmd --zone=public --list-ports 查看端口
firewall-cmd --zone=public --query-port=80/tcp 查看端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 添加端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent 删除端口
firewall-cmd --reload
systemctl reload firewalld.service
一、安装Prometheus平台
从 https://prometheus.io/download/ 下载相应版本 并 安装
访问地址:http://10.11.7.95:9090/
cd /home/ && mkdir package && cd package下载对应安装包:
wget https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz解压至指定文件夹
tar -zxvf /home/package/prometheus-2.37.0.linux-amd64.tar.gz -C /usr/local/创建软链
ln -s /usr/local/prometheus-2.37.0.linux-amd64/ /usr/local/prometheus配置prometheus开机自启
vi /usr/lib/systemd/system/prometheus.service
写入以下信息:
[Unit]
Description=https://prometheus.io[Service]
Restart=on-failure
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data
[Install]
WantedBy=multi-user.targetsystemctl start prometheus
systemctl status prometheus
systemctl enable prometheus
二、搭建grafana平台
https://grafana.com/grafana/download
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.2-1.x86_64.rpm
yum -y install grafana-enterprise-9.0.2-1.x86_64.rpm启动-并开机自启
systemctl start grafana-server
systemctl enable grafana-server
访问地址:http://10.11.7.95:3000/login admin/admin登陆后修改密码
data sources添加数据源:http://10.11.7.95:9090
三、安装node_exporter
四、节点添加入监控--展示
cd /usr/local/prometheus/
cp /usr/local/prometheus/prometheus.yml /usr/local/prometheus/prometheus.yml.bak添加对应的需监控信息
vi /usr/local/prometheus/prometheus.yml检测填写是否正确
./promtool check config prometheus.ymlChecking prometheus.ymlSUCCESS: prometheus.yml is valid prometheus config file syntax重启prometheus
systemctl restart prometheus
导入模板id :16098
五、安装alertmanager报警
cd /home/package
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz解压至指定文件夹
tar -zxvf /home/package/alertmanager-0.21.0.linux-amd64.tar.gz -C /usr/local/
软连接
ln -s /usr/local/alertmanager-0.21.0.linux-amd64/ /usr/local/alertmanagercd /usr/local/alertmanager && cp alertmanager.yml alertmanager.yml.bak
vi alertmanager.ymlglobal:resolve_timeout: 5msmtp_smarthost: 'smtp.126.com:25' # smtp地址smtp_from: 'XXXXXXXX@126.com' # 谁发邮件smtp_auth_username: 'XXXXXXXX@126.com' # 邮箱用户smtp_auth_password: 'XXXXXXXXXXXXXXXX' # 邮箱客户端授权密码smtp_require_tls: falsetemplates: # 指定邮件模板的路径,可以使用相对路径,template/*.tmp的方式- '/usr/local/alertmanager/template/*.tmp'route: # route用来设置报警的分发策略group_by: ["alertname"] # 分组名group_wait: 30s # 当收到告警的时候,等待三十秒看是否还有告警,如果有就一起发出去group_interval: 30s # 发送警告间隔时间repeat_interval: 20m # 重复报警的间隔时间receiver: Node_warning # 设置默认接收人,如果想分组接收,把下面这段的注释去掉receivers: # 定义接收者,将告警发送给谁
- name: 'Node_warning'email_configs:- send_resolved: trueto: 'Austines@163.com'html: '{{ template "email.html" . }}' # 指定使用模板,如果不指定,还是会加载默认的模板的headers: { Subject: "[WARN]告警" } # 配置邮件主题webhook_configs:- url: http://127.0.0.1:8060/dingtalk/webhook/send #警报被解决之后是否通知 消息模板/usr/local/prometheus-webhook-dingtalk/config.ymlsend_resolved: true################结束###############webhook_configs为钉钉消息mkdir template && vi template/email.tmp{{ define "email.html" }}{{ range .Alerts }}
<pre>========start==========告警程序: prometheus_alert 告警级别: {{ .Labels.severity }} 告警类型: {{ .Labels.alertname }} 故障主机: {{ .Labels.instance }} 告警主题: {{ .Annotations.summary }}告警详情: {{ .Annotations.description }}触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}========end==========
</pre>{{ end }}
{{ end }}################结束###############检测配置是否正确
./amtool check-config alertmanager.yml配置alertmanager开机自启动
vi /usr/lib/systemd/system/alertmanager.service[Unit]
Description=https://prometheus.io[Service]
Restart=on-failure
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml
[Install]
WantedBy=multi-user.target启动 && 自启动
systemctl start alertmanager
systemctl enable alertmanager访问地址http://10.11.7.95:9093/#/alerts
在grafana的alert-admin中添加alertmanager地址
在grafana的alert-Concat point中添加Alertmanager预警
在grafana的alert-Policies中使用Alertmanager预警
六、配置钉钉预警
cd /home/packagewget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v1.4.0/prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gztar -zxvf prometheus-webhook-dingtalk-1.4.0.linux-amd64.tar.gz -C /usr/local/ln -s /usr/local/prometheus-webhook-dingtalk-1.4.0.linux-amd64/ /usr/local/prometheus-webhook-dingtalkcd /usr/local/prometheus-webhook-dingtalk修改相关配置
vi config.yml# Request timeouttimeout: 5s## Customizable templates path
# templates:
# - contrib/templates/legacy/template.tmpl
#模板文件templates:- /usr/local/prometheus-webhook-dingtalk/template/*.tmp## 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:webhook:url: https://oapi.dingtalk.com/robot/send?access_token=**************message:# Use legacy templatetitle: '{{ template "ding.link.title" . }}'text: '{{ template "ding.link.content" . }}'###############结束#############创建模板文件
mkdir template && vi template/template.tmp{{ define "__subject" }}[Linux 基础监控告警:{{ .Alerts.Firing | len }}] {{ end }}{{ define "__text_list" }}{{ range . }}{{ range .Labels.SortedPairs }}
{{ if eq .Name "instance" }}> 实例: {{ .Value | html }}{{ end }}
{{ end }}{{ range .Labels.SortedPairs }}
{{ if eq .Name "serverity" }}> 告警级别: {{ .Value | html }}{{ end }}
{{ if eq .Name "hostname" }}> 主机名称: {{ .Value | html }}{{ end }}
{{ end }}{{ range .Annotations.SortedPairs }}
{{ if eq .Name "description" }}> 告警详情: {{ .Value | html }}{{ end }}
{{ end }}
触发时间: {{ (.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}{{"============================"}}
{{ end }}{{ end }}{{ define "ding.link.title" }}{{ template "__subject" . }}{{ end }}
{{ define "ding.link.content" }}
{{ if gt (len .Alerts.Firing) 0 }}#### [{{ .Alerts.Firing | len }}]【Linux 报警触发】
{{ template "__text_list" .Alerts.Firing }}{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}#### [{{ .Alerts.Resolved | len }}]【Linux 报警恢复】
{{ end }}
{{ end }}配置开机自启动服务
vi /usr/lib/systemd/system/prometheus-webhook-dingtalk.service[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
ExecStart=/usr/local/prometheus-webhook-dingtalk/prometheus-webhook-dingtalk --config.file=/usr/local/prometheus-webhook-dingtalk/config.yml
[Install]
WantedBy=default.target启动 && 开机自启动
systemctl start prometheus-webhook-dingtalk
systemctl enable prometheus-webhook-dingtalk
七、编写prometheus告警规则
cd /usr/local/prometheus && mkdir rules && cd rules参考
https://www.bbsmax.com/A/1O5EQv7G57/修改对应位置
vi prometheus.yml# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:- 127.0.0.1:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:- "rules/*.yml"# - "first_rules.yml"# - "second_rules.yml"重启服务
systemctl restart prometheus
到此时,钉钉已经能推送消息
Prometheus普罗米修斯监控+Alertmanager预警+钉钉预警相关推荐
- 一篇文章搞定Prometheus普罗米修斯监控系统的部署
Prometheus普罗米修斯监控系统 一.普罗米修斯监控概述 1.1 什么是普罗米修斯监控 二.时间序列数据 2.1 什么是序列数据 2.2 时间序列数据特点 2.3 普罗米修斯特征 三.普罗米修斯 ...
- 【监控】Prometheus(普罗米修斯)监控概述
文章目录 一.监控系统概论 二.基础资源监控 2.1.网络监控 2.2.存储监控 2.3.服务器监控 2.4.中间件监控 2.5.应用程序监控(APM) 三.Prometheus 简介 3.1.什么是 ...
- 普罗米修斯监控linux,Prometheus(普罗米修斯)搭建监控
Prometheus(普罗米修斯) 实验环境:(各个主机,ip,所需服务) docker01 docker02 docker03 1.10 1.20 1.30 NodeEXporter NodeEXp ...
- 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯
DevOps工程师或SRE工程师,可能都知道Prometheus普罗米修斯.Prometheus于2012年由SoundCloud创建,目前已经已发展为最热门的分布式监控系统.Prometheus完全 ...
- 普罗米修斯 监控_接近完美的监控系统—普罗米修斯
普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统.当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的 ...
- Prometheus 普罗米修斯
Prometheus 普罗米修斯 Prometheus由go语言开发,是一套开源的监控.报警.时间序列数据库的组合.适合监控docker容器.因为Kubernetes (K8S) 的流行带动了prom ...
- 普罗米修斯监控docker 服务
环境 192.168.254.127 (监控服务器) 192.168.254.128 (被监控机器) 首先在监控服务器安装: 1.安装Node Exporter 来收集硬件信息 所有节点运行以下命令安 ...
- 普罗米修斯监控服务之-监控携带metric接口的服务
第一部分:课前小菜: 例子: 分布式:将多台Linux主机组合在一起,做成像一台主机一样来使用 微服务:将一台Linux主机拆分成多台Linux使用 淘宝:搜索页.商品详情页.订单页.支付页.物流.评 ...
- 阿尔萨斯监控平台普罗米修斯监控平台对服务器资源的监控
一.arthas-阿尔萨斯监控平台 内存监控: 1.打开RDMS,选择应用实例,在'快捷方式'下拉选项中选择arthas 2.打开监控界面,输入:dashboard -i 5000 备注:-i 刷新实 ...
最新文章
- 德国蓝皮书:解决特定问题 德国渐进建设智慧城市
- 《JavaScript设计模式与开发实践》阅读摘要
- 三、前端开发-CSS
- 边缘计算架构_边缘计算架构梳理
- Codeblocks无法输出中文和中文乱码解决方法(亲测可用)
- 如何在PowerPoint演示文稿中使用iTunes音乐
- Android Studio开发基础之AutoCompleteTextView控件的使用
- 让Visual Studio 也支持JS代码折叠 —— 续 [ Visual Studio | Js | ScriptOutline | SmallOutline ]...
- OpenShift 4 - 部署Mirror Registry并复制Image
- 关于自动装箱和自动拆箱
- Linux安装tomcat并使用+热部署
- 天若OCR v5.0 自用免配置增强版
- 2021年复盘总结发现了C站博主缺少的赚钱之路
- 三星note10安装linux,三星Note10/Note10+新款Dex已支持Win10/macOS
- 超级冷笑话,冷死人不偿命
- 一行代码一道题:求2的幂次方
- 使用python读写文件_使用Python读写文件(指南)
- wordpress mysql 密码重置_WordPress登录密码找回办法之修改数据库篇 | Wopus
- 【2022修复版】社群扫码进群活码引流完整运营源码/对接免签约支付接口/推广正常绑定下级/带视频搭建教程
- 【数据库实验】实验二 学习SQL 语句的数据操纵与视图