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

2022-02-25  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读