zabbix-server性能优化
zabbix性能低下的表现
1. zabbix队列有太多被延迟的item,可以通过administration-queue查看2. zabbix绘图中经常出现断图,一些item没有数据
3. 带有nodata()函数的触发器出现flase
4. 前端页面无响应,或者响应慢
解决办法如下:
1. 不要使用默认的模板,应该自己定制模板
2. 数据库调优
3. 架构优化,如果使用分布式,各服务器功能独立
4. Items、trigger调优
5. 更换更好的硬件
Zabbix性能优化的原则
1、确保zabbix内部组件性能处于被监控状态(调优的基础!)2、使用硬件性能足够好的服务器
3、不同角色分开,使用各自独立的服务器
4、使用分布式部署
5、调整MySQL性能
6、调整Zabbix自身配置
配置文件的参数优化
调整zabbix参数(/etc/zabbix/zabbix_server.conf)
StartPollers=500
StartPollersUnreachable=50
StartTrappers=30
StartDiscoverers=6
CacheSize=1G
CacheUpdateFrequency=300
StartDBSyncers=20
HistoryCacheSize=512M
TrendCacheSize=256M
HistoryTextCacheSize=80M
ValueCacheSize=1G
重启zabbix_server
Zabbix数据库优化
1. 对数据库软件本身的优化,采用更高性能的数据库版本
2. 对数据库本身的参数进行调优
3. 对zabbix数据库结构进行优化,进行分表操作,会最大程度提高zabbix的数据库性能,在分表的时候,需要关闭housekeeper
4. 在zabbix_server.conf中的logshowqueries参数是关于慢查询的设置,将其设置为1000,开启这个参数对慢查询继续记录,方便调优配置
5. 对zabbix的工作机制和各种process的作用要了解,对zabbix的数据库表结构也要有比较好的理解。
6. 对数据库优化(在32G内存的服务器中)
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
server-id = 1
表示是本机的序号为1
max_allowed_packet = 32M
接受的数据包大小;
max_heap_table_size =128 8M
定义了用户可以创建的内存表(memory table)的大小。
read_rnd_buffer_size = 512K
MySQL的随机读缓冲区大小。
sort_buffer_size = 16
MySQL执行排序使用的缓冲大小。
join_buffer_size = 16
联合查询操作所能使用的缓冲区大小
query_cache_size = 4096M
MySQL的查询缓冲大小
query_cache_limit = 4M
指定单个查询能够使用的缓冲区大小,默认1M
innodb_open_files =2048
nnodb能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是300
innodb_buffer_pool_size = 10G
nnoDB使用一个缓冲池来保存索引和原始数据
innodb_thread_concurrency = 16
默认设置为 0,表示不限制并发数,
[mysqldump]
quick
max_allowed_packet = 16M #服务器发送和接受的最大包长度
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M