生产环境部署prometheus+grafana+kafka+redis+nginx+node+postgres+mtail

该博客介绍了如何在生产环境中部署Prometheus以监控多个服务,包括node_exporter, redis_exporter, nginx_vts_exporter, postgres_exporter, kafka_exporter等。详细阐述了各个组件的安装、配置和集成到Prometheus的过程,以及使用grafana进行数据展示的方法。" 107516545,9109004,C语言中的分支结构:if-else与switch,"['C语言', '编程基础', '控制流']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Prometheus数据收集方式

1、Pull 模式:Prometheus 主动向目标服务发起 HTTP 请求,拉取数据并存储。
2、Push 模式:目标服务主动向 Prometheus 推送数据。
3、Exporter 模式:使用 Exporter 进程采集目标服务的指标数据,Prometheus 通过访问 Exporter 的 HTTP 接口来拉取数据。
4、Service Discovery 模式:Prometheus 可以与多种服务发现机制集成,如 Kubernetes、Consul、Zookeeper 等。Prometheus 会从服务发现中心获取目标服务的信息,并使用 Pull 或 Exporter 模式采集数据。

教程介绍

主要以prometheus提供采集平台(http-server)去主动拉取(pull)各服务探针数据到http://IP/metrics(指标)内,后在grafana(图形化界面)以Prometheus为(datasources)数据源进行所有相关服务数据的展示。

实验环境同网段虚拟机为例:(相关软件包可百度网盘或官网下载)
在这里插入图片描述
下面安装步骤所需最全软件包,目前最新版本(百度网盘)
zabbix:https://www.cnblogs.com/clsn/p/7885990.html#auto-id-71
链接:https://pan.baidu.com/s/1ATEy9VkemNHYMyVSxOL0Ew
提取码:ujbz

github官网下载地址:
grafana展示模板下载地址:
#grafana下载
#prometheus下载
#node_exporter下载 模板:8919
node数据大屏下载地址模板:11074
#mysql_exporter 下载 7362
#redis_export 下载 模板:763/8919
https://grafana.com/api/dashboards/763/revisions/1/download
https://github.com/pingcap/tidb-ansible/tree/master/scripts #json模板下载
#nginx_export下载 模板:2949/462
#kafka_export下载 模板:7589端口9308 端口9991
https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-0-8-2.yml
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.6/jmx_prometheus_javaagent-0.6.jar
#Postgresql: 下载地址 端口:9187 模块:9628
blackbox_exporter模板:9965
docker监控模板下载链接
yaml文件数值格式化
canal告警解释及

一、虚拟机h1部署prometheus,保证各服务器与本服务器相通

1、默认端口:9090 安装目录(自选):/usr/local/prometheus
2、prometheus.service 可修改端口。
3、上传tar包并解压(prometheus-2.32.0-rc.1.linux-amd64.tar.gz)

tar -zxvf prometheus-2.32.0-rc.1.linux-amd64.tar.gz -C /usr/local/
mv  /usr/local/prometheus-2.32.0-rc.1.linux-amd64.tar.gz /usr/local/prometheus

在这里插入图片描述

4、Prometheus.yml文件内容格式参考(修改yml文件后,必须重启prometheus)
在这里插入图片描述

5、启动prometheus,将prometheus.services上传到/usr/lib/systemd/system目录下实现开机自启

cat prometheus.services
[Unit]                                                                                                                        
Description=Prometheus Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=/u01/prometheus/
ExecStart=/u01/prometheus/prometheus --storage.tsdb.path=/u01/prometheus/data/  --storage.tsdb.retention.size=120GB --storage.tsdb.retention.time=1825d --config.file=/u01/prometheus/prometheus.yml --log.format=json --log.level=info --web.enable-lifecycle      ###120 GB作为存储空间,并将5年作为保留数据的时间范围
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=no

[Install]
WantedBy=default.target




cp ./prometheus.services  /usr/lib/systemd/system
systemctl daemon-reload     # 在system目录下修改文件都需重新加载守护进程
systemctl start prometheus  #目前没写杀进程,需手工kill
systemctl enable prometheus

手动启动方式:./prometheus --config.file=prometheus.yml --web.listen-address=:9090
./prometheus
6、启动成功后,可直接访问ip:9090验证。查看是否生成目标。(以下都可此方式验证)##注意防火墙可能限制端口
在这里插入图片描述

二、每台(h1,h2,h3)部署node_exporter,

1、默认端口:9100 模块:8919 安装目录(自选):/usr/local/
2、上传tar包并解压,将node_exporter.service传输到/usr/lib/systemd/system目录下。


tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local/
mv  /usr/local/node_exporter-1.3.1.linux-amd64.tar.gz /usr/local/node_exporter

3、启动方式

cp ./node_exporter.services  /usr/lib/systemd/system
systemctl daemon-reload 
system start node_exporter.service
system enable node_exporter.service
########################
./node_exporter   
./node_exporter  --web.listen-address=:9100 #可用于修改端口

在这里插入图片描述

4、修改h1虚机prometheus目录下prometheus.yml文件,如下。重启prometheus,访问验证。
在这里插入图片描述

5、可查看图形验证。
在这里插入图片描述

三、虚拟机h2上部署redis_exporter,集群只需一台安装即可

1.默认端口:9121 模块:763/8919安装目录(自选):/usr/local
2、上传tar包并解压

tar -zxvf redis_exporter-v1.32.0.linux-amd64.tar.gz -C /usr/local/
mv redis_exporter-v1.32.0.linux-amd64 redis_exporter

3、启动方式(需要修改redis_exporter.service文件中ip及password)

Systemctl start redis_exporter
Systemctl enable redis_exporter
手动启动:./redis_exporter -redis.addr 192.168.174.22:6379 -redis.password 123456

4、修改prometheus.yml 文件,重启prometheus.访问验证
在这里插入图片描述

四、虚拟机h3部署nginx_vts_exporter

1、部署nginx-vts-exporter,nginx需要两个模块,需重新编译,不安装!!!!默认端口:9913 模块:2949/462
2、解压编译安装。
编译过程中,可能缺少pcre,直接yum 安装pcre、pcre-devel

(1)./configure   --add-module=/root/nginx-module-vts-master   --with-http_stub_status_module
(2)make
(3)备份/usr/local/nginx/sbin/nginx   cp本地目录下objc/nginx到/usr/local/nginx/sbin
(4)查看是否编译成功: nginx -V 

在这里插入图片描述

(5)修改nginx.conf添加两行

vhost_traffic_status_zone;
vhost_traffic_status_filter_by_host on;

在这里插入图片描述

(5)所有conf.d下配置文件加入(实验环境存在两个web,所以需在各web.conf里添加以下配置)

location /status {
            stub_status on;
            access_log on;
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
}

在这里插入图片描述
(6)重新加载nginx -s reload
(7)启动方式:(service文件需修改ip:port)
(8)修改完成后,上传解压nginx-vts-exporter。上传service文件。

Systemctl start nginx-vts-exporter
Systemctl enable nginx-vts-exporter

手动起服务:

nohup ./nginx-vts-exporter -nginx.scrape_uri=http://192.168.174.33:8888/status/format/json  &启动nginx :9913
nohup ./nginx-vts-exporter -nginx.scrape_uri=http://192.168.174.33:9090/status/format/json -telemetry.address :9914 &  启动:9914端口

(9)修改prometheus.yml文件,重启prometheus服务。
在这里插入图片描述
在这里插入图片描述

五、虚拟机h1上部署postgres_exporter / mysqld_exporter

postgres_exporter

1、默认端口:9187 模块:9628
2、上传tar包并解压,custom.yaml文件可自行编写
3、启动方式

(1)可添加vim /etc/profile(永久),或直接运行(为临时)
export DATA_SOURCE_NAME="postgresql://user:password@192.168.174.11:5432/postgres?sslmode=disable"
(2)
export PG_EXPORTER_EXTEND_QUERY_PATH="/usr/local/postgres_exporter/custom.yaml"

(3)上传tar包并解压,后可直接执行
nohup ./postgres_exporter &

3、修改prometheus.yml重启prometheus,
在这里插入图片描述
在这里插入图片描述

mysqld_exporter

vim .my.cnf
[client]
user=user
password=passswd
host=host_ip
port=3306
Prometheus。yml
  - job_name: 'mysqld_exporter_targets'
    static_configs:
      - targets:
        - ip:9104                                                   
        - ip:9104

六、每台部署kafka_exporter

1、部署的jmx默认端口:9991 模块:7589
2、上传解压。

编辑添加以下两行

vim /u01/apps/kafka/kafka/bin/kafka-server-start.sh (需修改文件实际路径)
(1)export JMX_PORT="9999"
(2)
export KAFKA_OPTS="-javaagent:/u01/apps/pro/jmx_prometheus_javaagent-0.6.jar=9991:/u01/apps/pro/kafka-0-8-2.yml"

prometheus.yml文件修改:

 - job_name: "kafka"
    static_configs:
      - targets: ["192.168.174.22:9991"]

JMX 是 Java 的一个监控管理框架,Kafka 实现了;9999 是 Kafka 的,通过 JMX_PORT 来配置,配置了这个环境变量之后 Kafka 就会开启 JMX 功能,通过这个端口将监测指标暴露出来

修改完成后,重启kafka即可

七、jar 包监控

大致格式就是:
java -javaagent: jmx-xxx.jar的目录 =jmx-xxx.jar启动端口号:/jmx_exporter.yml文件路径 -jar xxx.jar(你想监控的项目)

#进程启动命令:

java -javaagent:jmx_prometheus_javaagent-0.12.0.jar=6666:./jmx_prometheus.yaml -jar yourJar.jar
FROM ubuntu:16.04 as jar
WORKDIR /
RUN apt-get update -y
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y wget
RUN wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.13.0/jmx_prometheus_javaagent-0.13.0.jar
FROM tomcat:jdk8-openjdk-slim
ENV   "JAVA_OPTS ": "-javaagent:/jmx_prometheus_javaagent-0.13.0.jar=6666:/prometheus-jmx-config.yaml"
ADD prometheus-jmx-config.yaml /prometheus-jmx-config.yaml
COPY --from=jar /jmx_prometheus_javaagent-0.13.0.jar /jmx_prometheus_javaagent-0.13.0.jar
docker build . -t ccr.ccs.tencentyun.com/imroc/tomcat:jdk8
# 所在目录
cd /u01/prometheus/jmx_exporter
# 新建配置文件jmx_prometheus.yaml
vim jmx_prometheus.yaml (可以只有前两行)
 
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
rules:
 - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
   name: os_$1
   type: GAUGE
   attrNameSnakeCase: true
  - pattern: ".*"
Prometheus yaml文件
scrape_configs:
  - job_name: 'java'
    scrape_interval: 30s
    static_configs:
    - targets:
      - '192.168.174.11:6666' // 代表先前启动的agent的地址和端口

八、blackbox_exporter部署icmp、tcp

grafana-cli plugins install grafana-piechart-panel

1、prometheus.yml IC

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@王先生1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值