zabbix企业应用之优化web事件(events)打开速度

  1. 云栖社区>
  2. 博客>
  3. 正文

zabbix企业应用之优化web事件(events)打开速度

技术小胖子 2017-11-10 16:32:00 浏览1034

随着监控主机数量增大,trigger与events也不断增加,导致在web里查看事件的速度变的非常慢,通过events表发现最大的events已经13亿了,而且默认事件打开是最近7天里所有数据,所有肯定很忙,目前经过优化后提供了2倍打开速度。

优化前,使用firebug打开测试

wKiom1OjpTfB13_PAAXvy7XyLwA461.jpg可以看到打开速度为29.07秒

 下图为优化后的,通过查看数据库发现events事件表有13亿条数据,所以仅保留最近一个月数据,其他数据删除,优化后打开事件的使用时间如下图,打开时间为10.61秒

wKioL1OjomaQysKFAATmCdCOz3I158.jpg

所以本次对于报警事件的优化完成,优化前打开时间为29.07秒,优化后打开时间为10.61秒,提升了2倍速度。

下面是如何优化的步骤:

1、在zabbix数据库服务器里登陆数据库,使用下面命令

1
2
use zabbix;
delete  from  events where  clock <= UNIX_TIMESTAMP('2014-06-01');

这样就能删除2014年6月1日前的events数据了,为了能自动删除数据,可以做个脚本+crontab

 2、shell脚本

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
#this script name is delete_events.sh
host="localhost"
socket="/data/perconadata5.6/mysql.sock"
user="zabbix"
pass="zabbix"
port="3306"
time=`date -d "last-month" +%Y-%m-01`
mysql -u $user -p$pass -h$host  -S $socket -P $port <<EOF
use zabbix;
delete  from  events where  clock <= UNIX_TIMESTAMP('${time}') limit 40000;
EOF

这样是在删除上个月的数据,保留最近1个月的,并且每次删除4w条

3、crontab

1
* * * * * /bin/bash /usr/local/zabbix/bin/delete_events.sh

下面是使用此脚本删除后,数据events表的情况

wKiom1OjqjrzVp0PAAJhru4ZuWQ756.jpg

最大eventid为13亿,现在保留56w数据。

希望此文能对大家有益。



 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1428561,如需转载请自行联系原作者