🚀 Grafana全家桶部署指南:Agent + Loki + Grafana 生产环境配置详解
📢 本文将详细介绍如何在生产环境中部署和配置 Grafana 全家桶,帮助你构建一个完整的日志监控系统!
一、架构概览 🏗️
二、Grafana-Agent 配置 🔧
1. 基础配置文件 (agent.yaml)
server:
log_level: info
http_listen_port: 12345
# 📊 指标采集配置
metrics:
global:
scrape_interval: 60s
remote_write:
- url: "http://prometheus:9090/api/v1/write"
basic_auth:
username: ${PROMETHEUS_USER}
password: ${PROMETHEUS_PASSWORD}
# 📝 日志采集配置
logs:
configs:
- name: default
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3100/loki/api/v1/push
tenant_id: tenant1
batchwait: 1s
batchsize: 1048576
timeout: 10s
backoff_config:
min_period: 500ms
max_period: 5m
max_retries: 10
# 🔍 日志采集规则
scrape_configs:
# 系统日志
- job_name: system
static_configs:
- targets: [localhost]
labels:
job: system
env: prod
__path__: /var/log/*.log
pipeline_stages:
- timestamp:
source: time
format: RFC3339
location: Asia/Shanghai
# 应用日志
- job_name: application
static_configs:
- targets: [localhost]
labels:
job: app
env: prod
service: myapp
__path__: /app/logs/*.log
2. Docker 部署配置 🐳
docker run -d \
--name grafana-agent \
--restart=unless-stopped \
--network monitoring \
-v /etc/grafana-agent:/etc/grafana-agent \
-v /var/log:/var/log:ro \
-v /app/logs:/app/logs:ro \
-e TZ=Asia/Shanghai \
grafana/agent:latest \
--config.file=/etc/grafana-agent/agent.yaml
三、Loki 配置 📦
1. 配置文件 (loki.yaml)
auth_enabled: true
server:
http_listen_port: 3100
# 💾 存储配置
storage_config:
boltdb_shipper:
active_index_directory: /loki/index
cache_location: /loki/cache
cache_ttl: 24h
shared_store: filesystem
filesystem:
directory: /loki/chunks
# ⚙️ 系统限制配置
limits_config:
retention_period: 30d
enforce_metric_name: false
max_entries_limit_per_query: 5000
# 📊 Schema 配置
schema_config:
configs:
- from: 2023-01-01
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
2. Docker 部署 🐳
docker run -d \
--name loki \
--restart=unless-stopped \
--network monitoring \
-p 3100:3100 \
-v loki-data:/loki \
-v /etc/loki:/etc/loki \
grafana/loki:latest \
-config.file=/etc/loki/loki.yaml
四、Grafana 配置 📊
1. 数据源配置
apiVersion: 1
datasources:
- name: Loki
type: loki
access: proxy
url: http://loki:3100
jsonData:
maxLines: 1000
timeout: 30
2. Docker 部署 🐳
docker run -d \
--name grafana \
--restart=unless-stopped \
--network monitoring \
-p 3000:3000 \
-v grafana-data:/var/lib/grafana \
-v /etc/grafana:/etc/grafana \
-e "GF_SECURITY_ADMIN_PASSWORD=your_secure_password" \
grafana/grafana:latest
五、生产环境最佳实践 💡
1. 高可用配置
·✨ 使用多副本部署
·🔄 配置负载均衡
·💾 定期数据备份
2. 性能优化
# Loki 性能优化配置
chunk_store_config:
max_look_back_period: 720h # 30天
chunk_cache_config:
enable: true
size: 1GB
# Agent 性能优化
logs:
configs:
- name: default
positions:
sync_period: 10s
clients:
- batchsize: 1048576 # 1MB
batchwait: 1s
3. 监控告警配置
# Grafana 告警规则示例
groups:
- name: LogAlerts
rules:
- alert: HighErrorRate
expr: |
sum(rate({job="app"} |= "error" [5m])) > 10
for: 5m
labels:
severity: critical
annotations:
summary: "错误日志率过高"
六、常见问题排查 🔍
1.Agent 无法采集日志
o✅ 检查文件权限
o✅ 验证日志路径配置
o✅ 查看 Agent 日志
2.Loki 写入失败
o✅ 检查存储空间
o✅ 验证网络连接
o✅ 查看错误日志
3.Grafana 查询超时
o✅ 优化查询范围
o✅ 调整超时设置
o✅ 检查索引配置
七、总结 📝
通过以上配置,我们搭建了一个完整的日志监控系统。记住:
·🔐 重要配置要加密存储
·📊 定期检查系统性能
·🔄 保持组件版本更新
·💾 做好数据备份计划
🎯 关注我,获取更多运维干货!
💡 有任何问题都可以在评论区留言,我会及时回复的!
#Grafana #监控系统 #运维技术 #Docker