Grafana+Loki+Alloy日志采集系统-2

开始准备安装:

前提条件: 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: tsdb
  • object_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 API
  • 9001:MinIO 控制台
  • 3100:Loki
  • 3000: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 :查询界面
    还差

Alloy 还没上场。 (这个要安装在k8s的每一个work节点上)

相关推荐
qq_2663487311 小时前
Grafana+Loki+Alloy日志采集系统-1
grafana
Triv202512 小时前
太阳能船远程信息处理:CAN数据记录 + Grafana仪表板实战案例
grafana·数据可视化·influxdb·嵌入式系统·can总线·数据采集与监控·智能船舶
cnskylee13 小时前
【Grafana】Grafana大版本升级后的Visualizations迁移说明
grafana
**蓝桉**17 小时前
Pushgateway的使⽤
grafana·prometheus
小李的便利店2 天前
k8s集群部署Prometheus和Grafana
kubernetes·grafana·prometheus·监控
**蓝桉**3 天前
一键恢复 Redis 运行与 Grafana 监控(免修改 systemd 配置)
redis·bootstrap·grafana
数据知道3 天前
MongoDB性能监控仪表板:Grafana+Prometheus集成实战
mongodb·grafana·prometheus
&不羁之风&4 天前
Grafana 配置实战
grafana
七七powerful6 天前
养龙虾--安装grafana mcp server并使用codebuddy自动巡检
grafana·codebuddy·grafana mcp