设为首页 收藏本站
查看: 1153|回复: 0

[经验分享] 也谈zabbix性能优化

[复制链接]

尚未签到

发表于 2019-1-17 12:31:03 | 显示全部楼层 |阅读模式
  

一、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 参考资源
    企业应用监控利器-ZABBIX(包括zabbix安装方法、中文字体的设定和防火墙设定等)http://waringid.blog.运维网.com/65148/904201
  
Zabbix中文使用手册(包括重要的zabbix监控参数、重要监控图表的意义等)http://waringid.blog.运维网.com/65148/945352

  
zabbix中文配置指南(包括item参数的定制,windows监控参数的定义,snmp设备的OID查询、设置等。zabbix使用手册侧重使用人员,而这份文档侧重专业管理人员)http://waringid.blog.运维网.com/65148/955939

    zabbix中文配置指南续(时间同步,windows、linux、cisco IOS设置以及cisco 2960网络设备监控)http://waringid.blog.运维网.com/65148/1104627
  
zabbix之auth login邮件报警(通过使件msmtp实现zabbix验证型邮件的报警通知功能)http://waringid.blog.运维网.com/65148/1142579

  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=wb

  Performance Tuning MySQL for Zabbix
http://sysadminnotebook.blogspot.com/2011/08/performance-tuning-mysql-for-zabbix.html


3.1 度量Zabbix性能

  通过Zabbix的NVPS(每秒处理数值数)来衡量其性能,在Zabbix的dashboard上有一个粗略的估值,如图七所示。


图七:nvps图


3.2 Zabbix性能低下的表象
  1、zabbix队列中有太多被延迟的item: Administration -> Queue(如图八、图九所示)
  2、zabbix绘图中经常性出现断档,一些item没有数据
  3、带有nodata()函数的触发器出现false
  4、前端页面无响应

图八: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文件


  • [mysqld]
  • 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
  • [mysqld_safe]
  • 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.html
  MySQL Performance Blog http://www.mysqlperformanceblog.com
  Benchmarks For Percona Server http://www.percona.com/software/percona-server/benchmarks
  Choosing innodb_buffer_pool_size http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/

  你可以从这里下载到本文的电子档




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-664402-1-1.html 上篇帖子: zabbix源分支 下篇帖子: centos7.5安装zabbix3.0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表