dyok 发表于 2013-3-20 09:38:31

zabbix性能优化

本帖最后由 dyok 于 2013-3-20 09:39 编辑

一、Zabbix简介1.1 Zabbix简介  官方网站:http://www.zabbix.com。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。1.2 Zabbix功能  具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。1.3 优劣势  优点:开源,无软件成本投入;Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。
缺点:中文资料较少。1.4 参考资源 Monitor MySQL with Zabbix
http://www.badllama.com/content/monitor-mysql-zabbix
Monitor Apache with Zabbix
http://www.badllama.com/content/monitor-apache-zabbix
Monitor Nginx with Zabbix
http://www.badllama.com/content/monitor-nginx-zabbix
Partitioning Tables on Zabbix 1.8
http://zabbixzone.com/zabbix/partitioning-tables/
Heavy MySQL monitoring solution
https://www.zabbix.com/wiki/howto/monitor/db/mysql/extensive_mysql_monitoring_including_replication二、Mysql监控配置2.1 说明  Mysql的监控主要通过配置文件的“UserParameter”参数结合“Items”监控项目或相关模板实现。实现后如图一所示。图一:MySQL性能监控图2.2 设定配置文件  Zabbix安装后自带有详细的mysql配置实例,先将配置文件复制到相应的地方,然后按实际情况修改这个配置文件。图二是监控MySQL的模板内容。
图二:MySQL性能监控模板图

[*]cp /root/zabbix-2.0.5/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf


[*]UserParameter=mysql.status
[*],echo "show global status where Variable_name='$1';" | mysql -uzabbix -ppassword -N | awk '{print $$2}' #取mysql状态,如图三所示
图三:MySQL性能监控状态图
[*]UserParameter=mysql.size
[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | mysql -uzabbix -ppassword –N #取mysql操作状态,如图四所示
图四:MySQL性能流量图

[*]UserParameter=mysql.ping,HOME=/var/lib/mysql/zabbix mysqladmin -uzabbix -ppassword | grep -c alive
[*]UserParameter=mysql.version,mysql –V #取mysql版本,如图五所示
图五:MySQL版本图2.3修改agnet配置文件  完成后修改相应的agent配置文件,加入新增加的“userparameter_mysql.conf”文件。

[*]vi /usr/local/zabbix/etc/zabbix_agent.conf
[*]Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #加入mysql配置
[*]vi /usr/local/zabbix/etc/zabbix_agentd.conf
[*]Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #加入mysql配置
  需要说明的是MySQL的监控涉及主机名、用户名和密码(这个在2.2项中有说明),要注意的是如果mysql的用户名是root@localhost的话要在监控设定的页面中将主机名称改为localhost,同时相应的zabbix_agent.conf相关配置文件中的Hostnam项要设成localhost,如图六所示。图六:MySQL主机监控设定图2.4 重启应用


[*]service zabbix_agentd restart
  如果存在问题,注意查看zabbix_server.log和zabbix_agentd.log日志,然后对照进行相应调整。
三、Zabbix性能优化  网上这方面的资源其实挺多的,唯一麻烦点的是大部份都是英文的,但是对照相应的指令也可以猜出操作方式,以下是可以参考的一些内容。mysql数据库自动备份http://ourmysql.com/archives/356?f=wb
改良版本mysqldump来备份MYSQL数据库http://ourmysql.com/archives/463?f=wbPerformance Tuning MySQL for Zabbix
http://sysadminnotebook.blogspot.com/2011/08/performance-tuning-mysql-for-zabbix.html3.1 度量Zabbix性能  通过Zabbix的NVPS(每秒处理数值数)来衡量其性能,在Zabbix的dashboard上有一个粗略的估值,如图七所示。图七:nvps图
3.2 Zabbix性能低下的表象1、zabbix队列中有太多被延迟的item: Administration -> Queue(如图八、图九所示)2、zabbix绘图中经常性出现断档,一些item没有数据3、带有nodata()函数的触发器出现false4、前端页面无响应图八:zabbix性能图
图九:zabbix queue图
3.3 Zabbix性能低下的因素3.4 Zabbix性能优化的原则
1、确保zabbix内部组件性能处于被监控状态(调优的基础!)2、使用硬件性能足够好的服务器3、不同角色分开,使用各自独立的服务器4、使用分布式部署5、调整MySQL性能6、调整Zabbix自身配置
四、MySQL性能优化
  本例服务器为IBM X3550(CPU Xeon E5504 4核 RAM 4G HDD RAID1 146G);Zabbix 2.05;MySQL版本“mysql Ver 14.14 Distrib 5.1.67”;现有监控内容如图十所示,服务器及MySQL性能如图十一、十二所示。图十:zabbix NVPS图
图十一:zabbix 主机性能图
图十二:zabbix MySQL性能图
4.1 使用tmpfs文件系统
[*]cd /
[*]mkdir zabbixtmp
[*]chown mysql:mysql zabbixtmp
[*]vi /etc/fstab #配置/etc/fstab文件
[*]tmpfs /zabbixtmp tmpfs rw,size=400m,nr_inodes=10k,mod=0700,uid=mysql,gid=mysql 0 0
  在配置/etc/fstab参数中需要注意文件的大小设置,一般情况下设成物理内存的8%-10%。
4.2 配置my.cnf文件
[*]
[*]datadir=/var/lib/mysql
[*]socket=/var/lib/mysql/mysql.sock
[*]user=mysql
[*]
[*]# Disabling symbolic-links is recommended to prevent assorted security risks
[*]tmpdir=/zabbixtmp
[*]#network
[*]connect_timeout =60
[*]wait_timeout =5000
[*]max_connections =400
[*]max_allowed_packet =16M
[*]max_connect_errors =400
[*]#limits
[*]tmp_table_size =256M
[*]max_heap_table_size =64M
[*]table_cache =256
[*]#logs
[*]slow_query_log_file =/var/log/slowquery.log
[*]
[*]log_error =/var/log/mysql-error.log
[*]long_query_time =10
[*]slow_query_log =1
[*]#innodb
[*]
[*]#innodb_data_file_path =ibdata1:128M;ibdata2:128M:autoextend:max:4096M
[*]innodb_file_per_table =1
[*]innodb_status_file =1
[*]
[*]innodb_additional_mem_pool_size =128M
[*]innodb_buffer_pool_size =2800M
[*]innodb_flush_method =O_DIRECT
[*]#innodb_io_capacity =1000
[*]innodb_support_xa =0
[*]innodb_log_file_size =64M
[*]innodb_log_buffer_size =32M
[*]symbolic-links=0
[*]#log-queries-not-using-indexes
[*]thread_cache_size=4
[*]query_cache_size=128M
[*]#join_buffer_size=512K
[*]join_buffer_size=128M
[*]read_buffer_size=128M
[*]read_rnd_buffer_size=128M
[*]key_buffer=128M
[*]innodb_flush_log_at_trx_commit=2
[*]
[*]log-error=/var/log/mysqld.log
[*]pid-file=/var/run/mysqld/mysqld.pid
  “innodb_buffer_pool_size”一般设为服务器物理内存的70%-80%。4.3 参考内容InnoDB Startup Options and System Variables http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.htmlMySQL Performance Blog http://www.mysqlperformanceblog.comBenchmarks For Percona Server http://www.percona.com/software/percona-server/benchmarksChoosing innodb_buffer_pool_size http://www.mysqlperformanceblog. ... b_buffer_pool_size/
你可以从这里下载到本文的电子档

心心失意 发表于 2013-3-20 09:47:16

爱——不是想出来的,爱——是做出来的!!

efn阿克说 发表于 2013-5-16 01:01:06

自从我变成了狗屎,就再也没有人踩在我头上了。

59519751 发表于 2013-5-16 19:05:06

月经不仅仅是女人的痛苦,也是男人的痛苦。

TOUVE 发表于 2013-5-17 15:34:54

鸳鸳相抱何时了,鸯在一边看热闹。

sfyhip 发表于 2013-5-18 10:10:01

支持一下:lol

arongsoft 发表于 2013-5-19 06:50:25

长大了娶唐僧做老公,能玩就玩一玩,不能玩就把他吃掉。
页: [1]
查看完整版本: zabbix性能优化