Prometheus + Grafana 监控常用服务
一、引言
Prometheus监控常见服务的原理主要包括服务暴露指标和Prometheus抓取指标。一方面,被监控服务通过自身提供的监控接口或借助Exporter将服务的性能指标等数据以HTTP协议的方式暴露出来;另一方面,Prometheus根据配置好的采集任务,定期去拉取这些服务暴露的指标数据,将其存储在本地的时间序列数据库中,之后用户就可以通过PromQL查询来分析这些数据,实现对服务的监控。
二、Prometheus监控MySQL服务
1. 安装数据库
这里就不展示怎么安装啦~
2. 启动数据库
[root@elk93 ~]# /etc/init.d/mysql.server start Starting mysql.server (via systemctl): mysql.server.service. [root@elk93 ~]# [root@elk93 ~]# ss -ntl | grep 3306 LISTEN 0 151 *:3306 *:* LISTEN 0 70 *:33060 *:* [root@elk93 ~]# # 创建用户并且授权,这里我就用已经存在的用户。 mysql> SELECT user,host,plugin FROM mysql.user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | linux96 | % | mysql_native_password | | nacos | % | mysql_native_password | | mysql.infoschema | localhost | caching_sha2_password | | mysql.session | localhost | caching_sha2_password | | mysql.sys | localhost | caching_sha2_password | | root | localhost | caching_sha2_password | +------------------+-----------+-----------------------+ 6 rows in set (0.00 sec) mysql> mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO linux96; Query OK, 0 rows affected (0.00 sec) # 查看权限 mysql> SHOW GRANTS FOR linux96; +-------------------------------------------------------------------+ | Grants for linux96@% | +-------------------------------------------------------------------+ | GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO `linux96`@`%` | | GRANT ALL PRIVILEGES ON `nova_kafka`.* TO `linux96`@`%` | +-------------------------------------------------------------------+
3. 下载mysql_exporter
[root@elk93 ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz 3.解压程序 [root@elk91 ~]# tar xf mysqld_exporter-0.17.2.linux-amd64.tar.gz -C /usr/local/bin/ mysqld_exporter-0.17.2.linux-amd64/mysqld_exporter --strip-components=1 mysqld_exporter-0.17.2.linux-amd64/mysqld_exporter显式指定要解压的归档文件内的具体路径。即从压缩包中仅提取 mysqld_exporter-0.17.2.linux-amd64/ 目录下的 mysqld_exporter 文件。 --strip-components=1移除解压路径中的前 1层目录。 [root@elk91 ~]# [root@elk91 ~]# ll /usr/local/bin/ total 17936 drwxr-xr-x 2 root root 4096 Mar 27 10:56 ./ drwxr-xr-x 18 root root 4096 Mar 24 18:03 ../ -rwxr-xr-x 1 1001 1002 18356306 Feb 26 15:16 mysqld_exporter* [root@elk91 ~]#
4. 启动MySQL exporter
# MySQL-exporter可以和要暴露http(s)接口服务在同一个节点,这里分开是为了证明,不在同一个节点也可以。 [root@elk91 ~]# cat .my.cnf [client] user=linux96 password=novacao666 host=10.0.0.93 [root@elk91 ~]# [root@elk91 ~]# mysqld_exporter --config.my-cnf="/root/.my.cnf" time=2025-03-27T03:09:09.709Z level=INFO source=mysqld_exporter.go:239 msg="Starting mysqld_exporter" version="(version=0.17.2, branch=HEAD, revision=e84f4f22f8a11089d5f04ff9bfdc5fc042605773)" time=2025-03-27T03:09:09.709Z level=INFO source=mysqld_exporter.go:240 msg="Build context" build_context="(go=go1.23.6, platform=linux/amd64, user=root@18b69b4b0fea, date=20250226-07:16:19, tags=unknown)" time=2025-03-27T03:09:09.709Z level=INFO source=mysqld_exporter.go:252 msg="Scraper enabled" scraper=global_status ...... time=2025-03-27T03:09:09.710Z level=INFO source=tls_config.go:350 msg="TLS is disabled." http2=false address=[::]:9104
5. 测试访问
# 一般数据量大的都是正确的,如果是几十几百就说明我们暴露的数据不太对。 [root@elk93 ~]# curl -s http://10.0.0.91:9104/metrics| wc -l 2573 [root@elk93 ~]#
6. 配置Prometheus监控MySQL项
[root@prometheus-server31 ~]# tail -5 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-mysql-exporter static_configs: - targets: - 10.0.0.91:9104 # 热加载 [root@prometheus-server31 ~]# [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload
7. 验证监控结果并导入grafana模板
# 访问 http://10.0.0.31:9090/targets?search= grafana导入模板ID 17320 18949 14057 7362
三、Prometheus监控zookeeper集群
zookeeper没有Prometheus提供的exporter组件,但是他自带metrics暴露方式;打开以下注释即可。
1. 修改zookeeper集群的配置信息
[root@elk91 ~]# vim /usr/local/zookeeper/conf/zoo.cfg [root@elk91 ~]# [root@elk91 ~]# tail -5 /usr/local/zookeeper/conf/zoo.cfg # zookeeper没有Prometheus提供的exporter组件,但是他自带metrics暴露方式;打开以下注释即可。 # https://prometheus.io Metrics Exporter metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider metricsProvider.httpHost=0.0.0.0 metricsProvider.httpPort=7000 metricsProvider.exportJvmInfo=true [root@elk91 ~]# # 拷贝配置文件到其他集群的节点 [root@elk91 ~]# scp /usr/local/zookeeper/conf/zoo.cfg 10.0.0.92:/usr/local/zookeeper/conf/ [root@elk91 ~]# scp /usr/local/zookeeper/conf/zoo.cfg 10.0.0.93:/usr/local/zookeeper/conf/
2. 重启zookeeper服务
[root@elk91 ~]# zkServer.sh restart [root@elk92 ~]# zkServer.sh restart [root@elk93 ~]# zkServer.sh restart
3. 访问测试
http://10.0.0.91:7000/metrics http://10.0.0.92:7000/metrics http://10.0.0.93:7000/metrics
4. 配置prometheus监控zookeeper
[root@prometheus-server31 ~]# tail -7 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-zk-exporter static_configs: - targets: - 10.0.0.91:7000 - 10.0.0.92:7000 - 10.0.0.93:7000 ..... [root@prometheus-server31 ~]# # 热加载Prometheus [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload [root@prometheus-server31 ~]#
5. 验证监控结果并导入grafana模板
5.验证配置是否生效 http://10.0.0.31:9090/targets?search= # 看到Prometheus的targets出现zookeeper集群就行 6.grafana导入模板ID 10465
四、Prometheus监控kafka集群
1. 启动kafka集群
[root@elk91 ~]# kafka-server-start.sh -daemon /usr/local/kafka_2.13-3.9.0/config/server.properties [root@elk91 ~]# ss -ntl | grep 9092 LISTEN 0 50 [::ffff:10.0.0.91]:9092 *:* [root@elk91 ~]# [root@elk92 ~]# kafka-server-start.sh -daemon /usr/local/kafka_2.13-3.9.0/config/server.properties [root@elk92 ~]# ss -ntl | grep 9092 LISTEN 0 50 [::ffff:10.0.0.92]:9092 *:* [root@elk92 ~]# [root@elk93 ~]# kafka-server-start.sh -daemon /usr/local/kafka_2.13-3.9.0/config/server.properties [root@elk93 ~]# ss -ntl | grep 9092 LISTEN 0 50 [::ffff:10.0.0.93]:9092 *:* [root@elk93 ~]#
2. 下载kafka exporter
wget https://github.com/danielqsj/kafka_exporter/releases/download/v1.9.0/kafka_exporter-1.9.0.linux-amd64.tar.gz 3.解压软件包 [root@elk92 ~]# tar xf kafka_exporter-1.9.0.linux-amd64.tar.gz -C /usr/local/bin/ kafka_exporter-1.9.0.linux-amd64/kafka_exporter --strip-components=1 [root@elk92 ~]# [root@elk92 ~]# ll /usr/local/bin/ total 24520 drwxr-xr-x 2 root root 4096 Mar 27 11:44 ./ drwxr-xr-x 14 root root 4096 Mar 18 14:38 ../ -rwxr-xr-x 1 1001 fwupd-refresh 25099148 Feb 17 11:04 kafka_exporter* [root@elk92 ~]#
3. 启动kafka exporter
# 这里我们指定了集群信息,和kafka的版本信息 [root@elk92 ~]# kafka_exporter --kafka.server=10.0.0.91:9092 --kafka.server=10.0.0.92:9092 --kafka.server=10.0.0.93:9092 --kafka.version="3.9.0"
4. 访问kafka exporter的WebUI
# 出现大量信息即可 http://10.0.0.92:9308/metrics
5. 配置Prometheus监控kafka集群
[root@prometheus-server31 ~]# tail -5 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-kafka-exporter static_configs: - targets: - 10.0.0.92:9308 ... # 热加载 [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload [root@prometheus-server31 ~]#
6. 验证监控结果并导入grafana模板
# 出现kafka集群的targets即可 http://10.0.0.31:9090/targets?search= 8.grafana导入模板ID 12460 10122
五、prometheus监控nacos服务
nacos服务是自己有提供metrics接口,在配置文件中打开注释即可
参考链接: 监控手册 | Nacos 官网
1. 启动nacos集群
[root@elk91 ~]# /usr/local/nacos/bin/startup.sh [root@elk92 ~]# /usr/local/nacos/bin/startup.sh [root@elk93 ~]# /usr/local/nacos/bin/startup.sh 访问测试 : http://10.0.0.93:8848/
2. 修改nacos服务启用Metrics接口
# nacos和zk服务都是自己有提供metrics接口,在配置文件中打开注释即可 [root@elk91 ~]# vim /usr/local/nacos/conf/application.properties ... management.endpoints.web.exposure.include=prometheus,health ... # 将配置文件拷贝给集群的其他节点 [root@elk91 ~]# scp /usr/local/nacos/conf/application.properties 10.0.0.92:/usr/local/nacos/conf/ [root@elk91 ~]# scp /usr/local/nacos/conf/application.properties 10.0.0.92:/usr/local/nacos/conf/
3. 重启服务
[root@elk91 ~]# /usr/local/nacos/bin/shutdown.sh [root@elk92 ~]# /usr/local/nacos/bin/shutdown.sh [root@elk93 ~]# /usr/local/nacos/bin/shutdown.sh [root@elk91 ~]# /usr/local/nacos/bin/startup.sh [root@elk92 ~]# /usr/local/nacos/bin/startup.sh [root@elk93 ~]# /usr/local/nacos/bin/startup.sh
4. 访问nacos的WebUI
http://10.0.0.91:8848/actuator/prometheus http://10.0.0.92:8848/actuator/prometheus http://10.0.0.93:8848/actuator/prometheus
5. 配置Prometheus监控nacos集群
# 在Prometheus配置文件中,他默认只会发现到是以/metrics结尾的URI,所以这里我们要指引一下Prometheus。加一行配置文件指定。 [root@prometheus-server31 ~]# tail -8 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-nacos-exporter metrics_path: "/actuator/prometheus" static_configs: - targets: - 10.0.0.91:8848 - 10.0.0.92:8848 - 10.0.0.93:8848 ...... # 热加载Prometheus [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload [root@prometheus-server31 ~]#
6. 验证监控结果并导入grafana模板
http://10.0.0.31:9090/targets?search= 7.grafana导入模板ID 13221
六、 Prometheus监控docker原生Metrics
参考链接:
https://docs.docker.com/reference/cli/dockerd/#daemon-metrics
1. 停止docker
[root@elk93 ~]# systemctl stop docker
2. 修改docker启动脚本启用Metrics监控指标
[root@elk93 ~]# cat /lib/systemd/system/docker.service [Unit] Description=novacao linux Docke Engine Documentation=https://docs.docker.com Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd --metrics-addr 0.0.0.0:5200 [Install] WantedBy=multi-user.target [root@elk93 ~]# [root@elk93 ~]# systemctl daemon-reload [root@elk93 ~]# [root@elk93 ~]# systemctl restart docker.service [root@elk93 ~]# [root@elk93 ~]# ss -ntl | grep 5200 LISTEN 0 4096 *:5200 *:* [root@elk93 ~]#
3. 访问docker的Metrics接口
http://10.0.0.93:5200/metrics [root@node-exporter41 ~]# curl -s http://10.0.0.93:5200/metrics| wc -l 589 [root@node-exporter41 ~]#
4. prometheus监控docker服务
[root@prometheus-server31 ~]# tail -5 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-docker-exporter static_configs: - targets: - 10.0.0.93:5200 [root@prometheus-server31 ~]# [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload [root@prometheus-server31 ~]#
5. 验证监控结果并导入grafana模板
http://10.0.0.31:9090/targets?search= 8.grafana导入模板ID 9621 # 这里Prometheus提供的原生Metrics接口数据显示不全,所以我们有第二种解决方案。
Prometheus基于cAdvisor监控Docker容器
1. cAdvisor是什么?
cAdvisor(Container Advisor)是由Google开源的一款轻量级容器监控工具,主要用于实时收集、分析和展示容器运行时资源使用情况与性能数据,帮助用户了解容器化应用的行为和资源消耗。
2. 在docker节点拉取镜像
[root@elk92 ~]# docker pull gcr.io/cadvisor/cadvisor-amd64:v0.52.1 v0.52.1: Pulling from cadvisor/cadvisor-amd64 44cf07d57ee4: Already exists ..... Status: Downloaded newer image for gcr.io/cadvisor/cadvisor-amd64:v0.52.1 gcr.io/cadvisor/cadvisor-amd64:v0.52.1 [root@elk92 ~]#
3. 运行cAdvisor
[root@elk92 ~]# docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=18080:8080 \ --detach=true \ --name=cadvisor \ --privileged \ --device=/dev/kmsg \ gcr.io/cadvisor/cadvisor-amd64:v0.52.1 [root@elk92 ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3857cc9ff34e gcr.io/cadvisor/cadvisor-amd64:v0.52.1 "/usr/bin/cadvisor -…" 2 minutes ago Up About a minute (healthy) 0.0.0.0:18080->8080/tcp, :::18080->8080/tcp cadvisor [root@elk92 ~]#
4. 访问测试
[root@elk92 ~]# curl -s http://10.0.0.92:18080/metrics | wc -l 4885 [root@elk92 ~]#
5. 访问cAdVisor的webUI测试
http://10.0.0.92:18080/containers/
6. 配置Prometheus监控docker容器
[root@prometheus-server31 ~]# tail -6 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-cadVisor-exporter static_configs: - targets: - 10.0.0.92:18080 - 10.0.0.93:18080 # 热加载Prometheus [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload [root@prometheus-server31 ~]#
7. 验证监控结果并导入grafana模板
http://10.0.0.31:9090/targets?search= 6.grafana导入模板ID 11600
七、prometheus监控nginx
方案1>nginx-module-vts
1. 编译安装NGINX
1.1 安装编译工具 [root@elk91 ~]# apt -y install git wget gcc make zlib1g-dev build-essential libtool openssl libssl-dev 1.2 克隆nginx-module-vts模块 # 配置虚拟机VPN export https_proxy=http://10.0.0.1:7890 export http_proxy=http://10.0.0.1:7890 [root@elk91 ~]# env| grep http https_proxy=http://10.0.0.1:7890 http_proxy=http://10.0.0.1:7890 [root@elk91 ~]# [root@elk91 ~]# git clone https://github.com/vozlt/nginx-module-vts.git Cloning into 'nginx-module-vts'... remote: Enumerating objects: 1134, done. remote: Counting objects: 100% (262/262), done. remote: Compressing objects: 100% (87/87), done. remote: Total 1134 (delta 206), reused 175 (delta 175), pack-reused 872 (from 2) Receiving objects: 100% (1134/1134), 1.22 MiB | 935.00 KiB/s, done. Resolving deltas: 100% (746/746), done. [root@elk91 ~]# 1.3 下载nginx软件包 [root@elk91 ~]# wget http://nginx.org/download/nginx-1.27.3.tar.gz 1.4 解压nginx [root@elk91 ~]# tar xf nginx-1.27.3.tar.gz 1.5 配置nginx [root@elk91 ~]# cd nginx-1.27.3/ [root@elk91 nginx-1.27.3]# [root@elk91 nginx-1.27.3]# ./configure --prefix=/softwares/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --without-http_rewrite_module --with-http_stub_status_module --without-http_gzip_module --with-file-aio --with-stream --with-stream_ssl_module --with-stream_realip_module --add-module=/root/nginx-module-vts 1.6 编译并安装nginx make -j 2 && make install
2. 修改nginx的配置文件
[root@elk91 nginx-1.27.3]# vim /softwares/nginx/conf/nginx.conf ... http { vhost_traffic_status_zone; upstream novacao-promethues { server 10.0.0.31:9090; } ... server { ... location / { root html; # index index.html index.htm; proxy_pass http://novacao-promethues; } location /nginx_status { vhost_traffic_status_display; vhost_traffic_status_display_format html; } } }
3. 启动NGINX
[root@elk91 nginx-1.27.3]# /softwares/nginx/sbin/nginx -t nginx: the configuration file /softwares/nginx/conf/nginx.conf syntax is ok nginx: configuration file /softwares/nginx/conf/nginx.conf test is successful [root@elk91 nginx-1.27.3]# 1.9 启动nginx [root@elk91 nginx-1.27.3]# systemctl disable --now nginx Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable nginx Removed /etc/systemd/system/multi-user.target.wants/nginx.service. [root@elk91 nginx-1.27.3]# [root@elk91 nginx-1.27.3]# /softwares/nginx/sbin/nginx [root@elk91 nginx-1.27.3]#
4. 访问nginx的状态页面
http://10.0.0.91/nginx_status/ http://10.0.0.91/nginx_status/format/prometheus
5. 修改Prometheus的配置文件
[root@prometheus-server31 ~]# tail -6 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-nginx-vts-modules metrics_path: "/nginx_status/format/prometheus" static_configs: - targets: - 10.0.0.91:80 # 热加载 [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload [root@prometheus-server31 ~]#
6. 验证监控结果并导入grafana模板
# 查看Prometheus http://10.0.0.31:9090/targets?search= 1.12 导入模板ID 9785
方案2>安装nginx-vtx-exporter
# 前提也是需要编译好NGINX
1. 下载nginx-vtx-exporter
[root@elk92 ~]# wget https://github.com/sysulq/nginx-vts-exporter/releases/download/v0.10.8/nginx-vtx-exporter_0.10.8_linux_amd64.tar.gz [root@elk92 ~]# tar xf nginx-vtx-exporter_0.10.8_linux_amd64.tar.gz -C /usr/local/bin/ nginx-vtx-exporter [root@elk92 ~]# [root@elk92 ~]# ll /usr/local/bin/nginx-vtx-exporter -rwxr-xr-x 1 1001 avahi 7950336 Jul 11 2023 /usr/local/bin/nginx-vtx-exporter* [root@elk92 ~]#
2. 运行nginx-vtx-exporter
[root@elk92 ~]# nginx-vtx-exporter -nginx.scrape_uri=http://10.0.0.91/nginx_status/format/json 2025/03/27 16:25:19 Starting nginx_vts_exporter (version=, branch=, revision=) 2025/03/27 16:25:19 Build context (go=go1.20.5, user=, date=) 2025/03/27 16:25:19 Starting Server at : :9913 2025/03/27 16:25:19 Metrics endpoint: /metrics 2025/03/27 16:25:19 Metrics namespace: nginx 2025/03/27 16:25:19 Scraping information from : http://10.0.0.91/nginx_status/format/json
3. 访问nginx exporter的WebUI
http://10.0.0.93:9913/metrics
4. 配置prometheus采集nginx数据
[root@prometheus-server31 ~]# tail -12 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-nginx-vts-modules metrics_path: "/nginx_status/format/prometheus" static_configs: - targets: - 10.0.0.91:80 - job_name: "linux96-nginx-vtx-exporter" static_configs: - targets: - 10.0.0.92:9913 [root@prometheus-server31 ~]# [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload
5. 验证监控结果并导入grafana模板
导入grafana模板 2949
八、Prometheus监控redis
1. 部署Redis服务
1.拉取redis镜像 [root@elk92 ~]# docker pull redis:7.4.2-alpine 7.4.2-alpine: Pulling from library/redis ........... Digest: sha256:02419de7eddf55aa5bcf49efb74e88fa8d931b4d77c07eff8a6b2144472b6952 Status: Downloaded newer image for redis:7.4.2-alpine docker.io/library/redis:7.4.2-alpine 2.部署redis服务 [root@elk92 ~]# docker run -d --network host --name redis-server redis:7.4.2-alpine 14f6cd2c24f0735bb5bfd189730898b15380101dd11516ad2af3b7776a33a75a [root@elk92 ~]# [root@elk92 ~]# ss -ntl | grep 6379 LISTEN 0 511 0.0.0.0:6379 0.0.0.0:* LISTEN 0 511 [::]:6379 [::]:* [root@elk92 ~]#
2. 部署redis-exporter
wget https://github.com/oliver006/redis_exporter/releases/download/v1.69.0/redis_exporter-v1.69.0.linux-amd64.tar.gz 4.解压软件包 [root@elk93 ~]# tar xf redis_exporter-v1.69.0.linux-amd64.tar.gz -C /usr/local/bin/ redis_exporter-v1.69.0.linux-amd64/redis_exporter --strip-components=1 [root@elk93 ~]# [root@elk93 ~]# ll /usr/local/bin/redis_exporter -rwxr-xr-x 1 mysql fwupd-refresh 9638072 Mar 15 12:41 /usr/local/bin/redis_exporter* [root@elk93 ~]#
3. 运行redis exporter
[root@elk93 ~]# redis_exporter -redis.addr redis://10.0.0.92:6379 INFO[0000] Redis Metrics Exporter v1.69.0 build date: 2025-03-15-04:40:26 sha1: 71dbe37fb14a4ae2537c1790a239dc1e568ffba5 Go: go1.24.1 GOOS: linux GOARCH: amd64 INFO[0000] Providing metrics at :9121/metrics
4. 访问redis exporter的WebUI
http://10.0.0.93:9121/metrics
5. 配置Prometheus监控redis容器指标
[root@prometheus-server31 ~]# tail -7 /softwares/prometheus-2.53.4.linux-amd64/prometheus.yml - job_name: linux96-redis-exporter static_configs: - targets: - 10.0.0.93:9121 [root@prometheus-server31 ~]# [root@prometheus-server31 ~]# curl -X POST http://10.0.0.31:9090/-/reload [root@prometheus-server31 ~]#
6. 验证监控结果并导入grafana模板
验证Prometheus配置是否生效 http://10.0.0.31:9090/targets?search= 9.grafana导入模板ID 763 14091 14615
彩蛋、 grafana安装插件
1. 图表报错提示
Panel plugin not found: natel-discrete-panel 说明需要安装对应的插件,使用grafana客户端工具安装即可。
2. 安装指定插件
[root@prometheus-server31 ~]# ll /var/lib/grafana/ total 5236 drwxr-xr-x 5 grafana grafana 4096 Mar 27 16:53 ./ drwxr-xr-x 61 root root 4096 Mar 26 11:59 ../ drwxr-x--- 3 grafana grafana 4096 Mar 26 12:00 alerting/ drwx------ 2 grafana grafana 4096 Mar 26 12:00 csv/ -rw-r----- 1 grafana grafana 5337088 Mar 27 16:53 grafana.db drwx------ 2 grafana grafana 4096 Mar 26 12:00 png/ [root@prometheus-server31 ~]# [root@prometheus-server31 ~]# grafana-cli plugins install natel-discrete-panel ✔ Downloaded and extracted natel-discrete-panel v0.1.1 zip successfully to /var/lib/grafana/plugins/natel-discrete-panel Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary. [root@prometheus-server31 ~]# [root@prometheus-server31 ~]# ll /var/lib/grafana/ total 5240 drwxr-xr-x 6 grafana grafana 4096 Mar 27 16:56 ./ drwxr-xr-x 61 root root 4096 Mar 26 11:59 ../ drwxr-x--- 3 grafana grafana 4096 Mar 26 12:00 alerting/ drwx------ 2 grafana grafana 4096 Mar 26 12:00 csv/ -rw-r----- 1 grafana grafana 5337088 Mar 27 16:53 grafana.db drwxr-xr-x 3 root root 4096 Mar 27 16:56 plugins/ # 安装后会将插件存储在本地。 drwx------ 2 grafana grafana 4096 Mar 26 12:00 png/ [root@prometheus-server31 ~]#
3. 重启grafana使得插件生效
[root@prometheus-server31 ~]# systemctl restart grafana-server.service [root@prometheus-server31 ~]#
九、Prometheus监控MongoDB
1. 部署mongoDB服务
1.下载mongoDB镜像 [root@elk92 ~]# docker pull mongo:8.0.6-noble 8.0.6-noble: Pulling from library/mongo ................. Status: Downloaded newer image for mongo:8.0.6-noble docker.io/library/mongo:8.0.6-noble [root@elk92 ~]# 2.部署mongoDB服务 [root@elk92 ~]# docker run -d --name mongodb-server --network host mongo:8.0.6-noble 4b0f00dea78bb571c216c344984ced026c1210c94db147fdc9e32f549e3135de [root@elk92 ~]# [root@elk92 ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b0f00dea78b mongo:8.0.6-noble "docker-entrypoint.s…" 2 seconds ago Up 1 second mongodb-server [root@elk92 ~]# [root@elk92 ~]# ss -ntl | grep 27017 LISTEN 0 4096 0.0.0.0:27017 0.0.0.0:* [root@elk92 ~]#
2. 部署MongoDB的exporter
https://github.com/percona/mongodb_exporter/releases/download/v0.43.1/mongodb_exporter-0.43.1.linux-amd64.tar.gz 解压软件包 [root@elk91 ~]# tar xf mongodb_exporter-0.43.1.linux-amd64.tar.gz -C /usr/local/bin/ mongodb_exporter-0.43.1.linux-amd64/mongodb_exporter --strip-components=1 [root@elk91 ~]# [root@elk91 ~]# ll /usr/local/bin/mongodb_exporter -rwxr-xr-x 1 1001 geoclue 20467864 Dec 13 20:10 /usr/local/bin/mongodb_exporter*
3. 准备MongoDB测试数据
[root@elk91 ~]# vim insert_data.js // 创建数据库和集合 db = db.getSiblingDB('testdb'); // 插入用户数据(10条) for (let i = 1; i
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。