loki是统信uos上轻量级日志聚合的优选方案,支持arm64/amd64双架构,可通过二进制离线部署、配套promtail采集及systemd服务化实现生产级日志收集与管理。

如果您希望在统信UOS系统上构建轻量级、低开销的日志聚合能力,Loki因其与Prometheus生态的高度协同及标签化日志索引设计而成为优选方案。以下是针对统信UOS(ARM64/amd64双架构)适配的多种Loki安装与集成方法:
一、二进制包离线部署(推荐用于生产环境或无外网场景)
该方式规避APT源依赖与架构兼容性风险,直接使用Grafana官方预编译的Linux二进制文件,适用于UOS Server V20全版本,支持aarch64与amd64原生运行。
1、创建统一部署目录并进入:
sudo mkdir -p /opt/loki && cd /opt/loki
2、根据CPU架构下载对应二进制包:
若为ARM64设备:wget https://github.com/grafana/loki/releases/download/v2.9.5/loki-linux-arm64.zip
若为amd64设备:wget https://github.com/grafana/loki/releases/download/v2.9.5/loki-linux-amd64.zip
3、解压并赋予执行权限:
unzip loki-linux-*.zip && chmod +x loki
4、下载本地配置模板并校验路径:
wget https://raw.githubusercontent.com/grafana/loki/v2.9.5/cmd/loki/loki-local-config.yaml -O loki-config.yaml
确认配置中storage_config.filesystem.directory字段值为/data/loki(需提前创建)
5、创建数据目录并授权:
sudo mkdir -p /data/loki && sudo chown $USER:$USER /data/loki
6、以守护进程方式启动Loki:
nohup ./loki -config.file=loki-config.yaml > /var/log/loki.log 2>&1 &
二、Promtail日志采集器部署(必须与Loki配套启用)
Promtail负责从UOS主机采集系统日志、服务日志及自定义路径日志,并按标签(如job、host、path)结构化推送至Loki,是日志流闭环的关键组件。
1、下载对应架构的Promtail二进制:
ARM64:wget https://github.com/grafana/loki/releases/download/v2.9.5/promtail-linux-arm64.zip
amd64:wget https://github.com/grafana/loki/releases/download/v2.9.5/promtail-linux-amd64.zip
2、解压并重命名为标准名称:
unzip promtail-linux-*.zip && mv promtail-linux-* promtail && chmod +x promtail
3、获取Promtail配置模板:
wget https://raw.githubusercontent.com/grafana/loki/v2.9.5/clients/cmd/promtail/promtail-local-config.yaml -O promtail-config.yaml
4、编辑配置文件,关键修改项如下:
在clients部分将url改为http://127.0.0.1:3100/loki/api/v1/push
在scrape_configs部分确保static_configs.targets包含本机地址,且pipeline_stages包含docker、journal或syslog等适配UOS日志源的解析器
5、启动Promtail:
nohup ./promtail -config.file=promtail-config.yaml > /var/log/promtail.log 2>&1 &
三、systemd服务化封装(实现开机自启与状态管理)
将Loki与Promtail注册为systemd服务,可统一纳管其生命周期、日志输出与资源限制,符合UOS服务器版运维规范要求。
1、创建Loki服务单元文件:
sudo tee /etc/systemd/system/loki.service [Unit]
Description=Loki Log Aggregator
After=network.target
[Service]
Type=simple
User=$USER
WorkingDirectory=/opt/loki
ExecStart=/opt/loki/loki -config.file=/opt/loki/loki-config.yaml
Restart=on-failure
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
2、创建Promtail服务单元文件:
sudo tee /etc/systemd/system/promtail.service [Unit]
Description=Promtail Log Collector
After=loki.service
Wants=loki.service
[Service]
Type=simple
User=$USER
WorkingDirectory=/opt/loki
ExecStart=/opt/loki/promtail -config.file=/opt/loki/promtail-config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
3、重载systemd配置并启用服务:
sudo systemctl daemon-reload
sudo systemctl enable loki promtail
sudo systemctl start loki promtail
4、验证服务运行状态:
sudo systemctl status loki --no-pager -l | grep -E "Active:|Process:"
sudo systemctl status promtail --no-pager -l | grep -E "Active:|Process:"
四、Grafana集成与Loki数据源配置
Grafana作为可视化前端,通过Loki数据源实现日志的标签过滤、时间范围检索与日志上下文联动,是UOS日志分析工作流的最终呈现层。
1、安装Grafana(UOS适配版):
wget https://dl.grafana.com/oss/release/grafana-10.4.3.linux-amd64.tar.gz
若为ARM64:wget https://dl.grafana.com/oss/release/grafana-10.4.3.linux-arm64.tar.gz
解压至/opt/grafana,创建软链接并配置systemd服务(过程同Loki)
2、启动Grafana后访问http://localhost:3000,默认凭据为admin/admin
3、进入Configuration → Data Sources → Add data source,选择Loki
4、在HTTP设置中填写URL:
若Loki与Grafana同机:http://127.0.0.1:3100
若分离部署:http://loki-server-ip:3100
5、点击Save & test,显示Data source is working即完成集成
五、UOS系统日志源适配增强配置
统信UOS默认使用systemd-journald,但其日志格式与路径与标准Linux存在差异,需针对性调整Promtail配置以完整捕获journal、secure、messages等核心日志流。
1、确认journald日志持久化已启用:
sudo mkdir -p /var/log/journal
sudo systemd-journalctl --update-catalog
sudo systemctl restart systemd-journald
2、在promtail-config.yaml的scrape_configs下追加journald采集段:
scrape_configs:
- job_name: journal
journal: {}
pipeline_stages:
- labels:
job: journal
3、补充传统syslog路径采集(适配rsyslog转发场景):
- job_name: syslog
static_configs:
- targets: [localhost]
labels:
job: syslog
host: ${HOSTNAME}
file_sd_configs:
- files:
- /var/log/*.log
- /var/log/messages
- /var/log/secure
4、重启Promtail服务使配置生效:
sudo systemctl restart promtail










