天天看点

Prometheus监控(3)

Prometheus监控报警系统

三丰,公众号:soft张三丰​​Prometheus监控报警系统​​

监控分类可以参考这篇文章下半部分

三丰,公众号:soft张三丰​​Prometheus监控(2)​​

Prometheus监控(3)

监控系统搭建

• 单点服务端的搭建(prometheus) 

• 单点客户端的部署 

• 单点客户端服务器测试 

• 采集程序单点部署 

• 采集程序批量部署 

• 监控服务端HA / cloud (⾃⼰定制) 

• 监控数据图形化搭建(Grafana) 

• 报警规则测试 

• 监控+报警联合测试

Prometheus监控(3)

• 可选⽤脚本作为数据采集途径

例如: 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速度最快 成本最低(公司往往喜欢快的)。

采集形式分类

⼀次性采集

Prometheus监控(3)

例如我们使⽤⽐较简单的 shell ./monitor.sh (ps -ef | grep, netstats -an | wc )+ crontab的形式

按10秒 / 30秒 / ⼀分钟 这样的频率去 单词采集

  • 优点 ⼀次性采集的模式 稳定性较好 不容易出现各种错误 和性能瓶颈,且开发逻辑简单 实

    现快速

  • 缺点 ⼀次性采集 对于有些采集项⽬ 实现起来不够智能 也不够到位 例如 ⽇志的实时采集

(使⽤⼀次性采集 ⽇志⽂件 200/5xx diff grep 也可以实现 但是很low 不够准确 不够直观)

后台式采集

Prometheus监控(3)

采集程序以守护进程运⾏在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张三丰​​微服务之划分原则​​