ELK Stack 数据丢失的排查与治理
一 常见根因与快速判断
二 从源头到存储的防丢方案
三 关键配置示例
PUT _template/logstash_tpl
{
"index_patterns": ["logstash-*"],
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1,
"index.refresh_interval": "60s"
},
"mappings": {
"_default_": {
"dynamic_templates": [
{
"strings_as_keyword": {
"match_mapping_type": "string",
"mapping": {
"type": "keyword",
"ignore_above": 256
}
}
}
]
},
"properties": {
"callMethodResult": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
input {
kafka {
bootstrap_servers => "kafka:9092"
topics => ["logs"]
group_id => "es_consumer"
consumer_threads => 4
}
}
filter { }
output {
elasticsearch {
hosts => ["http://es:9200"]
index => "logstash-%{+YYYY.MM.dd}"
ilm_enabled => false
}
# 调试/兜底
stdout { codec => rubydebug }
}
# 启用持久化队列(在 logstash.yml 中)
# pipeline.workers: 2
# pipeline.batch.size: 125
# queue.type: persisted
# path.queue: /var/lib/logstash/queue
# queue.max_bytes: 4gb
version: "3.8"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
kibana:
image: docker.elastic.co/kibana/kibana:8.11.0
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
volumes:
es_data:
四 监控告警与验证
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。