开始准备安装:
前提条件: k8s 集群(每一个work节点都会安装 alloy), 然后一台空的服务器[172.16.3.31],用来安装:【MinIO,Loki,Grafana】
第 1 步:在 172.16.3.31 检查基础环境
先执行:
bash
hostname -I
uname -m
cat /etc/os-release | head -n 5
systemctl status firewalld --no-pager
getenforce

说明:

第 2 步:准备目录
在 172.16.3.31 执行:
bash
mkdir -p /data/minio
mkdir -p /etc/minio
mkdir -p /opt/loki/{bin,etc,data,wal,index,cache,compactor}
mkdir -p /var/lib/grafana
mkdir -p /var/log/loki
第 3 步:安装 MinIO (如果项目中已经有了,可以不安装)
MinIO 官方提供 Linux AMD64 的可下载二进制和 RPM 包;下载站点也公开提供 linux-amd64 版本
https://dl.min.io/server/minio/release/?utm_source=chatgpt.com
执行:
bash
cd /usr/local/bin
curl -L -o minio https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
curl -L -o mc https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
minio --version
mc --version
第 4 步:给 MinIO 配置账号
执行:
1:这一种写法,下面的【minio.service】可以写入变量
bash
cat > /etc/minio/minio.env <<'EOF'
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin123
MINIO_VOLUMES=/data/minio
MINIO_OPTS=--console-address :9001 --address :9000
EOF
2:这一种写法,下面的【minio.service】直接写死
bash
cat > /etc/minio/minio.env <<'EOF'
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin123
EOF
第 5 步:创建 MinIO 的 systemd 服务
执行:
这里要注意一下 改为你自己实际的端口
bash
ExecStart=/usr/local/bin/minio server --console-address :9001 --address :9000 /data/minio
也可以这么写,但是我这里没有成功,环境变量没有写入成功,可以是个头 env 查看一下是否有对应的变量
bash
ExecStart=/usr/local/bin/minio server ${MINIO_OPTS} ${MINIO_VOLUMES}
bash
cat > /etc/systemd/system/minio.service <<'EOF'
[Unit]
Description=MinIO
Documentation=https://min.io
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
EnvironmentFile=/etc/minio/minio.env
ExecStart=/usr/local/bin/minio server --console-address :9001 --address :9000 /data/minio
Restart=always
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
启动并设置开机自启:
bash
systemctl daemon-reload
systemctl enable --now minio
systemctl status minio --no-pager
第 6 步:验证 MinIO
bash
ss -lntp | egrep '9000|9001'
curl http://127.0.0.1:9000/minio/health/live
如果正常 :curl 会返回 OK 或空 200 响应
第二条命令多了一个 -i 的参数

创建桶:loki-data

第 7 步:安装 Loki 单机二进制
Loki 官方文档支持本地单二进制安装;同时说明 Loki 的配置核心在 loki.yaml。Loki 的架构文档也说明,同一个二进制可通过 -target 控制运行模式。
自己网页下载,下面有命令直接下载
https://grafana.com/docs/loki/latest/setup/install/local/?utm_source=chatgpt.com

命令下载
bash
cd /opt/loki/bin
curl -L -o loki.zip "https://github.com/grafana/loki/releases/latest/download/loki-linux-amd64.zip"
unzip -o loki.zip
mv loki-linux-amd64 loki
chmod +x loki
./loki --version
如果提示没有 unzip,先装:
bash
yum install -y unzip
第 8 步:写 Loki 配置文件
Loki 官方配置示例里有 "S3-compatible API like MinIO" 的完整示例;TSDB 是官方自 v2.8 起推荐的索引类型
https://grafana.com/docs/loki/latest/configure/examples/configuration-examples/?utm_source=chatgpt.com

执行命令:
这里改为自己的minio 地址,账号和密码

bash
cat > /opt/loki/etc/loki.yaml <<'EOF'
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
common:
instance_addr: 127.0.0.1
path_prefix: /opt/loki/data
storage:
s3:
endpoint: 127.0.0.1:9000
bucketnames: loki-data
access_key_id: minioadmin
secret_access_key: minioadmin123
s3forcepathstyle: true
insecure: true
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2024-04-01
store: tsdb
object_store: s3
schema: v13
index:
prefix: index_
period: 24h
storage_config:
tsdb_shipper:
active_index_directory: /opt/loki/index
cache_location: /opt/loki/cache
compactor:
working_directory: /opt/loki/compactor
compaction_interval: 10m
retention_enabled: true
delete_request_store: s3
limits_config:
retention_period: 168h
allow_structured_metadata: true
volume_enabled: true
query_range:
results_cache:
cache:
embedded_cache:
enabled: true
max_size_mb: 100
ingester:
wal:
enabled: true
dir: /opt/loki/wal
chunk_encoding: snappy
pattern_ingester:
enabled: true
ruler:
alertmanager_url: http://localhost:9093
EOF
说明:
这份配置的关键点:
store: tsdbobject_store: s3- S3 endpoint 指向本机 MinIO
127.0.0.1:9000 s3forcepathstyle: true- retention 先设为 7 天
这些都和官方 S3/MinIO 配置示例以及 TSDB 推荐方向一致
https://grafana.com/docs/loki/latest/configure/examples/configuration-examples/?utm_source=chatgpt.com
第 9 步:创建 Loki 的 systemd 服务
执行:
bash
cat > /etc/systemd/system/loki.service <<'EOF'
[Unit]
Description=Grafana Loki
Documentation=https://grafana.com/oss/loki/
Wants=network-online.target
After=network-online.target minio.service
[Service]
User=root
Group=root
ExecStart=/opt/loki/bin/loki -config.file=/opt/loki/etc/loki.yaml
WorkingDirectory=/opt/loki
Restart=always
RestartSec=5
LimitNOFILE=65536
StandardOutput=append:/var/log/loki/loki.log
StandardError=append:/var/log/loki/loki.err
[Install]
WantedBy=multi-user.target
EOF
启动:
bash
systemctl daemon-reload
systemctl enable --now loki
systemctl status loki --no-pager
第 10 步:验证 Loki
执行:
bash
ss -lntp | egrep '3100|9096'
curl http://127.0.0.1:3100/ready
结果:
如果正常,/ready 会返回 ready。Loki 官方 HTTP API 和就绪检查都走它的 HTTP 端口,默认常见就是 3100

第 11 步:安装 Grafana
Grafana 官方支持在 RHEL/Fedora 类系统上通过 RPM 仓库或单独 RPM 安装
https://grafana.com/docs/grafana/latest/setup-grafana/installation/redhat-rhel-fedora/?utm_source=chatgpt.com
先配置仓库:
bash
cat > /etc/yum.repos.d/grafana.repo <<'EOF'
[grafana]
name=grafana
baseurl=https://rpm.grafana.com
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://rpm.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
安装:
bash
yum install -y grafana
启动:
bash
systemctl daemon-reload
systemctl enable --now grafana-server
systemctl status grafana-server --no-pager
验证:能看到页面 (如果开了防火墙,记得开放对应的端口)

修改成中文:头像 / Profile → Preferences → Language → 简体中文(Simplified Chinese)

第 12 步:开放 31 上需要的端口
如果你们开了 firewalld,先放行:
bash
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=9001/tcp
firewall-cmd --permanent --add-port=3100/tcp
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --reload
firewall-cmd --list-ports
你后面会用到:
9000:MinIO S3 API9001:MinIO 控制台3100:Loki3000:Grafana
第 13 步:在 Grafana 里接 Loki 数据源
Grafana 默认初始账号通常是:
- 用户名:
admin - 密码:
admin
登录后会要求改密码。Grafana 官方安装流程包含"启动服务后登录 Grafana"
https://grafana.com/docs/grafana/latest/setup-grafana/?utm_source=chatgpt.com
然后添加数据源:
- 类型:Loki
- URL:
http://127.0.0.1:3100

============================================
到这里已经安装好了。
- MinIO:对象存储
- Loki:日志接收和查询
- Grafana :查询界面
还差