zoukankan      html  css  js  c++  java
  • 记一次zabbix排错过程

    zabbix用了也有一段时间,基本上大大小小的报错都接触过。我个人有个习惯,偶尔会去tail -f 一下zabbix_server的日志,可能是强迫症的关系,不喜欢看到日志有任何报错信息。

    本来10.1应该放假,但是临回家前一天的时候是突然发现日志中频繁曝出以下这条报错。

    zabbix_server [4615]: ERROR [file:json.c,line:714] Something impossible has just happened.
    zabbix_server [4615]: ERROR [file:json.c,line:714] Something impossible has just happened.

    虽然暂时没发现对zabbix整体运行有什么影响,但是日志中频繁的报错让我很纠结,当时要赶火车回家过节,所以就暂时没管,到家后总是心里惦记着这件事,晚上无聊

    顺便连到服务器上分析一下。先根据报错谷歌了一下,没什么大的发现。好吧,我们去看看json.c里的源码714行这地方系干嘛的。

    # locate json.c
    /workspace/download/redis-2.8.7/deps/lua/src/lua_cjson.c
    /workspace/zabbix-2.0.11/src/libs/zbxjson/json.c

    以下是这行附近的代码,尼玛我擦这我那能看懂啊。 木办法c语言是弱项好吧,我没办法了。我只好开启我们zabbix最牛逼的Debug功能了。

     713                     default:
     714                         THIS_SHOULD_NEVER_HAPPEN;
     715                 }

    修改配置文件,重启zabbix-server,日志瞬间暴涨,开始对日志进行过滤,等待着报错的出现。

    #tail -f zabbix_server.log | grep "Something impossible has just happened."

    报错出现后,我手动吧日志拉到了本地,咱们来看看到底是什么情况。

      4615:20141002:002356.188 In lld_check_record() jp_row:'{"{#API_WEB}\}":"getSecretKey"}'
      4684:20141002:002356.188 query [txnlev:0] [select min(clock) from history where itemid=24155]
    zabbix_server [4615]: ERROR [file:json.c,line:714] Something impossible has just happened.
      4559:20141002:002447.962 In substitute_discovery_macros() data:'{#SERVICES_METHODS}'
    zabbix_server [4559]: ERROR [file:json.c,line:714] Something impossible has just happened.

    从以上日志分析出,每当执行到有关这两个自动发现所获取的变量时就会报 Something impossible has just happened.

    这条错误,想了一下这两个是前几天给某个开发所添加的自动监控一些api接口的监控程序。我先手动把这两个api相关监控都停了

    发现不报错了,又仔细看了一下一上的发现一个可疑的地方,下面这个括号里的API_WEB后边多了一个"\}"

    {"{#API_WEB}\}":"getSecretKey"}'

    基本上问题已经定位了,在自动发现接口的脚本里,多写了一个"\}"导致了以上报错。

    登录到服务器修改了脚本。日志里不在报错,恩恩。。困扰了2天的问题终于静下心来搞定了。搞定后心情大好,抽根烟舒服舒服然后汤杯我碎觉~! =^_^=

  • 相关阅读:
    Fast AutoAugment阅读笔记
    object as point阅读笔记
    Hardware-in-the-loop End-to-end Optimization of Camera Image Processing Pipelines阅读笔记
    TP框架使用命令行
    shopee常见的刊登报错问题
    TP执行队列的命令
    正则匹配手机号码
    时间格式化转换
    使用fixed定位将元素(如按钮)悬浮在页面底部
    LNMP一键安装教程
  • 原文地址:https://www.cnblogs.com/itflycat/p/4003775.html
Copyright © 2011-2022 走看看