ELKF++:logstash 配置详解
Logstash Input 配置详解
1、从文件中输入:👇
从文件读取数据,如常见的日志文件。文件读取通常要解决几个问题:
配置项:
补充:
path 语法配置:
/var/log/*.log:匹配/var/log目录下以.log结尾的所有文件 /var/log/**/*.log:匹配/var/log所有子目录下以.log结尾的文件 /var/log/{app1,app2,app3}/*.log:匹配/var/log目录下app1,app2,app3子目录中以.log结尾的文件
sincedb 语法配置:
通过logstash-input-file插件导入了一些本地日志文件时,logstash会通过一个名为sincedb的独立文件中来跟踪记录每个文件中的当前位置。
这使得停止和重新启动Logstash成为可能,并让它在不丢失在停止Logstashwas时添加到文件中的行数的情况下继续运行。
sincedb默认保存在当前用户的Home目录下。
在调试的时候,我们可能希望取消sincedb的记录功能,使文件每次都能从头开始读取。
此时,我们可以这样来做:
input { file { path => ["文件路径"] start_position => "beginning" sincedb_path => "/dev/null" } }
2、从 HTTP 中输入:👇
Http插件是2.0版本才出现的新插件,1.x是没有这个插件的。
这个插件可以帮助logstash接收其他主机或者本机发送的http报文。
插件的原理很简单,它自己启动了一个ruby的服务器,用于接收Http请求。
然后会把host(IP地址)和header相关的信息添加到event中。
下面就看看这个插件如何使用吧!
先看看默认的配置吧!
http {}
简单到心碎啊!其实有很多参数都是默认的... 上面的配置其实相当于:
http{ host => "0.0.0.0" port => 8080 additional_codecs => {"application/json"=>"json"} codec => "plain" threads => 4 ssl => false }
参数详解:
3、从Redis 中输入:👇
input { redis { batch_count => 1 #EVAL命令返回的事件数目 data_type => "list" #logstash redis插件工作方式 key => "logstash-test-list" #监听的键值 host => "127.0.0.1" #redis地址 port => 6379 #redis端口号 password => "123qwe" #如果有安全认证,此项为密码 db => 0 #redis数据库的编号 threads => 1 #启用线程数量 } } output { stdout{} }
data_type logstash工作的类型:
logstash 中的 redis插件,指定了三种方式来读取redis队列中的信息。
list => BLPOP
channel => SUBSCRIBE
pattern_channel => PSUBSCRIBE
其中list,相当于队列;channel相当于发布订阅的某个特定的频道;pattern_channel相当于发布订阅某组频道。
Logstash 文件详解
logstash.yml
参数 | 用途 | 默认值 |
---|---|---|
|
节点名称 | 主机名称 |
|
/数据存储路径 | LOGSTASH_HOME/data/ |
|
输出通道的工作workers数据量(提升输出效率) | cpu核数 |
|
每个输出插件的工作wokers数量 | 1 |
|
每次input数量 | 125 |
|
过滤配置文件目录 | |
|
自动重新加载被修改配置 | false or true |
|
配置文件检查时间 | |
|
日志输出路径 | |
|
绑定主机地址,用户指标收集 | “127.0.0.1” |
|
绑定端口 | 5000-9700 |
|
日志输出级别,如果config.debug开启,这里一定要是debug日志 | info |
|
日志格式 | * plain* |
|
自定义插件目录 |
startup.options:
参数 | 用途 |
---|---|
JAVACMD =/usr/bin/java |
本地jdk |
LS_HOME =/opt/logstash |
logstash所在目录 |
LS_SETTINGS_DIR ="${LS_HOME}/config" |
默认logstash配置文件目录 |
LS_OPTS ="–path.settings ${LS_SETTINGS_DIR}" |
logstash启动命令参数 指定配置文件目录 |
LS_JAVA_OPTS ="" |
指定jdk目录 |
LS_PIDFILE =/var/run/logstash.pid |
logstash.pid所在目录 |
LS_USER =logstash |
logstash启动用户 |
LS_GROUP =logstash |
logstash启动组 |
LS_GC_LOG_FILE =/var/log/logstash/gc.log |
logstash jvm gc日志路径 |
LS_OPEN_FILES =65534 |
logstash最多打开监控文件数量 |