一、环境准备¶
7.1.1 安装Grafana¶
官网下载地址: https://grafana.com/grafana/download
由于官网下载很慢,所以可以配置一个阿里云的源
vi /etc/yum.repos.d/grafana.repo #内容如下
[grafana]
name=grafana
baseurl=https://mirrors.aliyun.com/grafana/yum/rpm
repo_gpgcheck=0
enabled=1
gpgcheck=0
用dnf安装grafana
dnf install -y grafana
启动服务
systemctl enable grafana-server.service
systemctl start grafana-server.service
配置grafana
浏览器访问 http://<your-monitor-server-ip>:3000
用户名和密码都是admin,第一次登录会让我们修改密码
改为中文

添加数据源

选择第一个: prometheus

导入模板



7.1.2 安装loki和promtail¶
下载包
官网下载地址: https://github.com/grafana/loki/releases
其中promtail为日志收集器,也需要一同安装
mkdir /opt/loki
cd /opt/loki
wget https://github.com/grafana/loki/releases/download/v3.5.8/loki-linux-amd64.zip
wget https://github.com/grafana/loki/releases/download/v3.5.8/promtail-linux-amd64.zip
解压
unzip loki-linux-amd64.zip
chmod +x loki-linux-amd64
unzip promtail-linux-amd64.zip
chmod +x promtail-linux-amd64
创建loki配置文件
cat > loki-config.yaml << EOF
# 全局配置
auth_enabled: false
# 服务器配置
server:
http_listen_port: 3100
# Ingester 配置
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 1h
max_chunk_age: 1h
chunk_target_size: 1048576
chunk_retain_period: 30s
wal:
dir: /opt/loki/data/wal
# Schema 配置
schema_config:
configs:
- from: 2025-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
# 存储配置
storage_config:
boltdb_shipper:
active_index_directory: /opt/loki/data/boltdb-shipper-active
cache_location: /opt/loki/data/boltdb-shipper-cache
filesystem:
directory: /opt/loki/data/chunks
# 限制配置
limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h
allow_structured_metadata: false
# 表管理器配置
table_manager:
retention_deletes_enabled: false
retention_period: 0s
EOF
创建promtail配置文件
cat > promtail-config.yaml <<EOF
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: containers
static_configs:
- targets:
- localhost
labels:
job: containerlogs
__path__: /var/lib/docker/containers/*/*log
pipeline_stages:
- json:
expressions:
output: log
stream: stream
attrs:
- json:
expressions:
tag:
source: attrs
- regex:
expression: (?P<container_name>(?:[^|]*))\|
source: tag
- timestamp:
format: RFC3339Nano
source: time
- labels:
stream:
container_name:
- output:
source: output
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
- job_name: sysmessage
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/messages
EOF
创建用户
id loki 2>/dev/null || useradd -s /sbin/nologin loki
创建数据目录,更改权限
mkdir -p /opt/loki/data/{wal,boltdb-shipper-active,boltdb-shipper-cache,chunks}
chown -R loki /opt/loki/data/
配置系统服务
## loki服务
cat > /etc/systemd/system/loki.service <<EOF
[Unit]
Description=Loki service
After=network.target
[Service]
Type=simple
User=loki
ExecStart=/opt/loki/loki-linux-amd64 --config.file=/opt/loki/loki-config.yaml
[Install]
WantedBy=multi-user.target
EOF
## promtail服务
cat >/etc/systemd/system/promtail.service << EOF
[Unit]
Description=Promtail service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/loki/promtail-linux-amd64 --config.file=/opt/loki/promtail-config.yaml
[Install]
WantedBy=multi-user.target
EOF
启动服务
systemctl daemon-reload
systemctl enable loki promtail
systemctl start loki promtail
systemctl status loki promtail # 检查状态
7.1.3 在Grafana中配置loki¶
浏览器访问grafana http://<your-monitor-server-ip>:3000/
连接 --> 数据源

搜索:loki

URL: http://<your-monitor-server-ip>:3100,这是Loki的服务地址

最下面点:“保存并测试”

点击“探索”

选择loki

