• 记一次zabbix server挂掉的事件


    zabbix:3.0版本,采用一个server,多个proxy的模式(别人装的,我刚入职,接手不久)

    系统:Linux X86_64

    配置:4 core 8G内存

    经过:

    上午11点,上完厕所回来发现dashboard上有大量告警,都是zabbix agent has no data for 15 min on hostname。

    第一反应是不是某人批量改了hotname导致的(hostname和zabbix上web端配置的主机名不一样会有这个告警,agent配置文件里面没有指明hostname的话;之前常有个别运维这样干)

    但是一想也不对,主机设备都不是一个业务的,不可能出现批量更改主机名的情况,随机打开几台的配置,发现都是一个proxy,怀疑是这个proxy出问题。这时候发现点击web页面有些卡(server配置低,WiFi网,之前也会卡的)

    发现这台proxy是之前就挂的机器很多,平时就很卡。所以怀疑是proxy死了。

    登录proxy机器,看负载没问题,proxy状态也正常,不过还是重启了下;

    再回来看dashboard,发现告警的设备越来越多,而且告警的短信和邮件都没再收到,感觉是server出问题了

    赶快登录server服务器,发现processor load的三个值都破60了(设备配置是4核),内存即将满了(8G)。前台web页面也卡的不行了。

    首先先用重启大法吧,同时看zabbix_server.log。发现起来后有个日志报内存不够,接着有一行报请增加historyindexcachesize配置参数

    接着server就死掉了。

    一方面请系统运维帮忙扩下资源(后扩到8核16G),自己更改下zabbix_server.conf的参数配置,当时调高了包括上面在内的多个参数

    再重启,发现每次都是同步到历史数据的时候又死了

    赶紧找DBA看看怎么回事(我们的mysql数据库是DBA维护的)

    DBA看后没有什么问题,只是负载有点高,找他清理下历史数据,只保留最近一个月的(之前设置的是90天,趋势数据是720天,我的天啊,保留这么长服务器性能数据有啥用,对我们一个高速增长的公司来说)

    我这边再重启,发现比之前好多了,server起来了,同时赶快把发送告警的action关掉,以防告警泛滥

    但是十几分钟后又挂了,妈的。发现是之前积压的告警队列太多了,action不停的调发送邮件,短信,钉钉的脚本导致server负载很高

    这怎么办呢,不知道怎么清理告警队列,有人说清理alert的数据表,这绝对不可能啊。。后来查到个办法,把发送告警的几个脚本内容都清空,这样action调用就很快了。

    真管用了,看到积压的告警在一直减少。

    but,最后还400多个没恢复,看zabbix 队列,发现基本都是最上面说的那台proxy上面的

    去这台proxy上,改了下zabbix_proxy.conf的那几个参数,调低了向server同步的数据的时间间隔,调高了HistoryCacheSize的值

    重启proxy,很快就好了。

    别忘了把action都开启,把告警的脚本都恢复回去

    这时候zabbix server有个告警:Zabbix value cache working in low memory mode 一直没恢复。感觉是我刚才把CacheSize调的太高了导致的,把它再调低点,重启告警恢复了。具体原因待研究。

    具体参考:

    http://blog.csdn.net/zhs2014150551/article/details/48975931

    http://www.ttlsa.com/zabbix/zabbix_server-conf-detail/  (这个建议,汉语解释较多)

    http://www.xiaomastack.com/2014/10/10/zabbix02/(推荐)

    http://www.ixdba.net/archives/2017/11/873.htm(后面看很全面)

    从中可以看出一个开源的监控软件也有很多要学习的地方,路漫漫其修远兮,静下心来看看官方文档

     补充:事后查原因,发现告警大约是11点开始的,看zabbix server的load,processor load的值在10点半的时候开始飙升,大约涨了4-5倍。但是那个时间点并没有做什么操作。

    但是我们的zabbix有很多的api接口供外部调用,做数据展示什么的,当时某部门在频繁的拉去数据,还有很多的grafana展示要用,怀疑是查询数据库太多导致了数据库负载升高,zabbix server连接数据库变慢,负载增加。

    后面一方面减少历史数据的保留时间,一方面增加系统资源,一方面调整api接口,不再查询主库,查询备库。

  • 相关阅读:
    asp.net core 操作误区
    asp.net core 通过ajax上传图片及wangEditor图片上传
    asp.net core 通过ajax调用后台方法(非api)
    使用 IIS 在 Windows 上托管 ASP.NET Core
    asp.net core 2.0 api ajax跨域问题
    【数据结构】算法 层数最深叶子节点的和 Deepest Leaves Sum
    【数据结构】算法 首个公共祖先 First Common Ancestor
    【数据结构】算法 Top K Frequent Words 前K个高频单词
    【数据结构】算法 Kth Largest Element in an Array 数组中的第K个最大元素
    【数据结构】算法 搜索旋转排序数组 Search in Rotated Sorted Array II
  • 原文地址:https://www.cnblogs.com/cq90/p/8087576.html
Copyright © 2020-2023  润新知