
dystargate/logstashLogstash是开源的服务器端数据处理管道,设计用于从多个来源采集数据,对数据进行转换处理,并将处理后的数据发送到指定的存储系统或分析工具中。作为Elastic Stack(ELK Stack)的重要组成部分,Logstash在日志收集、数据清洗和集成场景中广泛应用。
通过docker run命令启动Logstash容器,需挂载配置文件指定数据处理流程:
bashdocker run -d \ --name logstash \ -v /path/to/logstash/pipeline:/usr/share/logstash/pipeline \ docker.elastic.co/logstash/logstash:8.11.3
以下是与Elasticsearch、Kibana配合使用的docker-compose.yml示例:
yamlversion: '3' services: logstash: image: docker.elastic.co/logstash/logstash:8.11.3 volumes: - ./logstash/pipeline:/usr/share/logstash/pipeline - ./logstash/config:/usr/share/logstash/config environment: - "ELASTICSEARCH_HOSTS=[***]" depends_on: - elasticsearch ports: - "5044:5044" # Filebeat输入端口 elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.11.3 environment: - discovery.type=single-node ports: - "9200:9200" kibana: image: docker.elastic.co/kibana/kibana:8.11.3 ports: - "5601:5601" depends_on: - elasticsearch
Logstash的核心配置通过管道配置文件(位于/usr/share/logstash/pipeline目录)定义,包含input(输入)、filter(过滤)、output(输出)三部分:
示例管道配置(logstash.conf):
confinput { file { path => "/var/log/*.log" # 从文件采集日志 start_position => "beginning" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } # 使用grok解析Apache日志 } date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] # 解析日期字段 } } output { elasticsearch { hosts => ["elasticsearch:9200"] # 输出到Elasticsearch index => "apache-logs-%{+YYYY.MM.dd}" # 按日期创建索引 } stdout { codec => rubydebug } # 同时输出到控制台 }
常用环境变量包括:
ELASTICSEARCH_HOSTS:Elasticsearch服务地址,用于输出配置LOG_LEVEL:日志级别(如info、debug),默认infoXPACK_MONITORING_ENABLED:是否启用监控,默认true


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务