Kylin Linux Advanced Server V10 离线安装 Prometheus + Grafana + node_exporter指南

发布于:2025-06-28 ⋅ 阅读:(12) ⋅ 点赞:(0)

离线安装 Prometheus + Grafana + InfluxDB 指南 (Kylin Linux Advanced Server V10)

最终结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

准备工作

  1. 在一台有互联网连接的机器上下载所有必要的安装包和依赖
  2. 准备一个USB驱动器或内部网络共享位置来传输文件
  3. 确保目标服务器有足够的资源运行这些服务

下载离线安装包

在有网络的机器上下载以下组件:

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: 15s
  evaluation_interval: 15s
  scrape_timeout: 10s

scrape_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

验证安装

  1. 检查服务状态:
systemctl status influxdb prometheus grafana
  1. 访问服务:
    • Prometheus: http://服务器IP:9090
    • Grafana: http://服务器IP:3000 (默认用户名/密码: admin/admin)
    • InfluxDB: http://服务器IP:8086

配置Grafana数据源

  1. 登录Grafana (http://服务器IP:3000)
  2. 添加数据源:
    • 选择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

注意事项

  1. 所有服务都以root用户运行,生产环境应考虑创建专用用户
  2. 密码和token在生产环境中应更改为更安全的选项
  3. 根据服务器资源情况调整配置参数
  4. 麒麟系统可能有特殊的安全限制,如遇到权限问题可能需要额外配置

希望这个指南能帮助您在麒麟系统上成功安装监控套件!

在 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 中展示

  1. 访问 Grafana(http://<服务器IP>:3000
  2. 导入 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。


网站公告

今日签到

点亮在社区的每一天
去签到