一、简介
Prometheus是一款开源的监控系统,用于监控系统的各项指标参数,让开发运维人员能更好的掌控系统的运行状态。是云原生计算基金会项目,是一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并在观察到指定条件时触发警报。
二、常见的指标监控系统
- Zabbix
优点:全面的监控功能,包括主机、网络设备、服务等;丰富的插件生态系统;图形化界面友好。
缺点:配置相对复杂;扩展性有限;对大规模部署的支持不如一些云原生解决方案。
- Prometheus
优点:适合云原生环境,易于集成Kubernetes;高性能的时间序列数据库;灵活的查询语言(PromQL);活跃的社区支持。
缺点:数据存储有限制,需要定期清理旧数据;对于非常大规模的数据集可能需要额外的存储解决方案。
- Open-Falcon
优点:部署简单,使用方便;适合中小规模的监控需求;良好的社区支持。
缺点:功能相比其他专业监控系统较为简单;可能不适合大规模或复杂的监控需求。
小结:Prometheus是目前用的比较多的一款指标监控系统,本文用于记录从0学习Prometheus的过程。
三、Prometheus中的组件:
1、Metric
度量,指标,很好理解就是我们要监控的对象的值,例如CPU使用率、内存使用率,单位时间内GC的次数等等。
2、Prometheus server
Prometheus server是Prometheus的核心组件,用于抓取和存储时间序列数据。
3、Service Discovery
服务注册发现Prometheus的服务发现机制是用来自动查找和管理Prometheus监控的目标(即被监控的服务或系统)
4、exporters
exporters用于导出各个指标,供Prometheus抓取(顺带提一下,Prometheus采用的数pull模型,即主动拉取数据),常见的exporter有 node_exporter用于监控系统指标,mysql_exporter:用于监控mysql的指标等等
5、AltertManager
Alertmanager处理客户端应用程序(如Prometheus服务器)发送的警报。它负责重复数据删除、分组,并将它们路由到正确的接收器集成,如电子邮件、钉钉通知等等。
6、PushGateway
Push Gateway 是 Prometheus 生态系统中的一个组件,它的主要作用是允许短期运行的任务(如批处理作业)将监控指标推送到一个持久存储中,以便 Prometheus 能够拉取这些数据并进行监控。
四、安装Prometheus
1、安装Go环境
Prometheus是基于GO开发的,并且后续很多的Exporter也是基于GO开发的,所以最好安装一下GO环境。GO的安装还是比较简单的,这里不多
All releases - The Go Programming Language
2、安装Prometheus
地址:https://prometheus.io/download/
1、下载对应的版本然后上传至服务器
2、解压
3、启动
sudo ./prometheus --config.file=prometheus.yml --web.enable-lifecycle
这里解释一下web.enable-lifecycle,这个是学习的时候方便改配置,如果不设置这个参数,改完配置每次都要重启。
4、访问
localhost:9090
至此Prometheus的安装已经完成,接下来我们尝试着监控一下系统信息。
五、监控操作系统指标
1、要监控操作系统的指标,我们需要引入node_exporter,https://prometheus.io/download/#node_exporter
2、同样下载对应的版本然后上传到服务器,这里本人解压到里 Prometheus下的 exporter目录(自己创建的,叫什么名字都可以)
3、进入 node_exporter目录
4、启动exporter : ./node_exporter
5、访问 9100端口: localhost:9100
6、配置Prometheus
进入Prometheus目录,在prometheus.yml配置该exporter
7、调用reload接口,让配置生效(这一步的前提是,启动Prometheus的时候 设置了 web.enable.lifecycle)
POST localhost:9090/-/reload
执行完成之后Prometheus的控制台可以看到对应
最后,我们看下一效果
六、结束语
至此我们已经初步了解了Prometheus,之后我们会继续深入学习,希望对你有所帮助