ELK - Logstash - Configuration Files

环境:Logstash 6.5.4

-----------------------------------------------------------------------

Logstash有两种类型的配置文件:

Pipeline configuration files:定义Logstash处理管道的管道配置文件

settings files:指定控制Logstash启动和执行的选项的设置

Pipeline Configuration Files

将管道配置文件放在/etc/logstash/conf.d目录中。Logstash试图只加载/etc/logstash/conf.d目录中的.conf扩展名的文件,并忽略所有其他文件。

logstash.yml:

node.name:名称

path.data:数据存放

pipeline.id:id

pipeline.workers:并行执行管道的过滤器和输出阶段的worker数量。

pipeline.batch.size:单个工作线程在尝试执行其筛选器和输出之前将从输入中收集的事件的最大数量。较大的批量大小通常更有效,但是要以增加的内存开销为代价。

pipeline.batch.delay:在创建 pipeline 事件批处理时,以毫秒为单位等待每个事件多长时间,然后才向 pipeline 工作者分发小批处理。

pipeline.unsafe_shutdown:当设置为true时,强制Logstash在关闭期间退出,即使内存中仍然存在正在执行的事件。默认情况下,Logstash将拒绝退出,直到所有接收到的事件都被推送到输出为止。启用此选项会导致关闭期间的数据丢失。

path.config:主管道的Logstash配置的路径。

config.string:包含用于主管道的管道配置的字符串。

config.test_and_exit:当设置为true时,检查配置是否有效,然后退出。注意,这个设置没有检查grok模式的正确性。Logstash可以从一个目录读取多个配置文件。

config.reload.automatic:当设置为true时,定期检查配置是否已更改,并在更改时重新加载配置。

config.reload.interval:Logstash以秒为单位检查配置文件的更改频率。

config.debug:当设置为true时,将完全编译的配置显示为调试日志消息。还必须设置log.level:debug。

config.support_escapes:当设置为true时,引号字符串将处理以下转义序列: \n 变为文字换行,\r 变为回车符, \t 变成一个文本选项卡, \\ b变成一个 backslash \,\" 变成一个双引号,\' 变为引号。

modules:在配置时,模块必须位于上表描述的嵌套YAML结构中。

queue.type:用于事件缓冲的内部队列模型。为基于内存的遗留队列指定内存,或为基于磁盘的ACKed 队列(持久队列)指定持久内存。

path.queue:用于事件缓冲的内部队列模型。为基于内存的遗留队列指定内存,或为基于磁盘的ACKed 队列指定持久内存。

queue.page_capacity:启用持久队列时使用的页数据文件的大小(queue.type: persisted)。队列数据由分隔成页的仅附加的数据文件组成。

queue.max_events:启用持久队列时队列中未读事件的最大数量(queue.type: persisted)

queue.max_bytes:队列总容量的字节数。确保磁盘驱动器的容量大于这里指定的值。如果同时指定了queue.max_events and queue.max_bytes,则Logstash使用首先达到的任何条件。

queue.checkpoint.acks:在启用持久队列时强制检查点之前ACKed事件的最大数量(queue.type:persisted)。指定queue.checkpoint.acks:0以将该值设置为.。

queue.checkpoint.writes:在启用持久队列时强制检查点之前写入事件的最大数量(queue.type:persisted)。指定queue.checkpoint.write:0以将该值设置为.。

queue.drain:启用后,Logstash将等待,直到持久队列耗尽后才关机。

dead_letter_queue.enable:指示Logstash启用插件支持的dead letter Queue特性的标志。

dead_letter_queue.max_bytes:每个dead letter 队列的最大大小。如果条目将增加超出此设置的dead letter 队列的大小,则会删除这些条目。

path.dead_letter_queue:存储数据文件的目录路径,用于dead letter 队列。

http.host:度量REST端点的绑定地址。

http.port:度量REST端点的绑定端口。

log.level:日志级别。fatal,error,warn,info,debug,trace。

log.format:日志格式。设置为json以JSON格式登录,或者直接使用Object#.inspect。

path.logs:日志目录位置。

path.plugins:在哪里可以找到自定义插件。您可以多次指定此设置以包括多个路径。插件应该位于特定的目录层次结构中PATH/logstash/TYPE/NAME.rb,其中TYPE是输入、过滤器、输出或编解码器,而NAME是插件的名称。

pipelines.yml:

如果需要在同一进程中运行多个管道,则Logstash提供了一种通过名为 pipelines.yml 的配置文件执行此操作的方法。该文件必须放在 path.settings 文件夹中,并遵循以下结构

- pipeline.id: my-pipeline_1 path.config: "/etc/path/to/p1.config" pipeline.workers: 3 - pipeline.id: my-other-pipeline path.config: "/etc/different/path/p2.cfg" queue.type: persisted

该文件以YAML格式化,并包含字典列表,其中每个字典描述一个pipeline,每个键/值对指定该 pipeline 的设置。该示例显示了由它们的ID和配置路径描述的两个不同的管道。对于第一个管道,pipeline.workers 的值设置为3,而在另一个管道中,启用持久队列特性。未在pipelines.yml 文件中显式设置的设置值将返回到logstash.yml设置文件中指定的默认值。

如果当前配置的事件流不共享相同的输入/过滤器和输出,并且使用标记和条件彼此分离,则使用多个管道尤其有用。

在单个实例中具有多个 pipeline 还允许这些事件流具有不同的性能和持久性参数(例如,针对 pipeline 工作者和持久队列的不同设置)。这种分离意味着一个管道中的阻塞输出不会在另一个管道中施加背压。

也就是说,考虑到默认值针对单个管道进行调整,考虑管道之间的资源竞争非常重要。因此,例如,考虑减少每个 pipeline 使用的 pipeline 123456

工作者的数量,因为默认情况下,每个流水线每个CPU核心将使用一个工作者。

持久队列和死信队列在每个管道上被隔离,它们的位置由 pipeline.id 值隔开。

jvm.options:

log4j2.properties:

Logstash在其操作期间发出内部日志,这些日志被放置在 LS_HOME/logs (或者 /var/log/logstash用于DEB/RPM)中。默认的日志记录级别是INFO。Logstash的日志记录框架基于 Log4j 2 框架,并且其大部分功能都直接向用户公开。

您可以为特定的子系统、模块或插件配置日志记录。

当需要调试问题时,特别是插件的问题时,请考虑将日志记录级别提高到DEBUG以获得更多的详细消息。例如,如果正在调试Elasticsearch Output的问题,则可以仅针对该组件增加日志级别。这种方法减少了过度日志记录的噪音,并帮助关注问题区域。

startup.options:

猜你喜欢

转载自blog.csdn.net/chuckchen1222/article/details/85238088