您现在的位置是:首页 >学无止境 >prometheus&各监控组件的配置网站首页学无止境

prometheus&各监控组件的配置

IT布道 2024-06-17 10:48:56
简介prometheus&各监控组件的配置
引言:以下各软件的链接,都是基于本文发布时,所使用的最新版本。因为该文主要是当笔记用,所以步骤比较粗糙。
主要监控对象:
java
mongodb
zookeeper
kafka
主机

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,导入这种模板将不会展示数据。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。