本文为您介绍如何创建Logstash采集配置和处理配置。
插件介绍
- logstash-input-file插件
logstash-input-file插件以tail方式采集日志。更多信息,请参见logstash-input-file。
- logstash-output-logservice插件
logstash-output-logservice插件将采集到的日志进行处理并上传到日志服务。
操作步骤
- 创建一个配置文件到C:\logstash-2.2.2-win\conf\目录。
请根据实际情况,替换logstash-2.2.2-win。您可以为每种日志创建一个配置文件,格式为*.conf。
- 创建采集配置和处理配置。
请根据实际情况,配置如下信息(input为采集配置,详情配置请参见Logstash官方文档,output为处理配置),并添加到配置文件中。
说明- 配置文件格式必须以UTF-8无BOM格式编码,可以通过文本编辑器修改文件编码格式。
- path参数中配置的文件路径,请使用UNIX模式的分隔符,例如C:/test/multiline/*.log,否则无法支持模糊匹配。
- type参数在同一个配置文件内保持一致。如果服务器上存在多个Logstash配置文件,请保证各配置文件中的type参数唯一。
input { file { type => "iis_log_1" path => ["C:/inetpub/logs/LogFiles/W3SVC1/*.log"] start_position => "beginning" } } filter { if [type] == "iis_log_1" { #ignore log comments if [message] =~ "^#" { drop {} } grok { # check that fields match your IIS log settings match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{IPORHOST:site} %{WORD:method} %{URIPATH:page} %{NOTSPACE:querystring} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clienthost} %{NOTSPACE:useragent} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:scstatus} %{NUMBER:time_taken}"] } date { match => [ "log_timestamp", "YYYY-MM-dd HH:mm:ss" ] timezone => "Etc/UTC" } useragent { source=> "useragent" prefix=> "browser" } mutate { remove_field => [ "log_timestamp"] } } } output { if [type] == "iis_log_1" { logservice { codec => "json" endpoint => "***" project => "***" logstore => "***" topic => "" source => "" access_key_id => "***" access_key_secret => "***" to_json => true max_send_retry => 10 max_buffer_items => 4000 max_buffer_bytes => 2097152 max_buffer_seconds => 3 } } }
表 1. 处理配置参数说明 参数 是否必填 说明 endpoint 是 日志服务的服务入口。 project 是 日志服务Project。 logstore 是 日志服务Logstore。 topic 是 日志主题。 source 是 日志来源。自定义填写。 access_key_id 是 阿里云账号的AccessKey ID。更多信息,请参见访问密钥。 access_key_secret 是 阿里云账号的AccessKey Secret。更多信息,请参见访问密钥。 to_json 否 是否按照JSON格式解析日志。 - (默认)true:按照JSON格式解析日志。
如果日志是字符串格式,将使用双引号("")包裹。
- false:按照字符串格式解析日志。
如果日志是JSON格式,将被转义。
max_send_retry 是 数据包发送到日志服务发生异常时的最大重试次数,重试不成功的数据包会被丢弃,重试间隔为200毫秒。 max_buffer_items 否 每个数据包所缓存的日志条数。 如果未设置,表示使用默认值(4000条)。
max_buffer_bytes 否 每个数据包所缓存的日志大小,最大值为10485760。单位:Bytes。 如果未设置,表示使用默认值(2097152 Bytes)。
max_buffer_seconds 否 最大缓存时间。单位:秒。 如果未设置,表示使用默认值(3秒)。
- 重启Logstash。具体操作,请参见启动服务。
后续步骤
在PowerShell中启动logstash.bat,logstash进程会在前台工作,一般用于配置测试和采集调试。建议调试通过后,把Logstash设置为Windows服务。可以保持后台运行以及开机自启动。更多信息,请参见设置Logstash为Windows服务。