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

参数用途默认值

node.name

节点名称 主机名称

path.data

/数据存储路径 LOGSTASH_HOME/data/

pipeline.workers

输出通道的工作workers数据量(提升输出效率) cpu核数

pipeline.output.workers

每个输出插件的工作wokers数量 1

pipeline.batch.size

每次input数量 125

path.config

过滤配置文件目录  

config.reload.automatic

自动重新加载被修改配置 false or true

config.reload.interval

配置文件检查时间  

path.logs

日志输出路径  

http.host

绑定主机地址,用户指标收集 “127.0.0.1”

http.port

绑定端口 5000-9700

log.level

日志输出级别,如果config.debug开启,这里一定要是debug日志 info

log.format

日志格式 * plain*

path.plugins

自定义插件目录

 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最多打开监控文件数量

  

posted @ 2022-04-01 15:12  coding++  阅读(484)  评论(0编辑  收藏  举报