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

简介

    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. 直接双击 grafana-cli.exe 启动

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

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

1. Prometheus配置prometheus.yml


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

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


连接状态

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


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

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


添加仪表盘

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

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


5.下载 NSSM

    从NSSM 官方网站下载最新版本的 NSSM 工具(选择与系统位数匹配的版本),解压到任意目录(例如C:\Tools\nssm)。


2. 配置 Prometheus 服务

    以管理员身份打开命令提示符(CMD),执行以下命令:

    进入D盘:D:

    进入指定目录:cd \Tools\nssm

3.注册服务:nssm install 

    此时会弹出 NSSM 配置窗口,需填写以下关键信息:

    Application:Prometheus 可执行文件路径(例如C:\Prometheus\prometheus.exe)。

    App parameters:启动参数(例如--config.file=C:\Prometheus\prometheus.yml,需根据实际配置文件路径填写)。

    Startup directory:工作目录(设置为 Prometheus 所在目录,如C:\Prometheus)。

    Output:日志路径(例如C:\Prometheus\logs\stdout.log和C:\Prometheus\logs\stderr.log,需提前创建目录)。

4.启动服务

    配置完成后,在命令提示符中执行:net start prometheus

    服务启动后,Prometheus 将在后台运行,任务管理器中仅显示nssm.exe进程,不会出现控制台窗口。

5.其他注意事项

    自动启动:在 NSSM 配置窗口的Startup选项卡中,将启动类型设置为Automatic,确保系统重启后服务自动运行。

    路径空格处理:若路径包含空格(如Program Files),建议使用短路径(例如Progra~1)或用引号包裹完整路径。

    参数配置:根据需求调整 Prometheus 的启动参数,例如数据存储路径(--storage.tsdb.path)、保留时间(--storage.tsdb.retention.time)等。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容