最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

【Logstash系列】使用Redis并自定义Grok匹配

来源:动视网 责编:小采 时间:2020-11-09 13:27:54
文档

【Logstash系列】使用Redis并自定义Grok匹配

【Logstash系列】使用Redis并自定义Grok匹配:之前提到,用RabbitMQ作为消息队列。但是这个东西实在太过高精尖,不懂erlang不会调优的情况下,很容易挂掉——基本上我这里试验结果跑不了半小时日志传输就断了。所以改用简单易行的redis来干这个活。 之前的lib里,有inputs/redis.rb和output
推荐度:
导读【Logstash系列】使用Redis并自定义Grok匹配:之前提到,用RabbitMQ作为消息队列。但是这个东西实在太过高精尖,不懂erlang不会调优的情况下,很容易挂掉——基本上我这里试验结果跑不了半小时日志传输就断了。所以改用简单易行的redis来干这个活。 之前的lib里,有inputs/redis.rb和output


之前提到,用RabbitMQ作为消息队列。但是这个东西实在太过高精尖,不懂erlang不会调优的情况下,很容易挂掉——基本上我这里试验结果跑不了半小时日志传输就断了。所以改用简单易行的redis来干这个活。 之前的lib里,有inputs/redis.rb和outputs/redis.rb两

之前提到,用RabbitMQ作为消息队列。但是这个东西实在太过高精尖,不懂erlang不会调优的情况下,很容易挂掉——基本上我这里试验结果跑不了半小时日志传输就断了。所以改用简单易行的redis来干这个活。

之前的lib里,有inputs/redis.rb和outputs/redis.rb两个库,不过output有依赖,所以要先gem安装redis库,可以修改Gemfile,取消掉相关行的注释,搜redis即可。

然后修改agent.conf:

input {
 file {
 type => "nginx"
 path => ["/var/log/nginx/access.log" ]
 }
}
output {
 redis {
 host => "MyHome-1.domain.com"
 data_type => "channel"
 key => "nginx"
 type => "nginx"
 }
}

启动方式还是一样。

接着修改server.conf:

input {
 redis {
 host => "MyHome-1.domain.com"
 data_type => "channel"
 type => "nginx"
 key => "nginx"
 }
}
filter {
 grok {
 type => "nginx"
 pattern => "%{NGINXACCESS}"
 patterns_dir => ["/usr/local/logstash/etc/patterns"]
 }
}
output {
 elasticsearch { }
}

然后创建Grok的patterns目录,主要就是github上clone下来的那个咯~在目录下新建一个叫nginx的文件,内容如下:

NGINXURI %{URIPATH}(?:%{URIPARAM})*
NGINXACCESS \[%{HTTPDATE}\] %{NUMBER:code} %{IP:client} %{HOSTNAME} %{WORD:method} %{NGINXURI:req} %{URIPROTO}/%{NUMBER:version} %{IP:upstream}(:%{POSINT:port})? %{NUMBER:upstime} %{NUMBER:reqtime} %{NUMBER:size} "(%{URIPROTO}://%{HOST:referer}%{NGINXURI:referer}|-)" %{QS:useragent} "(%{IP:x_forwarder_for}|-)"

Grok正则的编写,可以参考wiki进行测试。

也可以不写配置文件,直接用–grok-patterns-path参数启动即可。

ps: 考察了一下statsd,发现它也要另存一份数据,放弃掉。转研究Kibana界面和Elasticsearch的分布式。

文档

【Logstash系列】使用Redis并自定义Grok匹配

【Logstash系列】使用Redis并自定义Grok匹配:之前提到,用RabbitMQ作为消息队列。但是这个东西实在太过高精尖,不懂erlang不会调优的情况下,很容易挂掉——基本上我这里试验结果跑不了半小时日志传输就断了。所以改用简单易行的redis来干这个活。 之前的lib里,有inputs/redis.rb和output
推荐度:
标签: 使用 自定义 系列
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top