zoukankan      html  css  js  c++  java
  • 记一次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接口,不再查询主库,查询备库。

  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/cq90/p/8087576.html
Copyright © 2011-2022 走看看