热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

也谈zabbix性能优化

一、Zabbix简介1.1Zabbix简介官方网站:http:www.zabbix.com。Zabbix通过CS模式采集数据,通过BS模式在web端展示和配置。1.2Za

 

一、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.51cto.com/65148/904201



Zabbix中文使用手册(包括重要的zabbix监控参数、重要监控图表的意义等)http://waringid.blog.51cto.com/65148/945352



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


  zabbix中文配置指南续(时间同步,windows、linux、cisco IOS设置以及cisco 2960网络设备监控)http://waringid.blog.51cto.com/65148/1104627



zabbix之auth login邮件报警(通过使件msmtp实现zabbix验证型邮件的报警通知功能)http://waringid.blog.51cto.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性能监控模板图

  
  1. cp /root/zabbix-2.0.5/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf  

  
  1. UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | mysql -uzabbix -ppassword -N | awk '{print $$2}' #取mysql状态,如图三所示  

图三:MySQL性能监控状态图

  
  1. 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性能流量图

  
  1. UserParameter=mysql.ping,HOME=/var/lib/mysql/zabbix mysqladmin -uzabbix -ppassword | grep -c alive 
  2. UserParameter=mysql.version,mysql –V #取mysql版本,如图五所示  

图五:MySQL版本图

2.3修改agnet配置文件

  完成后修改相应的agent配置文件,加入新增加的“userparameter_mysql.conf”文件。

  
  1. vi /usr/local/zabbix/etc/zabbix_agent.conf 
  2. Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #加入mysql配置 
  3. vi /usr/local/zabbix/etc/zabbix_agentd.conf 
  4. 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 重启应用

  
  1. 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文件系统

  
  1. cd / 
  2. mkdir zabbixtmp 
  3. chown mysql:mysql zabbixtmp 
  4. vi /etc/fstab #配置/etc/fstab文件 
  5. 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文件 

  
  1.  [mysqld] 
  2. datadir=/var/lib/mysql 
  3. socket=/var/lib/mysql/mysql.sock 
  4. user=mysql 
  5.  
  6. # Disabling symbolic-links is recommended to prevent assorted security risks 
  7. tmpdir=/zabbixtmp 
  8. #network 
  9. connect_timeout =60 
  10. wait_timeout =5000 
  11. max_connections =400 
  12. max_allowed_packet =16M 
  13. max_connect_errors =400 
  14. #limits 
  15. tmp_table_size =256M 
  16. max_heap_table_size =64M 
  17. table_cache =256 
  18. #logs 
  19. slow_query_log_file =/var/log/slowquery.log 
  20.  
  21. log_error =/var/log/mysql-error.log 
  22. long_query_time =10 
  23. slow_query_log =1 
  24. #innodb 
  25.  
  26. #innodb_data_file_path =ibdata1:128M;ibdata2:128M:autoextend:max:4096M 
  27. innodb_file_per_table =1 
  28. innodb_status_file =1 
  29.  
  30. innodb_additional_mem_pool_size =128M 
  31. innodb_buffer_pool_size =2800M 
  32. innodb_flush_method =O_DIRECT 
  33. #innodb_io_capacity =1000 
  34. innodb_support_xa =0 
  35. innodb_log_file_size =64M 
  36. innodb_log_buffer_size =32M 
  37. symbolic-links=0 
  38. #log-queries-not-using-indexes 
  39. thread_cache_size=4 
  40. query_cache_size=128M 
  41. #join_buffer_size=512K 
  42. join_buffer_size=128M 
  43. read_buffer_size=128M 
  44. read_rnd_buffer_size=128M 
  45. key_buffer=128M 
  46. innodb_flush_log_at_trx_commit=2 
  47. [mysqld_safe] 
  48. log-error=/var/log/mysqld.log 
  49. 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/


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

 

本文出自 “虚拟的现实” 博客,请务必保留此出处http://waringid.blog.51cto.com/65148/1156013


推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • OCI连接MySQL_PLSQL Developer连接远程数据库OCI客户端安装方法
    本文介绍了使用OCI客户端连接MySQL和PLSQL Developer连接远程数据库的安装方法,避免了在本地安装Oracle数据库或类似的开发套件的麻烦,同时解决了PLSQL Dev连接远程Oracle时的配置问题。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
author-avatar
蜗蜗家的逆时针
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有