[prometheus]Step11-prometheus动态监控服务器端口并告警
办法比较捞~
办法比较捞~
办法比较捞~
有大佬有好的方法或者现成的代码提供小弟感激不尽!!
之前zabbix做了动态监控服务器上端口监控的告警,换到prometheus 暂时还没有发现怎么做。因为有些端口新起的话 不想手动加到prometheus的配置里。
于是先用比较捞的方法,用一个8080的nginx 端口通过静态页面,ip:8080/metrics 提供给prometheus
up用来表示8080端口健康情况
downports 为1表示端口正常 非1的话为不正常,并通过value把故障的port输出
yum -y install nginx
修改nginx.conf中server配置如下
server {listen 8080;server_name $ip localhost;
location / {root /opt/;index index.html;
}
location /metrics {try_files '' /index.html;root /opt/;index index.html;
}
}
创建获取端口号的脚本 因为metrics里只能写数字 所以当有多个端口挂掉的时候 我是用4个0作为分割 一次性输出的。有点捞。
不过告警 有总比没有强。后续有更好的方案 再改进。
# 创建脚本/srv/check_port_alive.sh
#!/bin/bash
source /etc/profile
cd /srv
echo 1
if [ ! -f "port_before" ]; thenecho port_before 不存在netstat -tpln |awk '{print $4}' |awk -F[:] '{print $NF}' |grep '[[:digit:]]' > /srv/port_before
elseecho port_before 存在
fiecho 2
netstat -tpln |awk '{print $4}' |awk -F[:] '{print $NF}' |grep '[[:digit:]]' > /srv/port_nowport_dif=`grep -vFf port_now port_before`echo 3
if [ ! -n "$port_dif" ]; thenecho " 原先端口没有异常!"echo up 1 > /opt/index.html ;echo downports 1 >> /opt/index.html >> /opt/index.htmlcp -f /srv/port_now /srv/port_before
elseecho " 原先端口存在异常!"cat /dev/null > /opt/index.htmlecho -n downports 0000 >> /opt/index.htmlfor i in `grep -vFf port_now port_before`;do echo -n 0000$i >> /opt/index.html ;donesed -i '$aup 1' /opt/index.html#echo up 1 > /opt/index.html ;echo downports 0000 >> /opt/index.html ; for i in `grep -vFf port_now port_before`;do echo -n 0000$i >> /opt/index.html ;done# 覆盖一下文件 确保万一新生成的端口for i in `grep -vFf port_now port_before`;do echo $i >> /srv/port_now ;donecp -f /srv/port_now /srv/port_before
fi# 添加脚本执行权限
chmod +x /srv/check_port_alive.sh
设置定时任务crontab -e
680 systemctl restart prometheus
* * * * * sh /srv/check_port_alive.sh
创建prometheus告警rule文件 /srv/prometheus/conf/rule_port_down.yml
groups:
- name: 端口存活告警规则rules:- alert: 端口存活告警expr: downports != 1for: 1mlabels:user: prometheusseverity: warningannotations:description: "{{ $labels.instance }} of job {{ $labels.job }} {{ $value }} {{ $labels.hostname }}has been down for more than 1 minutes."# description: "{{ $labels.instance }} of job {{ $labels.job }} {{ $value }} {{ $labels.hostname }}挂了"
在prometheus.yml里添加如下配置
- job_name: 'test-rule'static_configs:- targets: ['192.168.10.167:8080'] ## 目标主机
启动服务 测试一下效果
# 启动nginx
/usr/sbin/nginx
# 重启prometheus
systemctl restart prometheus
systemctl status prometheus
生成了2个文件port_before port_now
查看目前启动着的端口号
安装(略)并启动一个tomcat 端口为8081 8009 8005 并在2分钟后 关闭这些端口
# 我服务器上没有其他java进程 所以用了pkill
sh /usr/local/tomcat/bin/startup.sh ;sleep 120 ;pkill java
查看文件变化 发现已经获取到这些端口了
等待告警触发
这里字符太长了。可以直接把后面has been down 的改成中文端口挂了
告警恢复
如果不需要这些端口的话 需要修改port_now并覆盖port_before
[prometheus]Step11-prometheus动态监控服务器端口并告警相关推荐
- Prometheus配置监控ip、端口连通,get、post接口连通和状态码
Prometheus配置监控ip.端口连通,get.post接口连通和状态码 ##方法:blackbox_exporter 部署在一台主机上集中配置 第一部分 1.1下载blackbox_export ...
- 【监控利器Prometheus】——Prometheus+Grafana监控服务器资源
Prometheus+Grafana监控服务器资源 1. 配置 Node Exporter 采集服务器数据 2. Prometheus配置 3. 在Grafana中创建监控看板 在Prometheus ...
- prometheus之记录规则(recording rules)与告警规则(alerting rule)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Prometheus支持两种类型的规则:记录规则和警报规则. 要在Prometheus中包含规则,请创建一个包含必要规则语句的文件,并让Prometh ...
- 【Prometheus】 Prometheus 入门到实战搭建监控系统
Prometheus (普罗米修斯)是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于做视频分享的 YouTube ...
- k8s部署Kube Prometheus(Prometheus Operator)
摘要 本文通过Prometheus-operator框架一键化安装prometheus.alertmanage.granfana,并配置企业微信api以及告警推送,搭建 prometheus 的前提环 ...
- Ninth3: Prometheus server Prometheus monitored Grafana monitoring database | Cloud computing
云计算专题目录 Catalogue | Cloud computing Ninth3: Prometheus server & Prometheus monitored & Grafa ...
- 【Prometheus】Prometheus 远端存储
1.Prometheus支持的数据库 这里使用Influxdb:https://docs.influxdata.com/influxdb/v1.8/supported_protocols/promet ...
- docker port如何增加端口_Docker 动态添加端口映射解决思路
Docker 动态添加端口映射? docker 创建容器的时候,我们如果使用docker的桥接网络(bridge)那么一般需要暴露容器内一些端口到宿主机上,也就是容器与宿主机间的端口映射.最近很多的人 ...
- 【TDSQL】资源存在隔离端口产生告警的处置
TDSQL资源存在隔离端口产生告警的处置 告警信息样例 [TDSQL]XX集群(192.168.6.10):资源存在隔离端口产生告警,判断频率(1/1),后续180分钟内屏蔽告警:异常策略:!=阀值( ...
最新文章
- 【算法导论学习笔记】第3章:函数的增长
- 凝聚世界著名的UNIX/Linux专家Sobell十年功力的巨著2
- 《主算法》作者Pedro Domingos:做机器学习硬件不能只考虑深度学习
- 获取 HTML5 网页设计灵感的10个网站推荐
- IEEE ISO/IEC简介
- 【报告分享】万达文旅项目新媒体营销操作手册.pdf(附下载链接)
- 《机器人学导论》Matlab计算坐标系变换矩阵
- viper12a电源电路图_viper12_viper12a工作原理详解_简单viper12a电路图
- 2022,程序员的出路在哪里?
- 【视频编码】【Vue】【明星开源项目】| Chat · 预告
- 计算机考研统考压分吗,担忧!考研初试会被压分吗?
- Leetcode——237. 删除链表中的节点(Java)
- java 1 20内奇数的乘积_计算所有奇数的乘积
- Latex 语法 备忘录
- 免费翻译英文文献自动生成PDF双语文档小技巧
- 深圳互联网科技公司|外企篇
- subclipse-1.8.4安装方法
- 4个基本不等式的公式高中_不等式链(高中4个基本不等式链推导)
- 大话Linux发展史
- TCP协议——三次握手
热门文章
- 【Python】python初学者应该知道与其他语言差异化的高效编程技巧(附测试代码+详细注释)
- ceph搭建及使用详解
- MD5、SHA、AES、Rabit 、RC4、TripleDES Ripemd160 加密解密工具
- 1276. 不浪费原料的汉堡制作方案-数学消元法
- Tracup|使用项目管理独一无二的六大好处
- android版本内存多少,内存大小决定Android系统版本?
- iphone相册储存空间已满_苹果iPhone手机存储空间满了怎么办以及解决方法
- 解析少儿编程与创客教育的实战原理
- 使用python manage.py startapp myapp未报错,但是没有创建出myapp
- C++ opencv之像素操作之逻辑操作(bitwise_and,bitwise_xor,bitwise_or,bitwise_not)