您现在的位置是:首页 >学无止境 >prometheus&各监控组件的配置网站首页学无止境
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,导入这种模板将不会展示数据。