配置
Kafka Log Analyzer 配置参考
环境变量
基础配置
| 变量 | 说明 | 默认值 | 必填 |
|---|---|---|---|
LOG_LEVEL | 日志级别 | info | 否 |
NODE_ENV | 运行环境 | development | 否 |
数据源配置(v0.3.0+)
| 变量 | 说明 | 默认值 | 必填 |
|---|---|---|---|
PROMETHEUS_URL | Prometheus API 地址 | http://localhost:9090 | v0.3.0+ |
KAFKA_EXPORTER_URL | Kafka Exporter 地址 | http://localhost:9308 | v0.3.0+ |
LOKI_URL | Loki 日志 API 地址 | http://localhost:3100 | v0.3.0+ |
Hook & 推送配置(v0.4.0+)
| 变量 | 说明 | 默认值 | 必填 |
|---|---|---|---|
GRAFANA_WEBHOOK_PORT | Hook 服务器监听端口 | 3100 | v0.4.0+ |
PAGERDUTY_WEBHOOK_PORT | PagerDuty Webhook 端口 | 3101 | 否 |
FEISHU_WEBHOOK_URL | 飞书 Webhook 地址 | - | 飞书推送 |
SLACK_WEBHOOK_URL | Slack Webhook 地址 | - | Slack 推送 |
JIRA_URL | JIRA 基础地址 | - | JIRA 推送 |
JIRA_TOKEN | JIRA API 令牌 | - | JIRA 推送 |
JIRA_PROJECT_KEY | JIRA 项目 Key | - | JIRA 推送 |
HOOK_DEDUP_WINDOW_MS | 去重 TTL 窗口(毫秒) | 300000 | 否 |
HOOK_MAX_MERGE_COUNT | 每个 fingerprint 最大合并计数 | 10 | 否 |
存储配置(v0.5.0+)
| 变量 | 说明 | 默认值 | 必填 |
|---|---|---|---|
SQLITE_PATH | SQLite 数据库路径 | ./storage/kafka-analyzer.db | v0.5.0+ |
STORAGE_RETENTION_DAYS | 数据保留天数 | 30 | v0.5.0+ |
STORAGE_AUTO_CLEANUP | 启用每日自动清理 | true | 否 |
用户体验配置(v1.1.0+)
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
LOCALE | 国际化语言(en 或 zh) | 自动检测系统语言 | 否 |
CACHE_SESSION | 启用内存会话缓存 | true | 否 |
CACHE_TTL | 默认缓存过期时间(秒) | 86400 | 否 |
.env 文件示例
bash
# .env
# Phase 1 (基础功能) - 无需配置
# Phase 2 (数据源集成)
PROMETHEUS_URL=http://prometheus:9090
KAFKA_EXPORTER_URL=http://kafka-exporter:9308
LOKI_URL=http://loki:3100
# Phase 3 (Hook & 推送集成)
GRAFANA_WEBHOOK_PORT=3100
PAGERDUTY_WEBHOOK_PORT=3101
FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/xxx
JIRA_URL=https://your-domain.atlassian.net
JIRA_TOKEN=your-api-token
JIRA_PROJECT_KEY=KAFKA
HOOK_DEDUP_WINDOW_MS=300000
HOOK_MAX_MERGE_COUNT=10
# Phase 4 (历史对比)
SQLITE_PATH=./storage/kafka-analyzer.db
# Phase 5 (用户体验)
LOCALE=en
CACHE_SESSION=true
CACHE_TTL=86400
# 日志配置
LOG_LEVEL=info
LOG_FORMAT=json
NODE_ENV=production配置文件
plugin.json
Plugin 元数据配置:
json
{
"name": "kafka-log-analyzer",
"version": "1.0.0",
"description": "Intelligent Kafka log analysis tool for Claude Code",
"main": "dist/index.js",
"commands": ["kafka-analyze", "kafka-lag"],
"mcp": {
"server": "dist/mcp-server/index.js"
}
}Prometheus 配置
Scrape 配置
yaml
# prometheus.yml
scrape_configs:
- job_name: 'kafka-exporter'
static_configs:
- targets: ['kafka-exporter:9308']
scrape_interval: 15s常用查询
txt
# Consumer Lag
kafka_consumer_lag_records
# Producer 发送速率
kafka_producer_record_send_rate
# Broker Leader 选主次数
kafka_broker_leader_election_rate
# 按消费组过滤
kafka_consumer_lag_records{group="order-processor"}Kafka Exporter 配置
Docker 启动
bash
docker run -d \
--name kafka-exporter \
-p 9308:9308 \
danielqsj/kafka-exporter \
--kafka.server=kafka:9092Loki 配置
日志查询
txt
# Kafka 错误日志
{app="kafka"} |= "ERROR"
# 按时间范围过滤
{app="kafka"} |= "ERROR" [1h]
# Producer 相关错误
{app="kafka", component="producer"} |= "ERROR"检测规则配置
可以在 config/detection-rules.json 中自定义检测规则:
json
{
"rules": [
{
"name": "high_lag",
"condition": "lag > 10000",
"severity": "P1",
"recommendation": "Check consumer processing speed"
},
{
"name": "rebalance_storm",
"condition": "rebalances > 3 in 5m",
"severity": "P0",
"recommendation": "Review consumer group configuration"
}
]
}