promethues+grafana监控服务器环境搭建(全面+简单)

Prometheus介绍

  • Prometheus 是一款用于事件监控告警的开源免费应用程序, 采用Go编写。
  • Prometheus 工作时通过HTTP的方式周期性抓取被监控组件的性能数据,任意想要被监控的组件只需要提供对应的HTTP接口即可接入监控,不需要额外的SDK支持或者其他的集成过程,输出被监控组件性能信息的HTTP接口被叫做exporter。
  • 其中常用的exporter有node_exporter,可以用来输出服务器的CPU使用率,磁盘占用情况,网络带宽使用情况,等基本性能信息。
  • 应用层用作应用监控系统,一些主流应用可以通过官方或第三方的导出器,来对这些应用做核心指标的收集。如redis,mysql
  • 业务层用作埋点系统,Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购物车流程

Prometheus架构

架构的工作流程:

  1. Prometheus server 定期从配置好的 jobs 或者 exporters 中拉 metrics,或者接收来自 Pushgateway 发过来的 metrics,或者从其他的 Prometheus server 中拉 metrics。
  2. Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。
  3. Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。
  4. 在图形界面中,可视化采集数据。

开源软件的安装实践过程:

  1. 安装go 语言环境
  2. 在监控服务器上安装prometheus
  3. 在被监控环境上安装export
  4. 安装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/

 为了以后进入目录方便,做了一个软连接:

[root@archive soft]# ln  -sv  /usr/local/prometheus-2.3.2.linux-amd64/  /usr/local/Prometheus

进入到软连接的目录下去

[root@archive soft]# cd /usr/local/Prometheus

接着要配置一下监控的配置文件: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平台获取到一下监控数据:性能指标,如下介绍:

1. 容器相关的性能指标数据(如:cpu, memory, filesystem

2. Pod相关的性能指标数据

3. 主机节点相关的性能指标数据

服务健康状态监控

1. Deployment相关的健康状态(health or unhealth

2. Pod的健康状态

3. 主机Node节点的健康状态

  •  这台linux环境是centos,因此用的监控export是node_exporter,首先在官网下载这个文件,然后上传到被监控的主机(作为部署服务的主机上也需要安装 export),因此下载并部署后,执行如下命令:
tar xvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/

nohup /usr/local/node_exporter-0.16.0.linux-amd64/node_exporter &

【重要】执行完如上指令,注意如下事项:

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 比较多

 

 如上则完成了整个环境的搭建。

参考链接:https://blog.csdn.net/csolo/article/details/82460539

1.作者:Syw
2.出处:http://www.cnblogs.com/syw20170419/
3.本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
4.如果文中有什么错误,欢迎指出。以免更多的人被误导。
原文地址:https://www.cnblogs.com/syw20170419/p/15068157.html