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. SweetAlert - 演示6种不同的提示框效果

    http://www.sucaihuo.com/js/190.html http://www.cnblogs.com/beiz/p/5238124.html

  2. Linux系统进入救援模式

    由于现在很多的服务器都是用的RedHat,CentOS也比较多,这里就介绍CentOS6.6的救援模式. 有很多人的linux在用的时候不小心修改了某个权限,导致系统启动不起来,下面我就来为大家解决一 ...

  3. Ali_Cloud++:阿里云服务器部署【禅道】项目管理系统

    1.开源版安装包下载 地址一:百度云下载 10.0  提取码:2dyg  地址二:官方下载 2.直接解压安装包到/opt目录下 注意:这里我安装的是Linux一键安装包官方给出的方法就是直接解压到/o ...

  4. zoj_2511 Design T-Shirt 贪心

    Design T-Shirt Time Limit: 2 Seconds      Memory Limit: 32768 KB Soon after he decided to design a T ...

  5. Vue Cli 3 搭建单页应用项目刷新 404 问题 解决方案(以Apache为例)

    vue 项目 版本 Vue Cli 3.3 官方文档 https://router.vuejs.org/zh/guide/essentials/history-mode.html 因为本项目部署在 A ...

  6. mybatis源码学习(三):MappedStatement的解析过程

    我们之前介绍过MappedStatement表示的是XML中的一个SQL.类当中的很多字段都是SQL中对应的属性.我们先来了解一下这个类的属性: public final class MappedSt ...

  7. 数学--数论--HDU 2136(素数筛选法)

    Everybody knows any number can be combined by the prime number. Now, your task is telling me what po ...

  8. 面试中的volatile关键字

    在Java的面试当中,面试官最爱问的就是volatile关键字相关的内容.经过多次面试之后,你是否思考过,为什么他们那么爱问volatile关键字相关的问题?而对于你,如果作为面试官,是否也会考虑采用 ...

  9. Dubbo(六):zookeeper注册中心的应用

    Dubbo中有一个非常本质和重要的功能,那就是服务的自动注册与发现,而这个功能是通过注册中心来实现的.而dubbo中考虑了外部许多的注册组件的实现,zk,redis,etcd,consul,eurek ...

  10. OSG程序设计之Hello World 3.0

    直接上代码: #include <osgDB/ReadFile> #include <osgViewer/Viewer> #include <osgViewer/View ...