请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

logstash启动后如果过滤条件中ruby语法;开始过滤日志的会报错ruby语法;但是ruby语法时正确的

这个错误会在启动logstash后偶尔出来;重启logstash后;重新过滤日志就会恢复正常。ruby错误消失;

请问这个是没把ruby环境加载进来嘛?//img1.sycdn.imooc.com//szimg/5b727cca0001414c10520939.jpg

原始日志格式

2018-06-05T14:44:38.954048+08:00 94050 [Note] Aborted connection 94050 to db: 'information_schema' user: 'telemonitor' host: '134.108.1.19' (Got an error reading communication packets)
2018-06-05T14:44:41.296781+08:00 0 [ERROR] /apps01/teledb/mysql6606/bin/mysqld: Got an error reading communication packets
2018-06-05T14:44:41.307480+08:00 0 [ERROR] /apps01/teledb/mysql6606/bin/mysqld: Got an error reading communication packets
2018-06-05T14:44:53.909580+08:00 94071 [Note] Aborted connection 94071 to db: 'information_schema' user: 'telemonitor' host: '134.108.1.19' (Got an error reading communication packets)

过滤条件:空格隔开后将第三块定义为alarm_level;带上前面的日志时间


        #过滤MySQL日志
        dissect{
            mapping => {
                "message"=>"%{log_time}+%{} %{} %{alarm_level} %{}"
            }
        }
        mutate {
            gsub=> ["alarm_level","[\[\]]",""]
        }
        
        ruby{
            code => 'event.set("time",(Time.parse(event.get("log_time"))))'
       }

        ruby{
            code => 'event.set("time",event.get("time")+8*60*60)'
        }

过滤时虽然ruby没错但是老是出现ruby错误;请求老师如何用ruby脚本写

正在回答

2回答

你这个报错很有可能是 log_time 没有导致的,你可以加一个 if 判断,只有有该字段的时候才执行 ruby。


另外你这个地方的时间处理感觉没啥意义啊,直接 date 处理一下不就好了吗?为什么要给他 +8*60*60


下面是我的解法

        dissect{

            mapping => {

                "message"=>"%{log_time} %{} [%{alarm_level}] %{}"

            }

        }


        date {

            match => ["log_time","ISO8601"]

        }


0 回复 有任何疑惑可以回复我~
  • 提问者 qq_无妄_3 #1
    谢谢您;老师。
    回复 有任何疑惑可以回复我~ 2018-08-16 14:37:56
rockybean 2018-08-10 07:42:42

没有看到你的配置和错误截图,我还真没遇到过这种情况

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_无妄_3 #1
    老师;就是上面我传上的那个图;时而好时而不好;重启好几遍才可以碰到不出错的情况;过滤条件完全没改,也没错。就是ruby经常出问题。我是tar包安装的。老师通过ruby脚本可以解决吗?在外部写脚本;我没看懂官网的ruby脚本;您能不能在慕课笔记中发布一个ruby脚本demo啊?
    回复 有任何疑惑可以回复我~ 2018-08-14 15:00:05
  • 提问者 qq_无妄_3 #2
    就是不稳定;有时候传入四条相同格式的日志;只有一条ruby完好解析;其他报错;有时候一条也解析不了;有时候又可以解析四条。我用的是6.2.4版本的。
    回复 有任何疑惑可以回复我~ 2018-08-14 15:02:46
  • rockybean 回复 提问者 qq_无妄_3 #3
    那你把你的具体需求列一下,比如原始日志是什么,目标数据是什么,然后我才能写解决方案
    回复 有任何疑惑可以回复我~ 2018-08-14 15:02:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信