prometheus各监控组件的配置

news/2024/5/19 1:32:50 标签: prometheus, linux, 运维
引言:以下各软件的链接,都是基于本文发布时,所使用的最新版本。因为该文主要是当笔记用,所以步骤比较粗糙。
主要监控对象:
java
mongodb
zookeeper
kafka
主机

prometheus_8">1. 安装prometheus

下载路径:

https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz

将压缩包解压即可,无需安装。

tar -xvf prometheus-2.44.0.linux-amd64.tar.gz

启动命令:

 /prometheus-2.43.0.linux-386/prometheus --config.file=/prometheus-2.43.0.linux-386/prometheus.yml

prometheus的默认web端口是9090,下面的url可以查看当前已监控的组件,以及其运行状态。

http://ip:9090/targets

2. 安装grafana

grafana有三个版本,Open source,Cloud,Enterprise。我们只需要下载Open source版本,下载路径:

https://grafana.com/grafana/download?edition=oss&pg=graf&plcmt=deploy-box-1&platform=linux

下载的文件是rpm包,可直接使用rpm安装:

rpm -i grafana-9.5.2-1.x86_64.rpm

启动grafana:

sudo systemctl daemon-reload
sudo systemctl start grafana-server
# 查看启动状态
sudo systemctl status grafana-server

grafana的默认web端口是3000,使用下面的url可打开管理界面:

http://ip:3000/metrics

管理界面需要登录,默认账号:admin/admin,进入管理界面,然后:

  • 增加数据源,点击左上角的列表图标->Administration->Data sources->Add new data source->选择Prometheus->填写url->Save&test。
  • 增加Dashboard,这里仅介绍导入模板的方法,自定义表格本文不涉及。点击左上角的列表图标->Administration->Dashboards->New->import->Upload dashboard JSON file->Import。

dashboard library,里面包含大量的模板,可根据关键字搜索想要的模板,以下是地址:

https://grafana.com/grafana/dashboards/

后面涉及到的组件,都可以在dashboard library里面找到。找到想要的模板之后,点击下载json文件到本地的方式保存。也可以直接输入id,但需要安装grafana的机器能访问grafana library。

3. 安装node_exporter

node_exporter是用来监控机器的硬件和操作系统性能指标的,比如,CPU,内存,磁盘等信息。下载路径:

https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz

将压缩包解压即可,无需安装。
启动命令:

 /node_exporter-1.5.0.linux-amd64/node_exporter

node_exporter的默认web端口是9100,下面的url可以查看当前已监控的主机的各项指标。

http://ip:9100/metrics

prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: node
      static_configs:
      - targets: ['ip:9100']

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

4. 安装mongodb_exporter

mongodb_exporter是用来监控mongodb的性能指标的,下载路径:

https://github.com/percona/mongodb_exporter/releases/download/v2.37.0/mongodb_exporter-2.37.0.linux-64-bit.rpm

启动命令:

 ./mongodb_exporter --mongodb.uri='mongodb://[user]:[password]@[ip]:27017/admin' --compatible-mode --collect-all

–compatible-mode:兼容模式,当使用的dashboard是从grafana library上下载的模板,该模板很有可能仅支持老版本的mongodb_exporter,所以需要兼容模式才能正常显示图表等信息。
–collect-all:采集mongodb的所有信息,如果不需要所有信息,可以修改该参数为指定的采集对象,比如表,集合等。

node_exporter的默认web端口是9216,下面的url可以查看当前已监控的mongodb的各项指标。

http://ip:9216/metrics

prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: "mongo_exporter"
      static_configs:
        - targets: ["ip:9216"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

5. 安装jmx_exporter

jmx_exporter是用来监控java应用程序的性能指标的,下载路径:

https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.18.0/jmx_prometheus_javaagent-0.18.0.jar

创建config.yaml文件,最简单的内容如下:

rules:
  - pattern: ".*"

启动命令:

 java -javaagent:./jmx_prometheus_javaagent-0.18.0.jar=12345:config.yaml -jar yourJar.jar

注意上述命令中各文件的路径。yourJar.jar表示想要监控的java程序。如果项目中使用的是脚本的方式启动,则在启动脚本中,将-javaagent:./jmx_prometheus_javaagent-0.18.0.jar=12345:config.yaml 加入到启动命令里面。

上述脚本配置的jmx_exporter的web端口是12345,通过下面的url可以查看当前已监控的java的各项指标。

http://ip:12345/metrics

prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: "java_exporter"
      static_configs:
        - targets: ["ip:12345"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

6. 监控zookeeper

从3.6.x的版本开始,zookeeper支持prometheus监控。步骤如下:

  • 在zookeeper的配置文件中,增加配置:
metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
# 默认7000,避免重启,改为7123
metricsProvider.httpPort=7123
  • prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:
  scrape_configs:
    ......
    - job_name: "zookeeper_exporter"
      static_configs:
        - targets: ["ip:7123"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

7. 监控kafka

本文未使用第三方的kafka_exporter,而是直接使用jmx_exporter来监控kafka,因此,配置方式和监控java程序类似。
首先,从jmx_exporter的样例中,下载kafka-2_0_0.yml文件,路径如下:

https://github.com/prometheus/jmx_exporter/blob/main/example_configs/kafka-2_0_0.yml

修改kafka的启动脚本kafka-server-start.sh,在最后一行代码之前增加如下内容:

if [ "x$KAFKA_AGENT_OPTS" = "x" ]; then
    export KAFKA_AGENT_OPTS="-javaagent:/jmx_prometheus_javaagent-0.18.0.jar=12345:/kafka-2_0_0.yml"
fi

修改kafka的另一个脚本kafka-run-class.sh,在最后一段代码中,将KAFKA_AGENT_OPTS参数加入其中,代码如下:

if [ "x$DAEMON_MODE" = "xtrue" ]; then
  nohup "$JAVA" $KAFKA_AGENT_OPTS ....
else
  exec "$JAVA" $KAFKA_AGENT_OPTS ....
fi

修改完成之后,重启kafka。 上述脚本配置的jmx_exporter的web端口是12345,通过下面的url可以查看当前已监控的java的各项指标。

http://ip:12345/metrics

prometheus集成,打开prometheus.yml文件,在scrape_configs:下面增加如下内容,注意文件格式:

  scrape_configs:
    ......
    - job_name: "kafka_exporter"
      static_configs:
        - targets: ["ip:12345"]

配置完成之后,需要重启prometheus,然后通过http://ip:9090/targets ,可查看集成状态。

在grafana中导入dashboard模板的时候 ,需要注意模板是否匹配,有的模板使用的是kafka_exporter,导入这种模板将不会展示数据。


http://www.niftyadmin.cn/n/336152.html

相关文章

【猿人学WEB题目专解】猿人学第18题

🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。 前言: 🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~ ✨个…

VP记录:Codeforces Round 873 (Div. 2) A~D1

传送门:CF 前题提要:因为本场比赛的D题让我十分难受.刚开始以为 r − l 1 r-l1 r−l1与 r − l r-l r−l应该没什么不同.但是做的时候发现假设是 r − l 1 r-l1 r−l1的话我们可以使用线段树来维护,但是 r − l r-l r−l就让线段树维护的难度大大增加,这导致我十分烦躁,所以…

keepalived疑难问题一例

假设: 你已经了解keepalived的基础知识,且已经能正确运行keepalived。 背景: 在两个正常工作的主机中,正常运行keepalived,且主机A绑定了虚拟IP,为主节点,主机B为从节点。 问题:…

操作系统原理 —— 什么是信号量,信号量如何实现进程互斥、进程同步?(十五)

在之前的章节中,我们提到了进程互斥,以及进程互斥实现的几种方式,那么今天我们再来讲解一种,基于 信号量 来实现进程之间的同步、互斥的方式。 用户进程可以通过使用操作性提供的一对原语来对信号量进行操作,从而很方…

利用大数据分析,提升app广告变现的方法

​在当今信息化时代,越来越多的APP开始将大数据技术应用于广告变现。通过利用大数据分析用户数据和行为,我们可以更好地了解用户的需求和兴趣,从而实现广告投放的精准化和高效性。 本文将从大数据驱动下APP广告变现的角度出发,深…

AUTOSAR知识点 之 COM (一):基础知识

目录 1、概述 1.1、简介 1.2、各模块依赖关系 1.2.1、PDUR关系 1.2.2、RTE 2、SPEC解读

【Flutter混合开发】在Android项目中如何启动Flutter

目录 前言现有项目中引入Flutter启动flutter页面加速启动启动传参总结 前言 flutter可以独立完成项目,但是在现有项目情况下最好的方式就是混合开发,逐步过渡。这样就会共存native和flutter代码,而其中最关键的就是native如何启动flutter页面…

【JavaScript】ES6新特性(2)

5. 字符串扩展 5.1 includes函数 判断字符串中是否存在指定字符 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name&q…