
fantini/logstashLogstash是Elastic Stack(Elasticsearch, Logstash, Kibana)的核心组件之一,作为开源的服务器端数据处理管道,它能够从多种数据源(如日志文件、数据库、消息队列等)采集数据,对数据进行过滤、转换、丰富等处理,并将处理后的数据转发至Elasticsearch、文件、数据库或其他目标系统,为后续的数据分析和可视化提供支持。
bashdocker run -d \ --name logstash \ -v /path/to/logstash/pipeline:/usr/share/logstash/pipeline \ -v /path/to/logstash/config:/usr/share/logstash/config \ -e "LS_JAVA_OPTS=-Xms512m -Xmx512m" \ docker.elastic.co/logstash/logstash:8.11.3
yamlversion: '3' services: logstash: image: docker.elastic.co/logstash/logstash:8.11.3 container_name: logstash volumes: - ./logstash/pipeline:/usr/share/logstash/pipeline # 挂载pipeline配置文件 - ./logstash/config:/usr/share/logstash/config # 挂载logstash.yml配置 environment: - LS_JAVA_OPTS=-Xms512m -Xmx512m # 设置JVM内存参数 - ELASTICSEARCH_HOSTS=[***] # Elasticsearch地址(若需输出至ES) ports: - "5044:5044" # Filebeat输入端口 - "9600:9600" # 监控API端口 depends_on: - elasticsearch # 若依赖Elasticsearch,需配置对应服务
Pipeline配置
Logstash通过pipeline配置文件定义数据处理流程,通常位于/usr/share/logstash/pipeline/logstash.conf,格式示例:
confinput { beats { port => 5044 # 接收Filebeat数据 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } # 解析Apache日志 } date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] # 解析时间字段 } } output { elasticsearch { hosts => ["[***]"] # 输出至Elasticsearch index => "apache-logs-%{+YYYY.MM.dd}" # 按日期创建索引 } stdout { codec => rubydebug } # 同时输出至控制台(调试用) }
环境变量
LS_JAVA_OPTS:设置JVM参数,如-Xms512m -Xmx512m控制内存大小。ELASTICSEARCH_HOSTS:指定Elasticsearch地址(若输出至ES)。LOG_LEVEL:日志级别,可选debug、info、warn、error,默认info。数据持久化
可挂载以下目录实现配置和数据持久化:
/usr/share/logstash/pipeline:存放pipeline配置文件。/usr/share/logstash/config:存放logstash.yml等全局配置。/usr/share/logstash/data:存放持久化数据(如队列数据)。启动后可通过http://<容器IP>:9600/_node/stats访问Logstash监控API,查看数据处理状态、插件运行情况等。



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