您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 日喀则分类信息网,免费分类信息发布

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

2024/2/27 17:52:43发布25次查看
之前提到,用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匹配, 感谢原作者分享。
日喀则分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录