zoukankan      html  css  js  c++  java
  • 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.如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    使用gulp搭建一个传统的多页面前端项目的开发环境
    抓包工具使用
    selectors 模块
    I/O模型
    协程
    进程池
    进程的同步
    进程间通讯的三种方式
    多进程调用
    生产者消费者模型
  • 原文地址:https://www.cnblogs.com/syw20170419/p/15068157.html
Copyright © 2011-2022 走看看