马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
构建单节点prometheus,摆设node exporter和mongo exporter。构建kibana大盘。包罗主机PU利用率,主机MEM利用率,主机网络包速率。mongo db大盘,包罗节点在线状态,读操纵耽误等
一、实验环境预备
- 节点信息:
- node0 (10.0.0.100):Prometheus、Grafana、node exporter
- node1 (10.0.0.110):node exporter
- node2 (10.0.0.120):MongoDB、mongo exporter
二、
#1. 安装 Prometheus 和 Grafana
- 操作步骤:
- #在 node0 上安装 Prometheus(官方二进制包)
- wget https://github.com/prometheus/prometheus/releases/download/v2.53.3/prometheus-2.53.3.linux-amd64.tar.gz
- tar -xvf prometheus-2.53.3.linux-amd64.tar.gz
- mv prometheus-2.53.3.linux-amd64 /opt/prometheus
- ln -s /opt/prometheus/prometheus /usr/local/bin/
- ln -s /opt/prometheus/promtool /usr/local/bin/
- #浏览器访问:
- http://10.0.0.100:9090/
- #创建service服务文件
- tee /etc/systemd/system/prometheus.service <<EOF
- [Unit]
- Description=Prometheus Server
- Documentation=https://prometheus.io/docs/introduction/overview/
- After=network.target
- [Service]
- Type=simple
- User=root
- Group=root
- ExecStart=/opt/prometheus/prometheus \
- --config.file=/opt/prometheus/prometheus.yml \
- --storage.tsdb.path=/opt/prometheus/data
- ExecReload=/bin/kill -HUP \$MAINPID
- Restart=on-failure
- [Install]
- WantedBy=multi-user.target
- EOF
- #重新加载 systemd 管理器配置
- systemctl daemon-reload
- #启动并设置开机自启
- systemctl start prometheus
- systemctl enable prometheus
- #安装 Grafana(官方仓库)
- curl -fsSL https://apt.grafana.com/gpg.key | gpg --dearmor -o /usr/share/keyrings/grafana.gpg
- echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
- apt update && apt install -y grafana
- systemctl enable --now grafana-server
复制代码 #2. 安装 node exporter
脚本 `install_node_exporter.sh`:摆设下令:- #在 node0、node1、node2 上执行
- bash install_node_exporter.sh
- scp install_node_exporter.sh node1:/root
- scp install_node_exporter.sh node2:/root
- ssh node1 "bash install_node_exporter.sh"
- ssh node2 "bash install_node_exporter.sh"
复制代码 #3. 安装 MongoDB 和 mongo exporter
操纵步调:- #在 node2 上安装 MongoDB
- curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
- echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-8.0.list
- apt update && apt install -y mongodb-org
- systemctl enable --now mongod
- #配置 MongoDB 认证
- mongosh admin --eval 'db.createUser({ user: "admin", pwd: "123456", roles: [ { role: "root", db: "admin" } ] })'
- sed -i '/^security:/a\ authorization: enabled' /etc/mongod.conf
- systemctl restart mongod
- #安装 mongo exporter
- wget https://github.com/percona/mongodb_exporter/releases/download/v0.43.1/mongodb_exporter-0.43.1.linux-amd64.tar.gz
- tar -xvf mongodb_exporter-0.43.1.linux-amd64.tar.gz
- mv mongodb_exporter-0.43.1.linux-amd64 /opt/mongodb_exporter
- chown -R prometheus.prometheus /opt/mongodb_exporter
- #创建服务文件
- cat > /lib/systemd/system/mongodb_exporter.service <<EOF
- [Unit]
- Description=MongoDB Exporter
- After=network.target
- [Service]
- Type=simple
- ExecStart=/opt/mongodb_exporter/mongodb_exporter --mongodb.uri=admin:123456@localhost:27017
- User=prometheus
- Group=prometheus
- Restart=on-failure
- [Install]
- WantedBy=multi-user.target
- EOF
- systemctl daemon-reload
- systemctl enable --now mongodb_exporter.service
复制代码 #4. 设置 Prometheus 抓取规则
- #修改 Prometheus 配置文件
- vim /opt/prometheus/prometheus.yml
- scrape_configs:
- - job_name: 'node'
- static_configs:
- - targets: ['10.0.0.100:9100', '10.0.0.110:9100', '10.0.0.120:9100']
- - job_name: 'mongodb'
- static_configs:
- - targets: ['10.0.0.120:9216']
- #检查配置文件语法
- promtool check config /opt/prometheus/prometheus.yml
- #重启 Prometheus
- systemctl restart prometheus
复制代码 #5. 设置 Grafana 仪表盘
1. 登录 Grafana:
http://10.0.0.100:3000 (默认账号/暗码:admin/admin)(新暗码123456)
2. 添加 Prometheus 数据源:
- 名称:Prometheus
- URL:`http://10.0.0.100:9090`
3. 导入仪表盘:
- Node Exporter 仪表盘(ID: 1860):
导入 ID 1860,包罗 CPU、内存、网络指标。
- MongoDB 仪表盘(ID: 13387):
导入 ID 13387,包罗节点状态、读写耽误等指标。
4. 自界说设置:- - 网络包速度:
- rate(node_network_receive_bytes_total{device!~"lo|tun.*"}[5m])
- rate(node_network_transmit_bytes_total{device!~"lo|tun.*"}[5m])
-
- - MongoDB 读延迟:
- mongodb_cmd_duration_seconds_count{operation="find"}
复制代码
三、验证与测试
1. Prometheus 验证:
curl http://10.0.0.100:9090/targets
应表现全部 exporter 状态为 `UP`。
2. Grafana 验证:
- 查抄仪表盘数据是否正常表现。
- 确认 CPU、内存、网络、MongoDB 指标是否更新。
- Node Exporter 仪表盘(ID 1860)表现 CPU、内存、网络指标。
- MongoDB 仪表盘(ID 13387)表现节点状态、读写耽误等。
|