实战Zabbix-Server数据库MySQL的libdata1文件过大
今天我们的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 的下载地址:请点这里
本文永久更新链接地址:

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











1. 가져오기 템플릿을 직접 다운로드하고 다음 단계를 통해 템플릿을 가져옵니다. 구성->템플릿>가져오기->다운로드한 xml 파일 가져오기를 클릭합니다. 2. 모니터링되는 호스트에서 클라이언트 키를 구성하고 /etc/zabbix/zabbix_agentd.conf 구성 파일을 열고 마지막 줄에 UserParameter=redis_stats[*],redis-cli-h127.0.0.1-p$1을 추가합니다. info |grep$2|cut-d:-f2 구성이 완료된 후 /etc/init.d/zabbix_agentdre를 전달합니다.

1. Zabbixserver 및 프록시는 mtrmtr 스크립트를 설치하고 이를 zabbixserver 및 프록시의 다음 경로에 배치합니다. chownzabbix:zabbixmtrtrace.shzabbix를 실행하여 mtrtrace 템플릿을 만듭니다. 5. 호스트를 템플릿에 연결하고 zabbix에서 데이터를 관찰합니다. ]-[최신 데이터]:

SNMP 소개 1 SNMP 개요 SNMP는 가장 널리 사용되는 네트워크 관리 프로토콜로 발전했으며 현재 적용되는 버전에는 주로 SNMPv1, SNMPv2c 및 SNMPv3가 있습니다. 버전 간의 주요 차이점은 정보 정의, 통신 프로토콜 작동 및 보안 메커니즘에 있습니다. 동시에 두 가지 SNMP 애플리케이션 확장, 원격 네트워크 모니터링 RMON(원격 네트워크 모니터링) 및 RMON2도 나타났습니다. 물리적 계층의 관점에서 보면 SNMP를 사용하여 네트워크를 관리하려면 NMS(네트워크 관리 스테이션), 에이전트(Agent) 및 프록시 서버(프록시)가 포함되어야 합니다. NMS는 명령을 생성하고 알림 정보를 수신할 수 있습니다. 네트워크 관리에는 하나 이상이 있어야 합니다.

프로젝트 설명 이 프로젝트의 목적은 WeChat 알람을 구현하고 전체 NGINX 클러스터를 편리하게 모니터링하며 동시에 전체 클러스터를 일괄적으로 배포 및 관리할 수 있는 zabbix 모니터링 시스템을 구축하는 것입니다. 프로젝트 단계: zabbix 서버(192.168.2.138)에 zabbixserver를 설치하고, nginx 측에 zabbixagent(192.168.2.58)를 설치하고, Nginx 로드 밸런싱 클러스터를 구성하고, 상태 통계를 켭니다. nginx 상태를 가져오려면 nginx 측에 모니터링 스크립트를 작성하세요. 서버측 웹에서는 모니터링 항목을 추가하고 사진을 출력합니다. 기업용 WeChat을 등록하고 WeChat 인터페이스를 구성합니다. zabbix 서버에 인터페이스 푸시 스크립트를 추가하고 인터페이스가 정상인지 테스트합니다. 우리 안에

JavaAPI 개발에 있어서 모니터링 관리는 매우 중요한 부분입니다. 애플리케이션의 안정성과 신뢰성을 보장하기 위해서는 CPU 사용량, 메모리 사용량, 네트워크 트래픽 등 다양한 지표를 모니터링하고 적시에 대응해야 합니다. 이 경우 Zabbix는 훌륭한 모니터링 도구입니다. Zabbix는 네트워크, 서버, 애플리케이션, 데이터베이스 등 다양한 매개 변수와 서비스를 모니터링할 수 있는 오픈 소스 모니터링 솔루션입니다. 이는 강력한 We를 제공합니다.

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 서버에 다음 콘텐츠를 추가합니다{}: location/nginx_status{stub_statuson;access_logoff;allow127.0.0.1;denyall;}ngi 다시 로드

사례: zabbix가 nginx 모니터링을 구성합니다. 1. 구성 파일 vim/usr/local/nginx/conf/nginx.conflocation/nginx_status{stub_status;} 설명: nginx_status 사용자 정의 필드, 액세스 주소(예: 192.168.169.131/nginx_status) stub_status 고정됨 매개변수 #Restart nginx./nginxreload 브라우저 액세스 상태 설명: ActiveconnectionsNginx는 현재 중요한 serverNginx 시작의 수를 처리하고 있습니다.

주요 사용 도구: 매크로(템플릿 매크로, 호스트 매크로, 자동 검색 매크로로 구분) 호스트 매크로 형식: $MACRO(값을 직접 채울 수 있음) 자동 검색 매크로: #MACRO(생성된 키의 값과 일치해야 함) ) 일반 구조 1. 에이전트 호스트 - 에이전트 호스트는 매크로 변수 $MYSQLPORT를 생성합니다. 매크로 변수의 값은 Discoveryrules의 자동 검색 스크립트 매개 변수입니다. 2. 템플릿 - 자동 검색을 기반으로 템플릿에 자동 검색 규칙을 생성합니다. 자동 검색 매크로 변수를 얻기 위한 스크립트입니다. 3. 모니터링 항목 – Discoveryrules에서 모니터링 항목을 생성합니다. 모니터링 항목의 이름과 키 값이 자동으로 전송됩니다.
