安装并运行 node_exporter
- 下载 node_exporter
- 解压到指定 /app/exporter
- 编写启动脚本 start.sh,并给予权限
chmod + x start.sh
,脚本内容如下:
bash
#!/bin/bash
nohup /app/exporter/node_exporter-1.6.1.linux-amd64/node_exporter > node_exporter.log &
- 执行命令
./start.sh
启动 node_exporter.
验证 node_exporter 是否启动成功:
- 查看同级目录下的 node_exporter.log 日志
- 浏览器访问
host:9100
,是否看到下面的页面
安装并运行 kafka_exporter
- 下载 node_exporter
- 解压到指定 /app/exporter
- 编写启动脚本 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 的集群地址(注意:一定要写上所有的节点地址)
- 执行命令
./start.sh
启动 kafka_exporter.
验证 kafka_exporter 是否启动成功:
- 查看同级目录下的 kafka_exporter.log 日志
- 浏览器访问
host:9308
,是否看到下面的页面
安装并运行 Prometheus
- 下载 Prometheus
- 解压到 /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']
- 编写启动脚本 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 是否启动成功:
tail -fn 1000 prometheus.log
。- 浏览器打开
http://host:9090
,是否可以看到 prometheus 的 web ui.
验证 node_exporter 配置和 kafka_exporter 监控配置是否生效: 主页分别执行以下命令,看是否有数据。
rate(node_cpu_seconds_total{mode="system"}[1m])
,验证 node_exporter 是否正常。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 进行登录即可
第六步:使用测试
-
添加数据源
选择普罗米修斯作为数据源
-
导入 node 仪表盘
输入:12633
,点击右边的Load
。
选择 prometheus
,然后 Import
。
最后,顺便点一下其他地方,选择保存面板
。
- 导入 kafka 仪表盘
和导入 node 一样的操作,只不过导入的 ID 变为了 7589
。
其他步骤省略,看最终成果。
安装运行 alertmanager
暂时不需要,补一个链接,这里有docker安装prometheus、Grafana、node_export、alertmanager。