Foreward
在学习每个新技术之前,都有必要弄懂以下6个问题(左耳朵耗子学习模版):
- 这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题
- 这个技术的优势和劣势分别是什么,或者说这个技术的 trade-off 是什么。任何技术都有其好坏,在解决一个问题的时候,也会带来新的问题.
- 适用的场景(业务场景或技术场景)
- 它的组成部分和关键点
- 它的底层原理和关键实现
- 已有的实现和它之间的对比
由于最近在搞代理,需要一个监控和报警来保证稳定性.我的需求也很简单,监控500+主机是否存活(通过ping或ssh的方式检测),如果出现问题,立马报警.
其实官网已经说的很明白了,我也没必要重复搬运,这里只记录自己的使用和比较关注的信息.
Resources
- 官网
- 博客
- https://en.fabernovel.com/insights/tech-en/alerting-in-prometheus-or-how-i-can-sleep-well-at-night
- Yunlong blog
- https://www.slideshare.net/leecalcote/understanding-and-extending-prometheus-alertmanager
- 了解 Prometheus Federation 功能
- [使用Prometheus+grafana打造高逼格监控平台](http://blog.51cto.com/youerning/2050543
- Prometheus 非官方中文手册
- 基于Prometheus的分布式在线服务监控实践
Environment
- prometheus 2.3.1
- blackbox_exporter 0.12.0
- alertmanager 0.15.1
- centos 7
Notices
- Prometheus即是一个CPU密集型(查询)也是一个IO密集型(数据落地)的,CPU数量是多多益善,内存越大越好(来缓存抓取的数据,所以应该减少不必要的业务数据导出),尽量要使用SSD(这个很关键!),因为一旦Prometheus的内存使用量达到阈值会停止抓取数据!这个停止抓取的时间,至少是分钟级,甚至是无法恢复!所以只要有条件就要用SSD.
Prometheus
Install
部署测试场景
Config prometheus.yml
blackbox_exporter和alertmanager的安装可以参见另外两篇文章《alertmanager之初体验》、《blackbox_exporter之安装》
1 | # 由于机器数量较多,使用prometheus的服务发现,将所有机器配置到单独的文件中. |
Config rules.yml
1 | $ vim /opt/proxy_rules.yml |
Config Systemd
1 | $ vim /usr/lib/systemd/system/prometheus.service |
常规部署
1 | # prometheus官网有下载地址 |