Prometheus介绍
- Prometheus 是一款用于事件监控告警的开源免费应用程序, 采用Go编写。
- Prometheus 工作时通过HTTP的方式周期性抓取被监控组件的性能数据,任意想要被监控的组件只需要提供对应的HTTP接口即可接入监控,不需要额外的SDK支持或者其他的集成过程,输出被监控组件性能信息的HTTP接口被叫做exporter。
- 其中常用的exporter有node_exporter,可以用来输出服务器的CPU使用率,磁盘占用情况,网络带宽使用情况,等基本性能信息。
- 在应用层用作应用监控系统,一些主流应用可以通过官方或第三方的导出器,来对这些应用做核心指标的收集。如redis,mysql
- 在业务层用作埋点系统,Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购物车流程
Prometheus架构
架构的工作流程:
- Prometheus server 定期从配置好的 jobs 或者 exporters 中拉 metrics,或者接收来自 Pushgateway 发过来的 metrics,或者从其他的 Prometheus server 中拉 metrics。
- Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。
- Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。
- 在图形界面中,可视化采集数据。
开源软件的安装实践过程:
- 安装go 语言环境
- 在监控服务器上安装prometheus
- 在被监控环境上安装export
- 安装grafana
备注:linux版go/prometheus/node_exporter/granafa软件包下载地址链接: https://pan.baidu.com/s/1P1wYIoxHQGK-oddk_5kUEQ 密码: t19c
一、安装go环境
[root@archive soft]# tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
[root@archive soft]# vim /etc/profile
在文件的最后添加如下内容:
export PATH=$PATH:/usr/local/go/bin
保存退出后,接着让配置文件立刻生效:
[root@archive aiops]# source /etc/profile
验证一下是否成功,用go version 来验证
[root@archive aiops]# go version
go version go1.8.3 linux/amd64
二:在监控服务器上安装prometheus
下载后上传到部署的服务器,在服务上执行如下命令解压(root用户,解压到 /usr/local):
[root@archive soft]# tar -vxf prometheus-2.3.2.linux-amd64.tar.gz -C /usr/local/
为了以后进入目录方便,做了一个软连接:
进入到软连接的目录下去
接着要配置一下监控的配置文件:prometheus.yml
[root@archive soft]# vim prometheus.yml
配置完成后,只需要运行起来这个软件(注意:一定是你安装prometheus的目录下去启动,如我的安装在):
[root@archive prometheus]# ./prometheus #启动prometheus的服务
查看服务被启动成功的样式
通过如下URL可以打开prometheus的自带监控界面: IP:9090,示例:http://10.201.0.5:9090/。点击targets 跳转到监控目标,这里展现了多个监控对象。
点击 9100 端口的 metrics 连接,点进去后,就可以看到一些采集信息。说明刚才配置的node-exporter已经加入到prometheus的targets中了。如下图:
查看监控信息#
点击web界面最上面的菜单 Graph
选择下面的 Graph,然后我们选择一个 node_memory_Active_bytes 来看一看。
【重要】当node_exporter安装重新启动后才有此些数据。若看不到node_memory...等信息,请过这段,继续向下看“三”之后在来查看此数据
然后点击 Execute 按钮 , 就会出来如下图所示图形:
Exporter
1、exporter介绍
2、exporter支持的分类
【重要】支持的exporter分类详见社区提供的内容:https://prometheus.io/docs/instrumenting/exporters/
示例为:Node Exporter、MySQL Exporter、MongoDB exporter、Redis exporter等,其他详见如上链接
三、在系统层用作系统监控exporter
- NodeExporter项目可以对于主机的关键度量指标状态监控,从监控平台本身的业务需求分析来看,我们至少应该希望通过Prometheus平台获取到一下监控数据:性能指标,如下介绍:
容器相关的性能指标数据(如:cpu, memory, filesystem
Pod相关的性能指标数据
主机节点相关的性能指标数据
服务健康状态监控
相关的健康状态(health or unhealth)
的健康状态
Node节点的健康状态
- 这台linux环境是centos,因此用的监控export是node_exporter,首先在官网下载这个文件,然后上传到被监控的主机(作为部署服务的主机上也需要安装 export),因此下载并部署后,执行如下命令:
【重要】执行完如上指令,注意如下事项:
1、查看prometheus的prometheus.yml中是否配置9100端口的IP地址,若为配置,则需求配置,否则没有node_memory等的内容,若需配置,翻上去看前面我的截图
2、手动删掉已启动的prometheus的进程,重新启动
[root@archive soft]# ps -ef | grep prometheus
[root@archive soft]# kill pid
3、重新启动的指令
进入到prometheus的解压目录下,再次输入指令:[root@archive prometheus]# ./prometheus
四、安装grafana,给prometheus换一个面板
安装命令如下:
[root@archive soft]# sudo yum localinstall grafana-5.2.3-1.x86_64.rpm
接着把grafana加入到系统服务,将服务启动
[root@archive soft]# sudo /sbin/chkconfig --add grafana-server
[root@archive soft]# sudo service grafana-server start #启动grafana服务
启动后,打开如下URL,端口采用默认的3000。示例:http://10.201.0.5:3000/
输入默认的admin/admin
然后点击add datasource,添加内容
如上的内容填写完成,点击“save&test”
五、添加监控Dashboards模板
grafana不仅有我们上面设置的那些图表模板,它还有其他很多模板,我们也可以设置。
官方模板dashboard 地址。
比如我们查找node exportet的模板,https://grafana.com/grafana/dashboards?search=node%20exporter,有一个模板 downloads 比较多
如上则完成了整个环境的搭建。
1.作者:Syw