公司项目采用Docker技术进行了分布式部署,每个服务有多个实例进行负载均衡,出现问题查日志变得异常痛苦,这时发现了比较常用的一种解决方案——ELK(ElasticSearch + Logstash + Kibana)。
这里是Logstash配置文件中的配置项说明,翻译自官方文档——logstash-settings-file章节,如有不当之处,希望大家可以帮忙指出。
setting | 说明 | 默认值 |
---|---|---|
node.name | 节点名称。 | 机器的hostname |
path.data | logstash和他的插件数据持久化目录。 | LOGSTASH_HOME/data |
pipeline.workers | workers的数量,即同时并行处理过滤和输出的管道数量。如果是备份或者CPU空闲较大,可以考虑增加这个值来更有效的利用资源。 | CPU核心数量 |
pipeline.output.workers | 每个输出插件实例使用的workers数量。 | 1 |
pipeline.batch.size | 在过滤和输出之前,每个线程从输入收集的最大数量。通常较大的批处理数量会有更高的性能,但也增加了内存消耗。你可能需要增加JVM堆内存,使用变量LS_HEAP_SIZE 来更有效但使用这个选项。 |
125 |
pipeline.batch.delay | 批处理调度延时,单位毫秒。 | 5 |
pipeline.unsafe_shutdown | 不安全关闭。当这个选项设置为true 时,关闭Logstash时即会退出,不论内存中是否有未完成的事件。而默认情况下,Logstash会将所有接收到的事件全部推送到输出后才会退出。启用后将可能导致数据丢失。 |
false |
path.config | 管道配置文件路径。如果指定的是一个目录或者是通配符,将从目录读取所有配置并按字母顺序排序。 | 不同平台路径不同。具体参见Logstash目录结构。 |
config.string | 管道配置字符串,格式和配置文件一样。 | None |
config.test_and_exit | 检查配置,检查完成后退出。欣赏模式不会根据此设置检查有效性。 | false |
config.reload.automatic | 自动重新加载配置。也可以通过SIGHUP信号激活。 | false |
config.reload.interval | 检查配置文件变化频率,单位秒。 | 3 |
config.debug | 设置为true 时,将以debug形式打印所有加载配置信息(必须同时设置log.level: debug )。注意:配置中的密码有可能以明文的形式出现在日志文件中。 |
false |
queue.type | 内部缓冲队列模型,memory 为基于内存的队列模型,persisted 为基于磁盘的队列模型,persisted相关参见。 |
memory |
path.queue | 队列数据文件存放目录。当设置queue.type: persisted 时,才需指定。 |
path.data/queue |
queue.page_capacity | 页面数据容量。当设置queue.type: persisted 时,才需指定。 |
250mb |
queue.max_events | 最大未读事件。当设置queue.type: persisted 时,才需指定。 |
0 (不限制) |
queue.max_bytes | 队列总容量,确保小于磁盘可用容量。当设置queue.type: persisted 时,才需指定。如果queue.max_events 和queue.max_bytes 同时设置,Logstash将以先达到的为准。 |
1024mb (1g) |
queue.checkpoint.acks | 强制检查点前最大ACK数量。当设置queue.type: persisted 时,才需指定。设置为0 为不限制。 |
1024 |
queue.checkpoint.writes | 强制检查点前最大写事件数量。当设置queue.type: persisted 时,才需指定。设置为0 为不限制。 |
1024 |
queue.checkpoint.interval | 强制检查页面文件头的间隔。当设置queue.type: persisted 时,才需指定。设置为0 将不进行周期性检查。 |
1000 |
queue.drain | 设置为true 时,Logstash将等待队列消费完后才会退出。 |
false |
dead_letter_queue.enable | 是否启用DLQ插件 | false |
dead_letter_queue.max_bytes | 每个DLQ的最大大小。超过这个大小的条目将被忽略。 | 1024mb |
path.dead_letter_queue | 存储DLQ的目录路径。 | path.data/dead_letter_queue |
http.host | REST接口绑定地址。 | 127.0.0.1 |
http.port | REST接口绑定端口。 | 9600 |
log.level | 日志级别。fatal error warn info debug trace |
info |
log.format | 日志格式化方式。使用json 将日志格式化为JSON 形式,使用plain 将日志格式化为Object#.inspect |
plain |
path.logs | 日志打印位置。 | LOGSTASH_HOME/logs |
path.plugins | 自定义插件路径。可以指定多次指定多个目录。插件目录结构:PATH/logstash/TYPE/NAME.rb 其中TYPE 为inputs 、filters 、outputs 或codecs ,NAME 为插件名称。 |
不同平台路径不同。具体参见Logstash目录结构。 |