Kylin Linux Advanced Server V10 离线安装 Prometheus + Grafana + node_exporter指南
离线安装 Prometheus + Grafana + InfluxDB 指南 (Kylin Linux Advanced Server V10)
最终结果展示
准备工作
- 在一台有互联网连接的机器上下载所有必要的安装包和依赖
- 准备一个USB驱动器或内部网络共享位置来传输文件
- 确保目标服务器有足够的资源运行这些服务
下载离线安装包
在有网络的机器上下载以下组件:
Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-arm64.tar.gz
Grafana
wget https://dl.grafana.com/oss/release/grafana-10.2.3.linux-arm64.tar.gz
InfluxDB
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.4-linux-arm64.tar.gz
如果下载失败,也可以到此链接下载所有所需的工具:https://download.csdn.net/download/sunnygirltest/91149080
传输文件到目标服务器
将下载的tar.gz文件复制到目标服务器的/opt目录下:
cp *.tar.gz /opt/
安装步骤
1. 安装依赖
# 创建离线安装目录
mkdir -p /opt/monitoring
cd /opt/monitoring# 解压所有组件
tar -xzf /opt/prometheus-*.linux-arm64.tar.gz
tar -xzf /opt/grafana-*.linux-arm64.tar.gz
tar -xzf /opt/influxdb2-*-linux-arm64.tar.gz# 创建符号链接方便管理
ln -s prometheus-* prometheus
ln -s grafana-* grafana
ln -s influxdb2-* influxdb
2. 配置InfluxDB
# 创建数据目录
mkdir -p /var/lib/influxdb# 创建配置文件
cat > /opt/monitoring/influxdb/config.yml <<EOF
bolt-path: "/var/lib/influxdb/influxd.bolt"
engine-path: "/var/lib/influxdb/engine"
storage-cache-max-memory-size: 1073741824
EOF# 创建systemd服务
cat > /etc/systemd/system/influxdb.service <<EOF
[Unit]
Description=InfluxDB
After=network.target[Service]
User=root
Group=root
ExecStart=/opt/monitoring/influxdb/influxd --config /opt/monitoring/influxdb/config.yml
Restart=always[Install]
WantedBy=multi-user.target
EOF# 启动InfluxDB
systemctl daemon-reload
systemctl enable influxdb
systemctl start influxdb# 等待几秒让服务启动
sleep 10# 初始化InfluxDB (设置管理员用户和密码)
/opt/monitoring/influxdb/influx setup \--username admin \--password admin123 \--org myorg \--bucket mybucket \--token mytoken \--force
3. 配置Prometheus
# 创建数据目录
mkdir -p /var/lib/prometheus# 创建配置文件
cat > /opt/monitoring/prometheus/prometheus.yml <<EOF
global:scrape_interval: 15sevaluation_interval: 15sscrape_timeout: 10sscrape_configs:- job_name: 'prometheus'static_configs:- targets: ['192.168.1.126:9090']metrics_path: /metrics- job_name: 'influxdb'static_configs:- targets: ['192.168.1.126:8086']metrics_path: /metrics- job_name: 'node_exporter'static_configs:- targets: ['192.168.1.X1:9200']- targets: ['192.168.1.X2:9200']- targets: ['192.168.1.X3:9200']metrics_path: /metrics
EOF# 创建systemd服务
cat > /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
After=network.target[Service]
User=root
Group=root
ExecStart=/opt/monitoring/prometheus/prometheus \--config.file=/opt/monitoring/prometheus/prometheus.yml \--storage.tsdb.path=/var/lib/prometheus \--web.console.templates=/opt/monitoring/prometheus/consoles \--web.console.libraries=/opt/monitoring/prometheus/console_libraries
Restart=always[Install]
WantedBy=multi-user.target
EOF# 启动Prometheus
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
4. 配置Grafana
# 创建数据目录
mkdir -p /var/lib/grafana# 创建systemd服务
cat > /etc/systemd/system/grafana.service <<EOF
[Unit]
Description=Grafana
After=network.target[Service]
User=root
Group=root
ExecStart=/opt/monitoring/grafana/bin/grafana-server \--homepath=/opt/monitoring/grafana \--config=/opt/monitoring/grafana/conf/defaults.ini \--packaging=tar \cfg:default.paths.logs=/var/log/grafana \cfg:default.paths.data=/var/lib/grafana \cfg:default.paths.plugins=/var/lib/grafana/plugins \cfg:default.paths.provisioning=/opt/monitoring/grafana/conf/provisioning
Restart=always[Install]
WantedBy=multi-user.target
EOF# 启动Grafana
systemctl daemon-reload
systemctl enable grafana
systemctl start grafana
验证安装
- 检查服务状态:
systemctl status influxdb prometheus grafana
- 访问服务:
- Prometheus: http://服务器IP:9090
- Grafana: http://服务器IP:3000 (默认用户名/密码: admin/admin)
- InfluxDB: http://服务器IP:8086
配置Grafana数据源
- 登录Grafana (http://服务器IP:3000)
- 添加数据源:
- 选择Prometheus
- URL: http://localhost:9090
- 保存并测试
防火墙配置(如果需要)
firewall-cmd --permanent --add-port=3000/tcp # Grafana
firewall-cmd --permanent --add-port=9090/tcp # Prometheus
firewall-cmd --permanent --add-port=8086/tcp # InfluxDB
firewall-cmd --reload
注意事项
- 所有服务都以root用户运行,生产环境应考虑创建专用用户
- 密码和token在生产环境中应更改为更安全的选项
- 根据服务器资源情况调整配置参数
- 麒麟系统可能有特殊的安全限制,如遇到权限问题可能需要额外配置
希望这个指南能帮助您在麒麟系统上成功安装监控套件!
在 Kylin Linux Advanced Server V10 (aarch64架构) 上安装配置 node_exporter-1.9.1.linux-arm64.tar.gz
的完整步骤如下:
1. 下载 node_exporter
如果已有离线包,跳过此步。否则在有网络的机器下载:
wget https://github.com/prometheus/node_exporter/releases/download/v1.9.1/node_exporter-1.9.1.linux-arm64.tar.gz
传输到目标服务器:
scp node_exporter-1.9.1.linux-arm64.tar.gz root@<目标服务器IP>:/opt/
2. 安装 node_exporter
解压并安装
cd /opt
tar -xzf node_exporter-1.9.1.linux-arm64.tar.gz
mv node_exporter-1.9.1.linux-arm64 /usr/local/node_exporter
ln -s /usr/local/node_exporter/node_exporter /usr/local/bin/node_exporter
创建系统用户(安全考虑)
useradd -rs /bin/false node_exporter
chown -R node_exporter:node_exporter /usr/local/node_exporter
3. 配置 systemd 服务
创建服务文件
cat > /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=Node Exporter
After=network.target[Service]
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/bin/node_exporter/node_exporter \--web.listen-address=:9100 \--collector.systemd \--collector.processes \--collector.filesystem \--collector.cpu \--collector.meminfo
Restart=always[Install]
WantedBy=multi-user.target
EOF
重载并启动服务
systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter
4. 验证服务
检查服务状态
systemctl status node_exporter
正常输出应显示 active (running)
。
测试指标采集
curl http://localhost:9100/metrics
应返回大量以 node_
开头的监控指标。
5. 配置 Prometheus 采集
编辑 Prometheus 配置文件 /opt/monitoring/prometheus/prometheus.yml
,在 scrape_configs
部分添加:
- job_name: 'node_exporter'static_configs:- targets: ['localhost:9100']
重启 Prometheus:
systemctl restart prometheus
6. 防火墙放行(可选)
如果需要从外部访问:
firewall-cmd --permanent --add-port=9100/tcp
firewall-cmd --reload
7. 在 Grafana 中展示
- 访问 Grafana(
http://<服务器IP>:3000
) - 导入 Node Exporter 仪表盘:
- 点击 “+” → “Import”
- 输入仪表盘 ID
16098
(当前比较使用的模板) - 选择 Prometheus 数据源
常见问题
问题 1:启动失败提示端口占用
netstat -tlnp | grep 9100
如果端口被占用,修改服务文件的 ExecStart
行,添加 --web.listen-address=:9101
换端口。
问题 2:麒麟系统权限问题
如果 SELinux 或安全模块拦截,尝试临时关闭:
setenforce 0 # 临时禁用 SELinux
或添加规则:
audit2allow -a -M node_exporter_policy
semodule -i node_exporter_policy.pp
卸载方法
systemctl stop node_exporter
systemctl disable node_exporter
rm -rf /usr/local/node_exporter /etc/systemd/system/node_exporter.service
userdel node_exporter
systemctl daemon-reload
通过以上步骤,node_exporter
会以安全的方式在 Kylin 系统上运行,并将主机监控数据提供给 Prometheus。