logstash配置介绍¶
Logstash 的配置文件主要分为 主配置文件、Pipeline 配置文件 和 环境变量文件,它们共同控制 Logstash 的运行行为和数据流程
1、主配置文件:logstash.yml¶
- 路径:
/etc/logstash/logstash.yml - 作用:控制Logstash服务的全局行为,如线程、队列、管道配置等。
关键配置项:
2、Pipeline 配置文件(\*.conf)¶
- 路径:
/etc/logstash/conf.d/*.conf - 作用:定义数据处理流程(Input → Filter → Output)。Logstash 会加载该目录下所有 .conf 文件。
配置结构:
关键点:
- 支持多管道:通过
pipelines.yml定义多个独立管道(见下文)。 - 热重载:修改配置文件后,Logstash 默认会自动重新加载(需启用
config.reload.automatic: true)。
3、多管道配置:pipelines.yml¶
- 路径:
/etc/logstash/pipelines.yml - 作用:当需要运行多个独立的数据处理流程时使用。
示例:
| Bash | |
|---|---|
4、JVM 配置:jvm.options¶
- 路径:
/etc/logstash/jvm.options - 作用:调整 Logstash 的 JVM 堆内存和垃圾回收参数。
常见配置:
5、日志配置:log4j2.properties¶
- 路径:
/etc/logstash/log4j2.properties - 作用:控制 Logstash 自身日志的级别和输出方式。
关键配置:
| Bash | |
|---|---|
6、环境变量文件:startup.options¶
- 路径:
/etc/logstash/startup.options - 作用:控制 Logstash 服务启动时的参数(通过
systemd或sysvinit)。
关键参数:
7、配置文件加载顺序¶
- 启动阶段:
- 读取 startup.options → 生成服务启动命令。
- 加载 jvm.options 设置 JVM 参数。
- 运行阶段:
- 读取 logstash.yml 和 pipelines.yml。
- 加载 conf.d/*.conf 或指定路径的 Pipeline 配置。
- 日志记录:
- 根据 log4j2.properties 输出运行日志。
最佳实践¶
- 模块化配置:
- 将不同数据源的配置拆分为多个 .conf 文件(如 nginx.conf、syslog.conf)。
- 资源隔离:
- 高流量场景下,使用 pipelines.yml 分隔关键业务管道。
- 监控调优:
- 通过 http.port 启用 API,结合 _node/stats 接口监控性能。