zabbix php 优化,zabbix笔记之异常优化

zabbix异常优化

脚本超时问题

在在使用自定义脚本的时候,有时候发现报错这种报错:Timeout while executing a shell script

设置脚本超时时间

修改zabbix-server和zabbix-agent 配置文件,设置超时时间,zabbix的配置文件默认为3秒,我把它改成30秒了

[[email protected] ~]#vim /etc/zabbix/zabbix_server.conf

Timeout=30zabbix_agentd.conf

Timeout=30

value too …… large 问题

在用zabbix自带模板监控磁盘空间的时候,当磁盘空间很大的时候(我的是2T)发现item变得不支持了,报错如下:Value 2133522087936.000000 is too small or too large.

[[email protected] ~]# find / -name "func.inc.php" //找到zabbix定义单位的配置文件

/usr/share/zabbix/include/cp /usr/share/zabbix/include/func.inc.php /usr/share/zabbix/include/func.inc.php.bak //备份配置文件

[[email protected] ~]# vim /usr/share/zabbix/include/func.inc.php //备份配置文件

if ($size > 1073741824) {

$size= $size / 1073741824;

$prefix= ‘G‘;

}

elseif ($size> 1048576) {

$size= $size / 1048576;

$prefix= ‘M‘;

}

单位异常问题

在使用自定义监控项的时候发现,zabbix取到的值很大的时候,会自动变成K,M,G

f808fa7eeb7b14ed5127995b168512e6.png

可以通过修改func.inc.php文件来优化这种问题

[[email protected] ~]# find / -name func.inc.php/usr/share/zabbix/include/cpfunc.inc.php func.inc.php.bak

[[email protected] include]#vim func.inc.php

$blackList= [‘%‘, ‘ms‘, ‘rpm‘, ‘RPM‘,‘as‘];

# as可以理解为一个单位,可以自定义

历史数据过大问题

Zabbix运行一段时间时候,会留下大量的历史数据,会发现zabbix的数据库一直增大,运行了将近一年后,数据库达到了30G,可能会造成系统性能下降,查看历史数据速度变慢所以需要对zabbix的数据库进行优化,来提高数据库的性能

思路:可以通过定位时间来删除历史数据

注意:mysql中的zabbix库中的时间都是用时间戳来记录,因此我们要先将时间格式装换为时间戳格式,再需要根据时间戳来删除数据

时间格式转化

先将标准时间转换为时间戳格式

[[email protected] scripts]# date +%s -d "2019-9-1"

1567267200date +%s -d "-30 day"(推荐使用该种方式)1566908243

MySQL清理数据

按照时间段来删除历史数据

主要清除以下几张表中的数据:

历史数据表(history history_str history_uint )

趋势表(trends trends_uint enents)

mysql> delete from history where clock <1566908243;

mysql>optimize table history;

清除全部数据的方法

mysql>usezabbix;

mysql>truncate tablehistory;

mysql>optimize tablehistory;

mysql>truncate tablehistory_str;

mysql>optimize tablehistory_str;

mysql>truncate tablehistory_uint;

mysql>optimize tablehistory_uint;

mysql>truncate tabletrends;

mysql>optimize tabletrends;

mysql>truncate tabletrends_uint;

mysql>optimize tabletrends_uint;

mysql>truncate tableevents;

ERROR1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`zabbix`.`acknowledges`, CONSTRAINT `c_acknowledges_2` FOREIGN KEY (`eventid`) REFERENCES`zabbix`.`events` (`eventid`))

Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构

解决方法:

mysql> SET foreign_key_checks=0;truncate tableevents;

optimizetableevents;

mysql> SET foreign_key_checks=1;

mysql>optimize table events;

Zabbix poller processes more than 75% busy问题

有时候会发现zabbix有这种告警:Zabbix poller processes more than 75% busy

1.编辑Zabbix Server的配置文件,增加一行配置StartPollers=10,将StartPollers改成多少取决于服务器的性能和监控的数量

[]# vim /etc/zabbix/zabbix_server.conf

StartPollers=10

2.重启Zabbix

[[email protected] ~]# systemctl restart zabbix-server

自动发现规则优化

我的图不见了,借用的是网图,不太清晰,有机会再截

测试通过读取文件中的信息自动创建监控项,创建结果下图

980d16803e6fd4dd2d80bb57936517fd.png

由于修改了原始的文件信息,再次查看创建的监控项时,系统提示

6212b522e66fc3e8db281f22d63b477c.png

该时间默认的时30天,上图是已经修改的时间需要在创建自动发现规则时,修改参数Keep lost resources period;如下图

8bd62d32b854236a8ecf99cf82d879fa.png

原文:https://www.cnblogs.com/zhangcheng94/p/12183189.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值