使用 Docker 容器化部署 Redis、Logstash、Elasticsearch、Kibana,構建完整的日誌收集、存儲、分析、展示鏈路。
docker version。docker run -dit --name redis --hostname redis-host \
-v /data:/data \
-v /data/redis.conf:/usr/local/etc/redis/redis.conf \
-p 6379:6379 redis
docker run -dit --name logstash --hostname logstash-host \
-v /data:/data logstash logstash -f /data/logstash.conf
logstash.conf 關鍵配置:
input {
redis {
data_type => "list"
key => "logstash"
host => "192.168.21.128"
port => 6379
threads => 5
codec => "json"
}
}
output {
elasticsearch {
hosts => ["192.168.21.128"]
}
stdout { }
}
docker run -dit --name elasticsearch --hostname elasticsearch-host \
-v /data:/data -p 9200:9200 -p 9300:9300 elasticsearch:latest
注意:端口映射必須顯示為 0.0.0.0:9200->9200/tcp,否則外部無法訪問。
docker run -dit --name kibana --hostname kibana-host \
-v /data:/data -p 5601:5601 \
-e ELASTICSEARCH_URL=https://192.168.21.128:9200 kibana:latest
docker start `docker ps -a -q`
一鍵啟動所有容器,便於維護。