今天我们的zabbix-server机器根空间不够了,我一步步排查结果发现是/var/lib/mysql/下的libdata1文件过大,已经达到了41G。我立即
今天我们的zabbix-server机器根空间不够了,我一步步排查结果发现是/var/lib/mysql/下的libdata1文件过大,已经达到了41G。我立即想到了zabbix的数据库原因,随后百度、谷歌才知道zabbix的数据库他的表模式是共享表空间模式,随着数据增长,ibdata1 越来越大,性能方面会有影响,而且innodb把数据和索引都放在ibdata1下。
共享表空间模式:
InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,这样就感觉不爽,增删数据库的时候,ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。
独立表空间模式:
优点:
1.每个表都有自已独立的表空间。
2.每个表的数据和索引都会存在自已的表空间中。
3.可以实现单表在不同的数据库中移动。
4.空间可以回收(drop/truncate table方式操作表空间不能自动回收)
5.对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。
缺点:
单表增加比共享空间方式更大。
结论:
共享表空间在Insert操作上有一些优势,但在其它都没独立表空间表现好,所以我们要改成独立表空间。
当启用独立表空间时,请合理调整一下 innodb_open_files 参数。
下面我们来讲下如何讲zabbix数据库修改成独立表空间模式
1.查看文件大小
[root@localhost ~]#cd /var/lib/mysql
[root@localhost ~]#ls -lh
-rw-rw---- 1 mysql mysql 41G Nov 24 13:31 ibdata1
-rw-rw---- 1 mysql mysql 5.0M Nov 24 13:31 ib_logfile0
-rw-rw---- 1 mysql mysql 5.0M Nov 24 13:31 ib_logfile1
drwx------ 2 mysql mysql 1.8M Nov 24 13:31 zabbix
大家可以看到这是没修改之前的共享表数据空间文件ibdata1大小已经达到了41G
2.清除zabbix数据库历史数据
1)查看哪些表的历史数据比较多
[root@localhost ~]#mysql -uroot -p
mysql > select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows from information_schema.tables where table_schema='zabbix';
+-----------------------+---------------+------------+
| table_name | total_mb | table_rows |
+-----------------------+---------------+------------+
| acknowledges | 0.06250000 | 0 |
....
| help_items | 0.04687500 | 103 |
| history | 1020.00000000 | 123981681 |
| history_log | 0.04687500 | 0 |
...
| history_text | 0.04687500 | 0 |
| history_uint | 3400.98437500 | 34000562 |
| history_uint_sync | 0.04687500 | 0 |
可以看到history和history_uint这两个表的历史数据最多。
另外就是trends,trends_uint中也存在一些数据。
由于数据量太大,按照普通的方式delete数据的话基本上不太可能。
所以决定直接采用truncate table的方式来快速清空这些表的数据,再使用mysqldump导出数据,删除共享表空间数据文件,重新导入数据。
2)停止相关服务,避免写入数据
[root@localhost ~]#/etc/init.d/zabbix_server stop
[root@localhost ~]#/etc/init.d/httpd stop
3)清空历史数据
[root@localhost ~]#mysql -uroot -p
mysql > use zabbix;
Database changed
mysql > truncate table history;
Query OK, 123981681 rows affected (0.23 sec)
mysql > optimize table history;
1 row in set (0.02 sec)
mysql > truncate table history_uint;
Query OK, 57990562 rows affected (0.12 sec)
mysql > optimize table history_uint;
1 row in set (0.03 sec)
3.备份数据库由于我/下的空间不足所以我挂载了一个NFS过来
[root@localhost ~]#mysqldump -uroot -p zabbix > /data/zabbix.sql
4.停止数据库并删除共享表空间数据文件
1)停止数据库
[root@localhost ~]#/etc/init.d/mysqld stop
2)删除共享表空间数据文件
[root@localhost ~]#cd /var/lib/mysql
[root@localhost ~]#rm -rf ib*
5.增加innodb_file_per_table参数
[root@localhost ~]#vi /etc/my.cnf
在[mysqld]下设置
innodb_file_per_table=1
6.启动mysql
[root@localhost ~]#/etc/init.d/mysqld start
7.查看innodb_file_per_table参数是否生效
[root@localhost ~]#mysql -uroot -p
mysql> show variables like '%per_table%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec)
8.重新导入数据库
[root@localhost ~]#mysqldump -uroot -p zabbix
9.最后,恢复相关服务进程
[root@localhost ~]#/etc/init.d/zabbix_server start
[root@localhost ~]#/etc/init.d/httpd start
恢复完服务之后,查看/分区的容量就下去了,,之前是99%,处理完之后变成了12%。可见其成效
一些Zabbix相关教程集合:
安装部署分布式监控系统Zabbix 2.06
《安装部署分布式监控系统Zabbix 2.06》
CentOS 6.3下Zabbix安装部署
Zabbix分布式监控系统实践
CentOS 6.3下Zabbix监控apache server-status
CentOS 6.3下Zabbix监控MySQL数据库参数
64位CentOS 6.2下安装Zabbix 2.0.6
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
本文永久更新链接地址:

1、导入模板直接下载,通过下面的步骤导入模板:点击configuration->templates>import->导入下载的xml文件。2、客户端key配置在被监控的主机上,打开/etc/zabbix/zabbix_agentd.conf配置文件,在最后一行加入:UserParameter=redis_stats[*],redis-cli-h127.0.0.1-p$1info|grep$2|cut-d:-f2配置完成后通过/etc/init.d/zabbix_agentdre

SNMP简介1SNMP概述SNMP发展至今以成为应用最广的网络管理协议,目前应用的版本主要有SNMPv1、SNMPv2c和SNMPv3。各版本之间主要的差异表现在信息的定义、通信协议的操作和安全机制上,同时也出现了SNMP应用的两个扩展远程网络监控RMON(RemoteNetworkMonitoring)和RMON2。从物理层的角度看,使用SNMP对网络进行管理应该包含:网络管理站(NMS)、代理(Agent)、代理服务器(proxy)。NMS能够发生命令,接收通知信息,在网络管理中至少要有一个

1.zabbixserver和proxy安装mtrmtr脚本放置到zabbixserver和proxy如下路径:执行chownzabbix:zabbixmtrtrace.shzabbix创建mtrtrace模板:5.将主机关联到模板,zabbix中观察数据:【monitoring】-【latestdata】:

在JavaAPI开发中,监控管理是非常重要的一部分。为了保证应用程序的稳定性和可靠性,我们需要监控各种指标,如CPU使用率、内存使用率、网络流量等,并及时做出响应。在这种情况下,Zabbix是一个非常优秀的监控工具。Zabbix是一个开放源代码的监控解决方案,可以监控各种参数和服务,包括网络、服务器、应用程序、数据库等。它提供了一个强大的We

案例:zabbix配置nginx监控1.修改配置文件vim/usr/local/nginx/conf/nginx.conflocation/nginx_status{stub_status;}说明:nginx_status自定义字段,访问地址(例:192.168.169.131/nginx_status)stub_status固定参数#重启nginx./nginxreload浏览器访问状态说明:ActiveconnectionsNginx正处理的活动链接数个数;重要serverNginx启动到现

zabbix监控nginxa机器:zabbix服务端(192.168.234.128)b机器:zabbix客户端(192.168.234.125)在b机器(zabbix客户端)操作:编辑nginx虚拟主机配置文件:[root@centos~]#vi/etc/nginx/conf.d/default.conf在server{}中添加以下内容:location/nginx_status{stub_statuson;access_logoff;allow127.0.0.1;denyall;}重载ngi

项目描述本项目的目的是构建一个能实现微信告警的zabbix监控系统,方便的监控整个NGINX集群,同时能批量的去部署和管理整个集群。项目步骤zabbix服务端(192.168.2.138)安装好zabbixserver,nginx端安装好zabbixagent(192.168.2.58),配置好Nginx负载均衡集群,并打开状态统计。nginx端编写监控脚本,取到nginx的状态。服务端web添加监控项,出图。注册企业微信,配置好微信接口。zabbix服务端添加接口推送脚本,测试接口正常。在we

用到的主要工具:宏(分为模板宏,主机宏,自动发现宏)主机宏格式:$MACRO(直接就可以填值)自动发现宏:#MACRO(需要配合创建的key取值)大体架构1.agent主机—agent主机创建宏变量$MYSQLPORT,宏变量的值为Discoveryrules的自动发现脚本参数2.模板—模板里创建自动发现规则,靠的是自动发现脚本,得到自动发现宏变量。3.监控项–在Discoveryrules里创建监控项,监控项名称和key值里都有自动发


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具