zabbix server优化与迁移

1. 概述

zabbix 系统其实分3个大部分,一个是server本身,另一个是php的httpd服务,第三个是非常需要优化的数据库。公司的zabbix监控主机在3000不到的体量,不优化真的不行。主要说说mysql,其他几个略了,结合zabbix自身的监控数据,参数该调大就调大。

2. mysql 优化导表

2.1 tokudb引擎

重点是这个数据库,设计原因,造成几个表过大。每次insert时间过长造成性能问题,我目前的实践发现tokudb引擎是很好的解决方案,有关tokudb的原理可看https://www.percona.com/software/mysql-database/percona-tokudb 。mysql官方的包是不支持tokudb引擎的,可以下载percona的包,或者是alisql的。我的选择是percona 源码包编译,percona其实是提供rpm安装方式的,但是好像网络有问题总会下载不下来。

有关mysql安装可以参考我之前的文章 https://gqdw.github.io/2017/01/17/mysql-5-7-install/ ,有些不同之处在于percona的包没有带boost ,我是从官网mysql源码包上下载了以后拷过去的,可以用。

先要在系统里设置2个内核参数。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

之后要在mysql中激活一下tokudb引擎,

INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_background_job_status SONAME 'ha_tokudb.so';

安装完了SHOW ENGINES 一下。

+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| TokuDB | YES | Percona TokuDB Storage Engine with Fractal Tree(tm) Technology | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+

可以看到tokudb完美的支持Transactions , XA ,Savepoints ,可以放心使用。早些年其实tokudb还是有明显bug的,用用会崩溃,但是2019年这些不存在了,感谢开源老哥的无私奉献。

另外说一下,硬件需要选择ssd,普通的盘io真的跟不上。

2.2 导数据

之后是导数据,我的做法是跳过几个大表,把小库导入,之后在导2个大表。

  1. trends
  2. trends_uint

history的几个表不用导,但是表结构需要建好,而且这几个表一定要做表分区,不然管理的时候会有些麻烦。

导出表需要写几个小脚本,写个for,done ,so easy:

day=0329
mkdir $day
for t in `cat tabs`
do
echo "mysqldump zabbix $t > $day/$t.sql"
mysqldump --set-gtid-purged=OFF zabbix $t > $day/$t.sql
done

我这里加了--set-gtid-purged=OFF,不然会把gtid给带上。

恢复的时候就是这样:

for t in `cat tabs`
do
echo "mysql zabbix < 0329/$t.sql"
mysql -uzabbix -pzabbixpass zabbix < 0329/$t.sql
done

mysqldump只导表结构的参数是-d 。

导历史数据的时候也有个技巧,把dump出来的sql修改一下,去掉

DROP TABLE IF EXISTS `trends`;
LOCK TABLES `trends` WRITE;

去掉lock table可以在线导。总不能停服务导吧~

3. 总结

细节是魔鬼,mysql这块虽然是比oracle操作要简单不少,但是做起来还是一个熟练度问题,搞不好很多时候就要重头搞,可能数据也给搞没了,所以做的时候需要思路很清醒,很多细节问题需要注意。

zabbix server优化与迁移的更多相关文章

  1. Zabbix监控之迁移zabbix server

    abbix监控中有时会根据需要对zabbix服务器进行迁移,zabbix迁移是非常简单的,因为zabbix的前端所有的操作都存在zabbix数据库里.所以zabbix迁移只需对zabbix库中相应的表 ...

  2. 20 Zabbix系统性能优化建议

    点击返回:自学Zabbix之路 20 Zabbix系统性能优化建议 1. Zabbix性能变慢的可能表现: zabbix队列有太多被延迟的item,可以通过administration-queue查看 ...

  3. Zabbix server的配置文件没有真正生效

    现状 Zabbix server端迁移之后,一直卡,卡的不行的卡,一直以为是网络的原因,实在忍受不下去了,还是得排查排查   在界面上一直显示这条,但是我的zabbix_server确实是启动的,但是 ...

  4. 运维监控-基于yum的方式部署Zabbix Server 4.0 版本

    运维监控-基于yum的方式部署Zabbix Server 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.如何选择zabbix版本 1>.打开zabbix官方 ...

  5. zabbix性能优化记

    以前用zabbix,都是简简单单的把服务端.客户端一搭,模板监控项一弄就完了.没怎么真正去弄过优化啊之类的.现在有个场景就是获取zabbix的数据贼慢,得对zabbix进行优化,开始动手分析一下.   ...

  6. 21 Zabbix系统性能优化建议

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 21 Zabbix系统性能优化建议 1. Zabbix性能变慢的可能表现: zabbix队列有太多 ...

  7. 深入SQL Server优化【推荐】

    深入sql server优化,MSSQL优化,T-SQL优化,查询优化 十步优化SQL Server 中的数据访问故事开篇:你和你的团队经过不懈努力,终于使网站成功上线,刚开始时,注册用户较少,网站性 ...

  8. 一次线上zabbix server 挂掉的思考

    突然间发现zabbix 挂了,咋发现的呢?报警的世界突然安静了,你就会觉得不妥了.这是运维人员的通病,有报警嫌烦,没报警心里会不安.1,图形界面上确实显示zabbix server is not ru ...

  9. Zabbix配置优化

    1.zabbix开启中文语言zabbix是一个多语言监控系统,默认使用英文并且也支持中文语言,详见<zabbix汉化方法>,但是安装zabbix里面看不到中文语言.请往下看: ![](ht ...

随机推荐

  1. php 推荐密码加密的方法

    password_hash() 函数 password_hash() 函数用于创建密码的散列(hash) PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认). ...

  2. IBM WebSphere 远程代码执行漏洞安全预警通告

    近日,IBM发布安全通告称修复了一个WebSphere Application Server中一个潜在的远程代码执行漏洞(CVE-2018-1567).攻击者可以构造一个恶意的序列化对象,随后通过SO ...

  3. Asp.Net Core 3.1学习-依赖注入、服务生命周期(6)

    1.前言 面向对象设计(OOD)里有一个重要的思想就是依赖倒置原则(DIP),并由该原则牵引出依赖注入(DI).控制反转(IOC)及其容器等概念.在学习Core依赖注入.服务生命周期之前,下面让我们先 ...

  4. 计算3的n次幂htm代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 微服务为什么一定要用docker

    引言 早在2013年的时候,docker就已经发行,然而那会还是很少人了解docker.一直到2014年,Martin Fowler提出了微服务的概念,两个不相干的技术终于走在了一起,创造了今天的辉煌 ...

  6. python基础1习题练习

    python基础1习题练习: #encoding:utf-8 #1.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败! name=input('na ...

  7. 关于SQL语言,这些你不得不了解!

    一.SQL概述 关系数据库标准语言SQL(结构化查询语言). 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言, ...

  8. ACM周记

    放假一周了,虽然知识都学完了,但是使用和会用还是很难,不能在按着这个情形发展下去,这样的话肯定完成不了自己的任务,所以必须要改变自己的学习方法和学习态度,学习态度,一个星期也睡够放松够了,也玩够了,该 ...

  9. 图论--割点--Tarjan模板

    #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...

  10. Jmeter 性能测试(需求/指标分析与定义)

    1.一般而言,被测对象的性能需求,会在用户需求规格说明书中给出,如单位时间内的访问量需达到多少?业务响应时间不超过多少?业务成功率不低于多少?硬件资源耗用要在一个合理的范围中. 如下性能指标非常明确 ...