美文网首页
windows环境下使用Prometheus监控脚本/应用

windows环境下使用Prometheus监控脚本/应用

作者: 炸鸡测试 | 来源:发表于2022-02-25 18:11 被阅读0次

    简介

        Prometheus/Process-Exporter/Grafana三件套,用于监控脚本/应用是否一直在运行,长时间运行时的性能使用情况并用可视化的图标显示出来。

    一、Prometheus

    Prometheus(普罗米修斯)是一套比较完备的监控报警系统,其主要架构设计如图:

    设计架构图

    1. 主要是由以下组件构成:

        1.1. Prometheus server:服务中心,主要负责拉取和存储时序书库(Prometheus有自带的时序数据库)

        1.2. Client Libraries:客户端库,主要用于和具体的服务进行集成,采集监控数据,例如Micrometer

        1.3. Push gateway:另外一种数据push的采集方式(Prometheus默认使用pull的方式主动采集应用数据),用于适配一些没有长期稳定的进程   的服务

        1.4. Exporter:用于针对某些特定服务的数据采集工具,例如:mysql/kafka/HA等..

        1.5. Alert Manager:Prometheus的监控告警工具,主要通过webhook和其他告警系统进行集成告警,能够进行告警规则的配置

        1.6. 其他工具

    同时,Prometheus也有一套自己的查询语法,用于已经采集的数据的结果查询,具体可以参考:

    https://prometheus.io/docs/prometheus/latest/querying/basics/

    或者中文翻译: https://www.jianshu.com/p/3bdc4cfa08da

    2. 安装部署

    我使用的是Windows,首先在Prometheus官方下载安装包

    官网高速入口:“点我!点我!点我!

    下载完毕后安装软件其目录结构如下:

    解压后的目录内容

    1. data为Prometheus 是自带时序数据库持久化的目录

    2. pometheus.yml 为整个Prometheus的配置文件

    3. pometheus.exe 为服务启动应用,双击直接启动

    这个时候Prometheus会使用最基本的默认配置,运行在本地9090端口,采集自身的运行的数据并持久化到时序数据

    prometheus.yml的配置规则参考文档:

    https://prometheus.io/docs/prometheus/latest/configuration/configuration/

    4.当Prometheus启动完毕后,本地浏览器访问:http://localhost:9090  能够访问,说明安装并启动成功。

    二、Process-Exporter

        Process-Exporter就是用来监控进程的,其中一项能力,便是监控进程的状态。如果机器上运行了一些小脚本,想要对其进行监控但又不想用上一些在代码里做信息采集的SDK那么重,比如:单纯想要监控该脚本是否一直在运行,运行时CPU、内存使用情况,那么Process-Exporter会是一个现成的好选择。

    1.安装部署

       1.1 下载最新发布/旧的版本的适合你机器的就可以,我用的是当时的最新版process-exporter-0.7.10.linux-arm64.tar.gz,可以用wget + 下载链接 命令直接下载到服务器上也可以下载下来拖进去解压

    下载高速入口:“点我!点我!点我!

        1.2 进入解压出的目录,我们开始设置我们需要监控的进程。Process-Exporter的做法是配置需要监控的进程的名称,他会去搜索该进程从而得到其需要的监控信息,其实也就是我们常做的“ps -efl | grep xxx”命令来查看对应的进程。解压出来配置文件是没有的,需要创建,名字随便。

    被监控的程序

    以监控 “java” 为例:

    process_names:

            - name: "{{.Matches}}"

              cmdline:

              - 'java'

    这里,在配置文件(process-conf.yaml)中,我添加了1个监控的进程“java”,一个process_names就定义了要监控的一组进程,{{.Matches}}模板表示映射包含应用命令行所产生的所有匹配项,还有其他模板如下:

        1.3模板变量:

        {{.Comm}} contains the basename of the original executable, i.e. 2nd field in /proc/<pid>/stat

        {{.ExeBase}} contains the basename of the executable

        {{.ExeFull}} contains the fully qualified path of the executable

        {{.Username}} contains the username of the effective user

        {{.Matches}} map contains all the matches resulting from applying cmdline regexps

    1.4 配置好后,我们依据此配置文件来运行process-exporter:

    ./process-exporter -config.path process-conf.yaml &

    1.5 查看是否运行成功,有没有数据

    curl http://localhost:9256/metrics

    1.6 添加到开机自启动(xxx使用绝对路径)

    xxx/xxx/process-exporter -config.path xxx/xxx/process-conf.yaml &

    三、Grafana

        Grafana是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化,它在其他领域也被广泛的使用包括工业传感器、家庭自动化、天气和过程控制等。

    Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。

    其工作模式主要分为三步:

    设置数据源:可视化的基础数据来源,例如从数据库/Prometheus/ElasticSearch

    配置数据抽取方式:例如通过数据库的SQL/Prometheus的ProQuery等进行数据查询

    数据面板配置:Grafana支持多样的数据呈现方式,例如折线图/直方图/热力图等等,通过简单的配置,即可通过多样化的数据呈现方式去展示监控数据

    安装部署

        Grafana的部署和Prometheus的部署差不多,我使用的是Windows,首先从官方下载安装包:

    官网高速入口:“点我!点我!点我!

    1. 下载安装程序如下:

    安装后的目录内容

     2. 直接双击 nssm.exe 启动

     3. 访问地址 http://127.0.0.1:3000(默认端口为3000,默认用户名和密码均为admin)

    四、Prometheus/Process-Exporter/Grafana三件套组合使用

    1. Prometheus配置prometheus.yml

    我用到的配置文件修改内容

    2.访问:http://localhost:9090 查看连接状态,以下为正常状态

    连接状态

    3. grafana配置Prometheus数据库,添加数据源。

    添加数据源 填写数据源 Prometheus地址

    4.搭建展示Prometheus数据的仪表盘

    添加仪表盘

        官网有很多模板,根据你自己的需要和喜欢去选择即可

    我用的是4202,用于监控应用的CPU、内存使用情况

    某园类似的帖子:https://www.cnblogs.com/cghuang/p/15384847.html

    相关文章

      网友评论

          本文标题:windows环境下使用Prometheus监控脚本/应用

          本文链接:https://www.haomeiwen.com/subject/nnmxrrtx.html