Prometheus监控报警系统
三丰,公众号:soft张三丰Prometheus监控报警系统
监控分类可以参考这篇文章下半部分
三丰,公众号:soft张三丰Prometheus监控(2)

监控系统搭建
• 单点服务端的搭建(prometheus)
• 单点客户端的部署
• 单点客户端服务器测试
• 采集程序单点部署
• 采集程序批量部署
• 监控服务端HA / cloud (⾃⼰定制)
• 监控数据图形化搭建(Grafana)
• 报警规则测试
• 监控+报警联合测试
• 可选⽤脚本作为数据采集途径
例如: shell / python / awk / lua (Nginx 安全控制,功能分类) / php / perl/ go 等等
shell :运维的⼊门脚本,任何和性能/后台/界⾯⽆关的逻辑 都可以实现最快速的开发
(shell 是在运维领域⾥ 开发速度最快 难度最低的)
python: 各种扩展功能 扩展库 功能丰富 ,伴随各种程序的展⽰+开发框架(如django)等 可以
实现快速的中⾼档次的平台逻辑开发. ⽬前在运维届 除去shell这个所有⼈必须会的脚本之外,⽕爆程度就属python了
awk: 本⾝是⼀个实⽤命令 也是⼀门庞⼤的编程语⾔. 结合shell脚本 或者独⽴ 都可以使⽤。
在⽂本和标准输出处理上 有很⼤的优势
lua: 多⽤于nginx的模块结合 是⽐较新型的⼀个语⾔
php:⽼牌⼦的开发语⾔,在⼤型互联⽹开发中,⽬前有退潮的趋势 (PHP语⾔, php-fpm)不过在运维中⼯具开发还是很依赖PHP
perl: 传说中 对⽂本处理最快的脚本语⾔ (但是代码可读性不强)
go: 新型的语⾔ ⽬前在开发和运维中 炒的很热 ⼯资也⾼ C语⾔ 在各种后端服务逻辑的编写上 开发速度快 成⾏早
作为监控数据采集, ⾸推 shell + python , 如果说数据采集选取的模式对性能/后台/界⾯不依赖,那么shell速度最快 成本最低(公司往往喜欢快的)。
采集形式分类
⼀次性采集
例如我们使⽤⽐较简单的 shell ./monitor.sh (ps -ef | grep, netstats -an | wc )+ crontab的形式
按10秒 / 30秒 / ⼀分钟 这样的频率去 单词采集
-
优点 ⼀次性采集的模式 稳定性较好 不容易出现各种错误 和性能瓶颈,且开发逻辑简单 实
现快速
- 缺点 ⼀次性采集 对于有些采集项⽬ 实现起来不够智能 也不够到位 例如 ⽇志的实时采集
(使⽤⼀次性采集 ⽇志⽂件 200/5xx diff grep 也可以实现 但是很low 不够准确 不够直观)
后台式采集
采集程序以守护进程运⾏在Linux后台,持续不断的采集数据:pormetheus exporter 例如
python/go开发的daemon程序 后台持续不断的采集
- 优点:后台采集程序 数据准确性⾼ 采集密度精细 管理⽅便
- 缺点:后台采集程序 如果开发过程不够仔细 可能会出现各种 内存泄漏 僵⼫进程 性能瓶颈的问题, 且开发周期较长
桥接式采集
本⾝以后台进程运⾏ 但是采集不能独⽴ 依然跟服务器关联 以桥接⽅式收集采集数据
例如:NRPE for nagios
NRPE是Nagios Remote Plugin Executor的简称,它是nagios的一个扩展工具,用在被监控主机上。通过它可以向nagios监控服务器提供该主机的一些本地信息。例如:cpu负载、内存使用情况、磁盘容量、登陆用户数、总进程数、僵尸进程数、swap分区使用情况等等。
注意:NRPE方式的监控,只能监控主机本地的信息,并不能监控数据库。
Prometheus监控(1)
三丰,公众号:soft张三丰Prometheus监控(1)
Prometheus监控(2)
三丰,公众号:soft张三丰Prometheus监控(2)
微服务核心之服务编排
三丰,公众号:soft张三丰服务编排
了解service mesh
三丰,公众号:soft张三丰一文看懂service mesh
微服务之划分原则
三丰,公众号:soft张三丰微服务之划分原则