centos7.4安装测试logstash6.5.0

2018年12月08日 4231点热度 0人点赞

接着前面ES的相关内容,本篇介绍下centos7.4使用tar.gz压缩包安装logstash6.5.0方法以及简单使用示例。


一、下载安装logstash

1.1 首先确认下java环境(因为我用的还是之前安装es那台虚拟机,已经配置过jdk了,这里就确认下即可)




1.2 下载logstash




1.3 解压软件包




1.4 查看压缩包下都有哪些文件


bin: 二进制脚本,包括logstash启动Logstash和logstash-plugin安装插件
config: 配置文件,包括logstash.yml和jvm.options。
data: logstash及其插件用于任何持久性需求的数据文件。
conf.d: 存放logstash启动时使用的配置信息。解压后好像没这个目录,等下自己创建一个吧。






二、测试启动logstash

   因为logstash本身是用来做日志收集器的,所以我们需要配置指定下从哪个地方获取日志,然后要发送到哪个地方。



2.1 测试通过命令行运行logstash

   我们这里测试在命令行直接通过-e选项指定配置。从标准输入获取输入stdin,并stdout以结构化格式将该输入移动到标准输出 。

提示启动成功后,会发现终端在等待你输入。我们尝试输入 hello world! 看下会返回什么结果




2.2 通过指定一个配置文件来启动logstash

   直接通过命令行启动logstash当然很不方便,特别是当要指定的配置较多的时候。所以我们一般是将配置写在一个单独的配置文件里面,然后使用-f选项指定这个配置文件来启动logstash。




2.3 结束运行logstash直接使用快捷键 Ctrl + D 即可






三、logstash配置文件logstash.yml常用参数以及可用选项介绍

   我们在单实例测试logstash的时候,配置文件logstash.yml基本上不需要做任何调整就可以直接启动logstash来使用,因为一些默认的配置就能满足我们测试需求了。例如:如果我们不在logstash.yml配置文件中定义Logstash实例的名称,则默认实例名称就是当前主机名等。但是有时候可能我们需要自定义某些配置,例如不想让logstash的实例名显示为当前的主机名,而是想单独指定一个名称,就可以在logstash.yml配置文件中找到 node.name: NAME 配置项修改为指定即可。也可以直接在启动logstash的时候命令行中使用 --node.name NAME 选项来定义实例名。在命令行中设置的任何选项都会覆盖logstash.yml中的相应设置,但文件本身不会更改。接下来我们来分别介绍下logstash.yml文件可用参数及相关选项!


3.1 logstash.yml配置文件可用设置处如下表所示

设置项 描述 默认值
node.name 节点的描述性名称 机器的主机名
path.data Logstash及其插件用于满足任何持久需求的目录。 LOGSTASH_HOME/data
pipeline.id 管道的ID main
pipeline.workers 并行执行管道的过滤器和输出阶段的工作器数量。如果发现事件正在备份,或者CPU未饱和,请考虑增加此数量以更好地利用机器处理能力。 主机CPU核心数
pipeline.batch.size 在尝试执行其过滤器和输出之前,单个工作线程将从输入收集的最大事件数。较大的批量通常更有效,但代价是增加了内存开销。您可能需要在jvm.options配置文件中增加JVM堆空间。 125
pipeline.batch.delay 创建管道事件批处理时,在将小型批处理分派给管道工作者之前等待每个事件的时间长度(以毫秒为单位)。 50
pipeline.unsafe_shutdown 设置true为时,强制Logstash在关闭期间退出,即使内存中仍有飞行事件。默认情况下,Logstash将拒绝退出,直到所有已接收的事件都被推送到输出。启用此选项可能会导致关闭期间数据丢失。 false
path.config 主管道的Logstash配置的路径。如果指定目录或通配符,则按字母顺序从目录中读取配置文件。 不同平台不一样
config.string 一个字符串,包含用于主管道的管道配置。使用与配置文件相同的语法。 没有
config.test_and_exit 设置为时true,检查配置是否有效,然后退出。请注意,使用此设置不会检查grok模式的正确性。Logstash可以从目录中读取多个配置文件。如果将此设置与之结合使用log.level: debug,Logstash将记录组合​​的配置文件,使用它来自的源文件注释每个配置块。 false
config.reload.automatic 设置true为时,定期检查配置是否已更改,并在配置发生更改时重新加载配置。这也可以通过SIGHUP信号手动触发。 false
config.reload.interval 几秒钟内Logstash会检查配置文件中的更改。

3s
config.debug 设置为时true,将完全编译的配置显示为调试日志消息。你还必须设置log.level: debug。警告:日志消息将包含作为纯文本传递给插件配置的任何密码选项,并可能导致明文密码出现在您的日志中! false
config.support_escapes 设置true为时,带引号的字符串将处理以下转义序列:\n成为文字换行符(ASCII 10)。\r成为文字回车(ASCII 13)。\t成为文字标签(ASCII 9)。\\成为一个字面反斜杠\。\"成为字面双引号。\'成为字面引号。 false
modules 配置时,modules必须在此表中描述的嵌套YAML结构中。 没有
queue.type 用于事件缓冲的内部排队模型。指定memory遗留的基于内存的排队,或persisted基于磁盘的ACKed排队(持久队列)。 memory
path.queue 启用持久队列时将存储数据文件的目录路径(queue.type: persisted)。 path.data/queue
queue.page_capacity 启用持久队列时使用的页面数据文件的大小(queue.type: persisted)。队列数据由分成页面的仅附加数据文件组成。 64M
queue.max_events 启用持久队列时队列中未读事件的最大数量(queue.type: persisted)。 0(无限制)
queue.max_bytes 队列的总容量,以字节数表示。确保磁盘驱动器的容量大于此处指定的值。如果同时指定了两者queue.max_events,queue.max_bytes则Logstash将使用先达到的标准。 1024mb(1g)
queue.checkpoint.acks 启用持久队列时强制检查点之前的最大ACK响应事件数(queue.type: persisted)。指定queue.checkpoint.acks: 0将此值设置为无限制。 1024
queue.checkpoint.writes 启用持久队列时强制检查点之前写入事件的最大数量(queue.type: persisted)。指定queue.checkpoint.writes: 0将此值设置为无限制。 1024
queue.drain 启用后,Logstash将等待直到持久队列耗尽,然后才能关闭。 false
dead_letter_queue.enable 用于指示Logstash启用插件支持的DLQ功能的标志。 false
dead_letter_queue.max_bytes 每个死信队列的最大大小。如果条目超出此设置会增加死信队列的大小,则会删除条目。 1024mb
path.dead_letter_queue 将为死信队列存储数据文件的目录路径。 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将其日志写入的目录。 LOGSTASH_HOME/logs
path.plugins 哪里可以找到自定义插件。您可以多次指定此设置以包含多个路径。插件预计将在一个特定的目录层次结构: PATH/logstash/TYPE/NAME.rb其中TYPE是inputs,filters,outputs,或codecs,并且NAME是插件的名称。 不同平台不一样




3.2 logstash命令行中可用选项如下表所示

选项 作用
--node.name NAME 指定此Logstash实例的名称。如果没有给出值,则默认为当前主机名。
-f

--path.config CONFIG_PATH
   从特定文件或目录加载Logstash配置。如果给出了目录,则该目录中的所有文件将按字典顺序连接,然后作为单个配置文件进行解析。不支持多次指定此标志。如果多次指定此标志,则Logstash将使用最后一次出现(例如,-f foo -f bar 与-f bar 效果相同)。

   您可以指定通配符(globs),任何匹配的文件将按上述顺序加载。例如,您可以使用通配符功能按名称加载特定文件:bin/logstash --debug -f'/tmp/{one,two,three}'

-e

--config.string CONFIG_STRING
   使用给定的字符串作为配置数据。与配置文件的语法相同。如果未指定任何输入,则以下内容用作默认输入: input { stdin { type => stdin } }如果未指定输出,则以下内容用作默认输出:output { stdout { codec => rubydebug } }。如果您希望同时使用两个默认值,请使用空字符串作为-e标志。默认值为nil
-t
--config.test_and_exit
检查配置是否有效语法,然后退出。请注意,使用此标志不会检查grok模式的正确性。Logstash可以从目录中读取多个配置文件。如果将此标志组合在一起--log.level=debug,Logstash将记录组合​​的配置文件,使用它来自的源文件注释每个配置块。
--modules 启动命名模块。与-M为指定模块的默认变量赋值的选项一起使用。如果--modules在命令行中使用,logstash.yml则将忽略任何模块,其中的任何设置都将被忽略。该标志与-f和-e标志互斥。只有一个-f,-e或者--modules可以指定。可以通过用逗号分隔多个模块,或者--modules多次调用该标志来指定多个模块。
-M
--modules.variable
为模块的可配置选项指定值。分配变量的格式适用 -M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.KEY_NAME=value"于Logstash变量。对于其他设置,它将是-M "MODULE_NAME.KEY_NAME.SUB_KEYNAME=value"。-M可以根据需要多次使用该标志。如果未-M指定任何选项,则将使用该设置的默认值。该-M标志仅与--modules 标志一起使用。如果没有--modules标志,将被忽略。
--pipeline.id ID 设置管道的ID。默认是main。
-w
--pipeline.workers COUNT
设置要运行的管道工程数。此选项设置将并行执行管道的过滤器和输出阶段的工作器数。如果发现事件正在备份,或者CPU未饱和,请考虑增加此数量以更好地利用机器处理能力。默认值是主机CPU核心的数量。
-b
--pipeline.batch.size SIZE
管道要使用的批处理大小。此选项定义在尝试执行其过滤器和输出之前,单个工作线程将从输入收集的最大事件数。默认值为125个事件。较大的批量通常更有效,但代价是增加了内存开销。您可能需要在jvm.options配置文件中增加JVM堆空间。有关详细信息,请参阅Logstash配置文件。
-u
--pipeline.batch.delay DELAY_IN_MS
创建管道批次时,轮询下一个事件需要等待多长时间。此选项定义在将较小的批处理调度到筛选器和输出之前轮询下一个事件时等待的时间长度(以毫秒为单位)。默认值为50毫秒。
--pipeline.unsafe_shutdown 强制Logstash在关闭期间退出,即使内存中仍有飞行事件。默认情况下,Logstash将拒绝退出,直到所有已接收的事件都被推送到输出。启用此选项可能会导致关闭期间数据丢失。
--path.data PATH 这应该指向一个可写目录。Logstash将在需要存储数据时使用此目录。插件也可以访问此路径。默认值是dataLogstash home 下的目录。
-p
--path.plugins PATH
找到自定义插件的路径。可以多次给出该标志以包括多个路径。插件预计将在一个特定的目录层次结构: PATH/logstash/TYPE/NAME.rb其中TYPE是inputs,filters,outputs,或codecs,并且NAME是插件的名称。
-l
--path.logs PATH
将Logstash内部日志写入的目录。
--log.level LEVEL 设置Logstash的日志级别。可能的值是:
   fatal:记录应用程序中止后通常会出现的非常严重的错误消息
   error:记录错误
   warn:日志警告
   info:log verbose info(这是默认值)
   debug:日志调试信息(面向开发人员)
   trace:记录除调试信息之外的更细粒度的消息
--config.debug 将完全编译的配置显示为调试日志消息(您还必须已--log.level=debug启用)。警告:日志消息将包含作为纯文本传递给插件配置的任何密码选项,并可能导致明文密码出现在您的日志中!
-i
--interactive SHELL
下降到shell而不是正常运行。有效的shell是"irb"和"pry"。
-r
--config.reload.automatic
监视配置更改并在配置更改时重新加载。注意:使用SIGHUP手动重新加载配置。默认值为false。
--config.reload.interval RELOAD_INTERVAL 轮询配置位置以进行更改的频率。默认值为“3s”。
--http.host HTTP_HOST Web API绑定主机。此选项指定度量标准REST端点的绑定地址。默认值为"127.0.0.1"。
--http.port HTTP_PORT Web API http端口。此选项指定度量标准REST端点的绑定端口。默认值为9600-9700。此设置接受格式9600-9700的范围。Logstash将获取第一个可用端口。
--log.format FORMAT 指定Logstash是否应以JSON格式(每行一个事件)或纯文本(使用Ruby的Object#inspect)编写自己的日志。默认为“plain”。
--path.settings SETTINGS_DIR 设置包含logstash.yml 设置文件的目录以及log4j日志记录配置。这也可以通过LS_SETTINGS_DIR环境变量设置。默认值是configLogstash home 下的目录。
-V
--version
发出Logstash及其好友的版本,然后退出。
-h
--help
打印帮助




参考链接如下所示:



Chen

健康 · 开心 · 做自己