在说数据库分表之前,先随便聊聊Zabbix的一些参数的优化吧,其实我也不是很懂,只是机器上了1500+,楞着头皮去调一下参数
首先是几个Poller的调整:
### Option: StartPollers (处理监控项的东西)
### Option: StartIPMIPollers (母鸡干什么用的,暂时没用,设为0)
### Option: StartPollersUnreachable (获取数据遇到不可到达时,交给这些进程处理)
### Option: StartHTTPPollers (监控HTTP,WEB那些东西用的,没用,设为0)
### Option: StartJavaPollers (监控JAVA专用进程,为毛就只有JAVA)
### Option: StartProxyPollers (处理代理的进程,暂时没用,设为0)
### Option: StartDiscoverers (处理自动发现的,没用,设为0)
### Option: StartPingers (如果用了ICMP PING那个模板的,这个值要调大一些)
把几个没用到的先关掉:StartHTTPPollers StartJavaPollers StartProxyPollers,设为0就可以了,然后可以观察ZabbixServer的图形来调整StartPollers和StartPollersUnreachable的数量:
要注意的是,例如StartPollers,虽然配置文件写是可用范围是0-1000,但这个1000是所有的进程的值,也就是说上面那些进程的总数不能超过1000,设的时候要注意一下这点。
关于Cache的调整:
### Option: CacheSize
### Option: CacheUpdateFrequency
### Option: HistoryCacheSize
### Option: TrendCacheSize
### Option: HistoryTextCacheSize
### Option: ValueCacheSize
关于内存的参数有这么多,都是要根据机器数量和item数量的增加而增加,这些内存的值不能大于系统内核的kernel.shmall这个值,否则申请不了内存程序启动不了
如果日志出现连续一大片地出现这些信息:
Zabbix agent item "vfs.fs.size[/boot,free]" on host "192.168.1.100" failed: first network error, wait for 15 seconds
resuming Zabbix agent checks on host "192.168.1.100": connection restored
说明你的poller不够,需要再加大poller,如果加大poller还是这样则需要减少监控的item,或者用proxy来做分布式监控了
机器数量多的时候,mysql里面的history表就会越来越大,虽然zabbix本身有删除功能(就是那个housekeeper的功能),但这东西太影响性能,所以网上的做法都是关闭这个东西,用mysql的表分区功能来实现清理历史数据还可以提升mysql的性能
一、先修改两张表的结构:
1 | |
1 | |
二、导入存储过程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
可以将这四个存储过程写成一个SQL文件直接导入:
1 | |
三、使用存储过程:
1 | |
例(不要急着直接执行,后面统一运行):
1 | |
zabbix_db_name:库名
table_name:表名
days_to_keep_data:保存多少天的数据
hourly_interval:每隔多久生成一个分区
num_future_intervals_to_create:本次一共生成多少个分区
这个例子就是history表最多保存7天的数据,每隔24小时生成一个分区,这次一共生成7个分区
下面这个存储过程就是统一调用:
1 2 3 4 5 6 7 8 9 10 11 12 | |
保存成文件,再次导入存储过程:
1 | |
以后只需要调用这个存储过程就可以了,每天执行一次:
1 | |
四、最后关掉Zabbix的HouseKeeper功能:
最后附上两个存储过程的文件~
参考文章:
https://www.zabbix.org/wiki/Docs/howto/mysql_partition
附件:http://down.51cto.com/data/2364929
本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1561221如需转载请自行联系原作者