Centos安装Prometheus、Grafana监控Kafka及Linux主机

安装并运行 node_exporter

  1. 下载 node_exporter
  2. 解压到指定 /app/exporter
  3. 编写启动脚本 start.sh,并给予权限 chmod + x start.sh,脚本内容如下:
bash 复制代码
#!/bin/bash                                                                                     
nohup /app/exporter/node_exporter-1.6.1.linux-amd64/node_exporter > node_exporter.log &
  1. 执行命令 ./start.sh 启动 node_exporter.

验证 node_exporter 是否启动成功:

  1. 查看同级目录下的 node_exporter.log 日志
  2. 浏览器访问 host:9100,是否看到下面的页面

安装并运行 kafka_exporter

  1. 下载 node_exporter
  2. 解压到指定 /app/exporter
  3. 编写启动脚本 start.sh,并给予权限 chmod + x start.sh,脚本内容如下:
bash 复制代码
#!/bin/bash                                                                                     
nohup /app/exporter/kafka_exporter-1.7.0.linux-amd64/kafka_exporter --kafka.server=two:9092 --kafka.server=three:9092 --kafka.server=four:9092 > kafka_exporter.log &

其中 --kafka.server=two:9092 --kafka.server=three:9092 --kafka.server=four:9092 的作用是指定 Kafka 的集群地址(注意:一定要写上所有的节点地址)

  1. 执行命令 ./start.sh 启动 kafka_exporter.

验证 kafka_exporter 是否启动成功:

  1. 查看同级目录下的 kafka_exporter.log 日志
  2. 浏览器访问 host:9308,是否看到下面的页面

安装并运行 Prometheus

  1. 下载 Prometheus
  2. 解压到 /app/prometheus 目录,然后进入解压后的目录,编写配置文件。
yml 复制代码
# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
  
  # 新增部分: node_exporter 本机服务器监控
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

  # 新增部分: kafka_exporter kafka集群监控 
  - job_name: 'kafka'
    static_configs:
      - targets: ['localhost:9308']
  1. 编写启动脚本 start.sh,并给予执行权限 chmod +x start.sh,脚本内容如下:
shell 复制代码
#!/bin/bash 
nohup /app/prometheus/prometheus-2.48.0-rc.2.linux-amd64/prometheus --config.file=prometheus.yml > prometheus.log & 

验证 prometheus 是否启动成功:

  1. tail -fn 1000 prometheus.log
  2. 浏览器打开 http://host:9090,是否可以看到 prometheus 的 web ui.

验证 node_exporter 配置和 kafka_exporter 监控配置是否生效: 主页分别执行以下命令,看是否有数据。

  1. rate(node_cpu_seconds_total{mode="system"}[1m]),验证 node_exporter 是否正常。
  2. kafka_topic_partitions,验证 kafka_exporter 是否正常。

有数据就正常

安装运行并配置 grafana

这里我采用了 docker 安装,简单快速,后面可能会补充二进制的安装方式

第一步:确保安装有 docker

查看 docker 版本

复制代码
docker -v

第二步:拉取镜像

镜像有哪些版本,可以通过查看一个 docker 镜像有哪些版本查看

shell 复制代码
# 你也可以直接拉docker pull grafana/grafana, 即拉取最新的镜像docker pull grafana/grafana:lastest
docker pull grafana/grafana:9.3.2

第三步:准备相关挂载目录及文件

准备目录

bash 复制代码
# /opt/grafana/data目录,准备用来挂载放置grafana的数据
# /opt/grafana/plugins目录,准备用来放置grafana的插件
# /opt/grafana/config目录,准备用来挂载放置grafana的配置文件
mkdir -p /opt/grafana/{data,plugins,config}
# 授权相关文件夹权限
chmod -R 777 /opt/grafana/data
chmod -R 777 /opt/grafana/plugins
chmod -R 777 /opt/grafana/config

准备配置文件

bash 复制代码
# 先临时启动一个容器
docker run --name grafana-tmp -d -p 3000:3000 grafana/grafana:9.3.2
# 将容器中默认的配置文件拷贝到宿主机上
docker cp grafana-tmp:/etc/grafana/grafana.ini /opt/grafana/config/grafana.ini
# 移除临时容器
docker stop grafana-tmp
docker rm grafana-tmp

# 修改配置文件(需要的话)
# vim /opt/grafana/config/grafana.ini

第四步:启动容器

bash 复制代码
# 启动prometheus
# 环境变量GF_SECURITY_ADMIN_PASSWORD:指定admin的密码
# 环境变量GF_INSTALL_PLUGINS:指定启动时需要安装得插件
#         grafana-clock-panel代表时间插件
#         grafana-simple-json-datasource代表json数据源插件
#         grafana-piechart-panel代表饼图插件
docker run -d \
    -p 3000:3000 \
    -net=host \
    --name=grafana \
    -v /etc/localtime:/etc/localtime:ro \
    -v /opt/grafana/data:/var/lib/grafana \
    -v /opt/grafana/plugins/:/var/lib/grafana/plugins \
    -v /opt/grafana/config/grafana.ini:/etc/grafana/grafana.ini \
    -e "GF_SECURITY_ADMIN_PASSWORD=admin" \
    -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \
    grafana/grafana:9.3.2

如果容器没有起来,报错下载插件失败的话,-e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \ 这行可以先删除掉,后面手动下载插件解压放到/opt/grafana/plugins/中。

第五步:访问测试

访问{ip}:3000即可,使用账密 admin/admin 进行登录即可

第六步:使用测试

  1. 添加数据源

    选择普罗米修斯作为数据源

  2. 导入 node 仪表盘

输入:12633,点击右边的Load

选择 prometheus,然后 Import

最后,顺便点一下其他地方,选择保存面板

  1. 导入 kafka 仪表盘

和导入 node 一样的操作,只不过导入的 ID 变为了 7589

其他步骤省略,看最终成果。

安装运行 alertmanager

暂时不需要,补一个链接,这里有docker安装prometheus、Grafana、node_export、alertmanager

相关推荐
invicinble29 分钟前
对于springboot
java·spring boot·后端
码界奇点1 小时前
基于Spring Boot与Vue的校园后台管理系统设计与实现
vue.js·spring boot·后端·毕业设计·源代码管理
爱编程的小庄1 小时前
Rust 发行版本及工具介绍
开发语言·后端·rust
Apifox.3 小时前
测试用例越堆越多?用 Apifox 测试套件让自动化回归更易维护
运维·前端·后端·测试工具·单元测试·自动化·测试用例
sunnyday04263 小时前
Nginx与Spring Cloud Gateway QPS统计全攻略
java·spring boot·后端·nginx
康王有点困3 小时前
Link入门
后端·flink
海南java第二人3 小时前
Spring Boot全局异常处理终极指南:打造优雅的API错误响应体系
java·spring boot·后端
小楼v4 小时前
消息队列的核心概念与应用(RabbitMQ快速入门)
java·后端·消息队列·rabbitmq·死信队列·交换机·安装步骤
小北方城市网4 小时前
接口性能优化实战:从秒级到毫秒级
java·spring boot·redis·后端·python·性能优化
鸡蛋豆腐仙子4 小时前
Spring的AOP失效场景
java·后端·spring