Centos7.2 安装 zabbix server 3.4 及初始化工作

Centos7.2 安装 zabbix server 3.4

一、安装  zabbix server 3.4

参考连接:

https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=7&db=MySQL

https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_packages#from_distribution_packages

关闭防火墙

# systemctl stop firewalld.service                 #关闭防火墙
# systemctl disable firewalld.service               #开机不启动防火墙

 

关闭selinux

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config    #在/etc/selinux/config 把SELNUX=enforcing换成SELINUX=disabled
 
# grep SELINUX=disabled /etc/selinux/config       #过滤刚刚换的disabled
SELINUX=disabled
# setenforce 0                                #清空selinux的配置

MySQL数据库的安装

tar xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar 
rpm -e --nodeps mariadb-libs
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64
rpm -ivh mysql-community-libs-compat-5.7.20-1.el7.x86_64

systemctl start mysqld  #修改密码

cat /var/log/mysqld.log | grep passwordsystemctl enable mysqld

alter user [email protected]'localhost' identified by '';

Zabbix Server 3.4安装及配置

wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm

安装163的yum源,zabbix必须的php两个所需模块bcmath和mbstring  epel yum 源没有, 只有网易163源中有

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

# cat /etc/yum.repos.d/CentOS7-Base-163.repo

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-7 - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-7 - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-7 - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

# mysql -uroot -p

# password

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to [email protected] identified by 'password';

mysql> quit;

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix  -D zabbix -p

配置zabbix数据库

# vi /etc/zabbix/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=password

# systemctl start zabbix-server zabbix-agent httpd

# systemctl enable zabbix-server zabbix-agent httpd

配置 PHP zabbix 前台

vim  /etc/httpd/conf.d/zabbix.conf

# php_value date.timezone Europe/Riga

替换为:

php_value date.timezone Asia/Shanghai

配置 zabbix前台

Connect to your newly installed Zabbix frontend: http://server_ip_or_name/zabbix

Follow steps described in Zabbix documentation: Installing frontend

zabbix  帮助文档

https://www.zabbix.com/documentation/3.4/manual/quickstart/login

二、zabbix agent 安装

wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm

yum install  zabbix-agent

systemctl start zabbix-agent

systemctl enable zabbix-agent

客户端配置:

# cat /etc/zabbix/zabbix_agentd.conf  | grep -v "^#"| grep -v '^$'

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.51
ServerActive=192.168.1.51:10051
HostnameItem=system.run[ifconfig | grep "inet" | grep -E -o "(2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])(.(2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])){3}"| grep "192.168.1"|head -1]
 RefreshActiveChecks=120
Include=/etc/zabbix/zabbix_agentd.d/*.conf

三、zabbix做分区

mysql> use zabbix;
mysql> alter table trends rename trends_bak;
Query OK, 0 rows affected (0.04 sec)
mysql> CREATE TABLE `trends` (
       `itemid` bigint(20) unsigned NOT NULL,
       `clock` int(11) NOT NULL DEFAULT '0',
       `num` int(11) NOT NULL DEFAULT '0',
       `value_min` double(16,4) NOT NULL DEFAULT '0.0000',
       `value_avg` double(16,4) NOT NULL DEFAULT '0.0000',
       `value_max` double(16,4) NOT NULL DEFAULT '0.0000',
       PRIMARY KEY (`itemid`,`clock`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 
     PARTITION BY RANGE (clock)
     (
      PARTITION p2018_02 VALUES LESS THAN (UNIX_TIMESTAMP("2018-03-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_03 VALUES LESS THAN (UNIX_TIMESTAMP("2018-04-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_04 VALUES LESS THAN (UNIX_TIMESTAMP("2018-05-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_05 VALUES LESS THAN (UNIX_TIMESTAMP("2018-06-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_06 VALUES LESS THAN (UNIX_TIMESTAMP("2018-07-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_07 VALUES LESS THAN (UNIX_TIMESTAMP("2018-08-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_08 VALUES LESS THAN (UNIX_TIMESTAMP("2018-09-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_09 VALUES LESS THAN (UNIX_TIMESTAMP("2018-10-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_10 VALUES LESS THAN (UNIX_TIMESTAMP("2018-11-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_11 VALUES LESS THAN (UNIX_TIMESTAMP("2018-12-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_12 VALUES LESS THAN (UNIX_TIMESTAMP("2019-01-01 00:00:00")) ENGINE = InnoDB);
Query OK, 0 rows affected (0.11 sec)

mysql> alter table trends_uint rename trends_uint_bak;
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLE `trends_uint` (
       `itemid` bigint(20) unsigned NOT NULL,
       `clock` int(11) NOT NULL DEFAULT '0',
       `num` int(11) NOT NULL DEFAULT '0',
       `value_min` bigint(20) unsigned NOT NULL DEFAULT '0',
       `value_avg` bigint(20) unsigned NOT NULL DEFAULT '0',
       `value_max` bigint(20) unsigned NOT NULL DEFAULT '0',
       PRIMARY KEY (`itemid`,`clock`)
     )  ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 
     PARTITION BY RANGE (clock)
     (PARTITION p2017_11 VALUES LESS THAN (UNIX_TIMESTAMP("2017-12-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2017_12 VALUES LESS THAN (UNIX_TIMESTAMP("2018-01-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_01 VALUES LESS THAN (UNIX_TIMESTAMP("2018-02-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_02 VALUES LESS THAN (UNIX_TIMESTAMP("2018-03-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_03 VALUES LESS THAN (UNIX_TIMESTAMP("2018-04-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_04 VALUES LESS THAN (UNIX_TIMESTAMP("2018-05-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_05 VALUES LESS THAN (UNIX_TIMESTAMP("2018-06-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_06 VALUES LESS THAN (UNIX_TIMESTAMP("2018-07-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_07 VALUES LESS THAN (UNIX_TIMESTAMP("2018-08-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_08 VALUES LESS THAN (UNIX_TIMESTAMP("2018-09-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_09 VALUES LESS THAN (UNIX_TIMESTAMP("2018-10-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_10 VALUES LESS THAN (UNIX_TIMESTAMP("2018-11-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_11 VALUES LESS THAN (UNIX_TIMESTAMP("2018-12-01 00:00:00")) ENGINE = InnoDB,
      PARTITION p2018_12 VALUES LESS THAN (UNIX_TIMESTAMP("2019-01-01 00:00:00")) ENGINE = InnoDB);
Query OK, 0 rows affected (0.13 sec)

mysql> alter table history rename history_bak;
Query OK, 0 rows affected (0.02 sec)
mysql> alter table history_uint rename history_uint_bak;
Query OK, 0 rows affected (0.00 sec)
mysql> alter table history_text rename history_text_bak;
Query OK, 0 rows affected (0.01 sec)
mysql> alter table history_str rename history_str_bak;
Query OK, 0 rows affected (0.01 sec)
mysql> alter table history_log rename history_log_bak;
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE `history` (
       `itemid` bigint(20) unsigned NOT NULL,
       `clock` int(11) NOT NULL DEFAULT '0',
       `value` bigint(20) unsigned NOT NULL DEFAULT '0',
       `ns` int(11) NOT NULL DEFAULT '0',
       KEY `history_index` (`itemid`,`clock`,`value`,`ns`)
     )  ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 
     PARTITION BY RANGE (clock)
     (PARTITION p2018_02_01 VALUES LESS THAN (1517500800) ENGINE = InnoDB,
      PARTITION p2018_02_02 VALUES LESS THAN (1517587200) ENGINE = InnoDB,
      PARTITION p2018_02_03 VALUES LESS THAN (1517673600) ENGINE = InnoDB,
      PARTITION p2018_02_04 VALUES LESS THAN (1517760000) ENGINE = InnoDB,
      PARTITION p2018_02_05 VALUES LESS THAN (1517846400) ENGINE = InnoDB,
      PARTITION p2018_02_06 VALUES LESS THAN (1517932800) ENGINE = InnoDB,
      PARTITION p2018_02_07 VALUES LESS THAN (1518019200) ENGINE = InnoDB,
      PARTITION p2018_02_08 VALUES LESS THAN (1518105600) ENGINE = InnoDB,
      PARTITION p2018_02_09 VALUES LESS THAN (1518192000) ENGINE = InnoDB,
      PARTITION p2018_02_10 VALUES LESS THAN (1518278400) ENGINE = InnoDB,
      PARTITION p2018_02_11 VALUES LESS THAN (1518364800) ENGINE = InnoDB,
      PARTITION p2018_02_12 VALUES LESS THAN (1518451200) ENGINE = InnoDB,
      PARTITION p2018_02_13 VALUES LESS THAN (1518537600) ENGINE = InnoDB,
      PARTITION p2018_02_14 VALUES LESS THAN (1518624000) ENGINE = InnoDB,
      PARTITION p2018_02_15 VALUES LESS THAN (1518710400) ENGINE = InnoDB,
      PARTITION p2018_02_16 VALUES LESS THAN (1518796800) ENGINE = InnoDB,
      PARTITION p2018_02_17 VALUES LESS THAN (1518883200) ENGINE = InnoDB,
      PARTITION p2018_02_18 VALUES LESS THAN (1518969600) ENGINE = InnoDB,
      PARTITION p2018_02_19 VALUES LESS THAN (1519056000) ENGINE = InnoDB,
      PARTITION p2018_02_20 VALUES LESS THAN (1519142400) ENGINE = InnoDB,
      PARTITION p2018_02_21 VALUES LESS THAN (1519228800) ENGINE = InnoDB,
      PARTITION p2018_02_22 VALUES LESS THAN (1519315200) ENGINE = InnoDB,
      PARTITION p2018_02_23 VALUES LESS THAN (1519401600) ENGINE = InnoDB,
      PARTITION p2018_02_24 VALUES LESS THAN (1519488000) ENGINE = InnoDB,
      PARTITION p2018_02_25 VALUES LESS THAN (1519574400) ENGINE = InnoDB,
      PARTITION p2018_02_26 VALUES LESS THAN (1519660800) ENGINE = InnoDB,
      PARTITION p2018_02_27 VALUES LESS THAN (1519747200) ENGINE = InnoDB,
      PARTITION p2018_02_28 VALUES LESS THAN (1519833600) ENGINE = InnoDB,
      PARTITION p2018_03_01 VALUES LESS THAN (1519920000) ENGINE = InnoDB,
      PARTITION p2018_03_02 VALUES LESS THAN (1520006400) ENGINE = InnoDB,
      PARTITION p2018_03_03 VALUES LESS THAN (1520092800) ENGINE = InnoDB,
      PARTITION p2018_03_04 VALUES LESS THAN (1520179200) ENGINE = InnoDB,
      PARTITION p2018_03_05 VALUES LESS THAN (1520265600) ENGINE = InnoDB,
      PARTITION p2018_03_06 VALUES LESS THAN (1520352000) ENGINE = InnoDB,
      PARTITION p2018_03_07 VALUES LESS THAN (1520438400) ENGINE = InnoDB,
      PARTITION p2018_03_08 VALUES LESS THAN (1520524800) ENGINE = InnoDB,
      PARTITION p2018_03_09 VALUES LESS THAN (1520611200) ENGINE = InnoDB,
      PARTITION p2018_03_10 VALUES LESS THAN (1520697600) ENGINE = InnoDB,
      PARTITION p2018_03_11 VALUES LESS THAN (1520784000) ENGINE = InnoDB,
      PARTITION p2018_03_12 VALUES LESS THAN (1520870400) ENGINE = InnoDB,
      PARTITION p2018_03_13 VALUES LESS THAN (1520956800) ENGINE = InnoDB,
      PARTITION p2018_03_14 VALUES LESS THAN (1521043200) ENGINE = InnoDB,
      PARTITION p2018_03_15 VALUES LESS THAN (1521129600) ENGINE = InnoDB,
      PARTITION p2018_03_16 VALUES LESS THAN (1521216000) ENGINE = InnoDB,
      PARTITION p2018_03_17 VALUES LESS THAN (1521302400) ENGINE = InnoDB,
      PARTITION p2018_03_18 VALUES LESS THAN (1521388800) ENGINE = InnoDB,
      PARTITION p2018_03_19 VALUES LESS THAN (1521475200) ENGINE = InnoDB,
      PARTITION p2018_03_20 VALUES LESS THAN (1521561600) ENGINE = InnoDB,
      PARTITION p2018_03_21 VALUES LESS THAN (1521648000) ENGINE = InnoDB,
      PARTITION p2018_03_22 VALUES LESS THAN (1521734400) ENGINE = InnoDB,
      PARTITION p2018_03_23 VALUES LESS THAN (1521820800) ENGINE = InnoDB,
      PARTITION p2018_03_24 VALUES LESS THAN (1521907200) ENGINE = InnoDB,
      PARTITION p2018_03_25 VALUES LESS THAN (1521993600) ENGINE = InnoDB,
      PARTITION p2018_03_26 VALUES LESS THAN (1522080000) ENGINE = InnoDB,
      PARTITION p2018_03_27 VALUES LESS THAN (1522166400) ENGINE = InnoDB,
      PARTITION p2018_03_28 VALUES LESS THAN (1522252800) ENGINE = InnoDB);
Query OK, 0 rows affected (0.67 sec)

mysql> CREATE TABLE `history_uint` (
       `itemid` bigint(20) unsigned NOT NULL,
       `clock` int(11) NOT NULL DEFAULT '0',
       `value` bigint(20) unsigned NOT NULL DEFAULT '0',
       `ns` int(11) NOT NULL DEFAULT '0',
       KEY `history_uint_index` (`itemid`,`clock`,`value`,`ns`)
     )  ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 
     PARTITION BY RANGE (clock)
     (PARTITION p2018_02_01 VALUES LESS THAN (1517500800) ENGINE = InnoDB,
      PARTITION p2018_02_02 VALUES LESS THAN (1517587200) ENGINE = InnoDB,
      PARTITION p2018_02_03 VALUES LESS THAN (1517673600) ENGINE = InnoDB,
      PARTITION p2018_02_04 VALUES LESS THAN (1517760000) ENGINE = InnoDB,
      PARTITION p2018_02_05 VALUES LESS THAN (1517846400) ENGINE = InnoDB,
      PARTITION p2018_02_06 VALUES LESS THAN (1517932800) ENGINE = InnoDB,
      PARTITION p2018_02_07 VALUES LESS THAN (1518019200) ENGINE = InnoDB,
      PARTITION p2018_02_08 VALUES LESS THAN (1518105600) ENGINE = InnoDB,
      PARTITION p2018_02_09 VALUES LESS THAN (1518192000) ENGINE = InnoDB,
      PARTITION p2018_02_10 VALUES LESS THAN (1518278400) ENGINE = InnoDB,
      PARTITION p2018_02_11 VALUES LESS THAN (1518364800) ENGINE = InnoDB,
      PARTITION p2018_02_12 VALUES LESS THAN (1518451200) ENGINE = InnoDB,
      PARTITION p2018_02_13 VALUES LESS THAN (1518537600) ENGINE = InnoDB,
      PARTITION p2018_02_14 VALUES LESS THAN (1518624000) ENGINE = InnoDB,
      PARTITION p2018_02_15 VALUES LESS THAN (1518710400) ENGINE = InnoDB,
      PARTITION p2018_02_16 VALUES LESS THAN (1518796800) ENGINE = InnoDB,
      PARTITION p2018_02_17 VALUES LESS THAN (1518883200) ENGINE = InnoDB,
      PARTITION p2018_02_18 VALUES LESS THAN (1518969600) ENGINE = InnoDB,
      PARTITION p2018_02_19 VALUES LESS THAN (1519056000) ENGINE = InnoDB,
      PARTITION p2018_02_20 VALUES LESS THAN (1519142400) ENGINE = InnoDB,
      PARTITION p2018_02_21 VALUES LESS THAN (1519228800) ENGINE = InnoDB,
      PARTITION p2018_02_22 VALUES LESS THAN (1519315200) ENGINE = InnoDB,
      PARTITION p2018_02_23 VALUES LESS THAN (1519401600) ENGINE = InnoDB,
      PARTITION p2018_02_24 VALUES LESS THAN (1519488000) ENGINE = InnoDB,
      PARTITION p2018_02_25 VALUES LESS THAN (1519574400) ENGINE = InnoDB,
      PARTITION p2018_02_26 VALUES LESS THAN (1519660800) ENGINE = InnoDB,
      PARTITION p2018_02_27 VALUES LESS THAN (1519747200) ENGINE = InnoDB,
      PARTITION p2018_02_28 VALUES LESS THAN (1519833600) ENGINE = InnoDB,
      PARTITION p2018_03_01 VALUES LESS THAN (1519920000) ENGINE = InnoDB,
      PARTITION p2018_03_02 VALUES LESS THAN (1520006400) ENGINE = InnoDB,
      PARTITION p2018_03_03 VALUES LESS THAN (1520092800) ENGINE = InnoDB,
      PARTITION p2018_03_04 VALUES LESS THAN (1520179200) ENGINE = InnoDB,
      PARTITION p2018_03_05 VALUES LESS THAN (1520265600) ENGINE = InnoDB,
      PARTITION p2018_03_06 VALUES LESS THAN (1520352000) ENGINE = InnoDB,
      PARTITION p2018_03_07 VALUES LESS THAN (1520438400) ENGINE = InnoDB,
      PARTITION p2018_03_08 VALUES LESS THAN (1520524800) ENGINE = InnoDB,
      PARTITION p2018_03_09 VALUES LESS THAN (1520611200) ENGINE = InnoDB,
      PARTITION p2018_03_10 VALUES LESS THAN (1520697600) ENGINE = InnoDB,
      PARTITION p2018_03_11 VALUES LESS THAN (1520784000) ENGINE = InnoDB,
      PARTITION p2018_03_12 VALUES LESS THAN (1520870400) ENGINE = InnoDB,
      PARTITION p2018_03_13 VALUES LESS THAN (1520956800) ENGINE = InnoDB,
      PARTITION p2018_03_14 VALUES LESS THAN (1521043200) ENGINE = InnoDB,
      PARTITION p2018_03_15 VALUES LESS THAN (1521129600) ENGINE = InnoDB,
      PARTITION p2018_03_16 VALUES LESS THAN (1521216000) ENGINE = InnoDB,
      PARTITION p2018_03_17 VALUES LESS THAN (1521302400) ENGINE = InnoDB,
      PARTITION p2018_03_18 VALUES LESS THAN (1521388800) ENGINE = InnoDB,
      PARTITION p2018_03_19 VALUES LESS THAN (1521475200) ENGINE = InnoDB,
      PARTITION p2018_03_20 VALUES LESS THAN (1521561600) ENGINE = InnoDB,
      PARTITION p2018_03_21 VALUES LESS THAN (1521648000) ENGINE = InnoDB,
      PARTITION p2018_03_22 VALUES LESS THAN (1521734400) ENGINE = InnoDB,
      PARTITION p2018_03_23 VALUES LESS THAN (1521820800) ENGINE = InnoDB,
      PARTITION p2018_03_24 VALUES LESS THAN (1521907200) ENGINE = InnoDB,
      PARTITION p2018_03_25 VALUES LESS THAN (1521993600) ENGINE = InnoDB,
      PARTITION p2018_03_26 VALUES LESS THAN (1522080000) ENGINE = InnoDB,
      PARTITION p2018_03_27 VALUES LESS THAN (1522166400) ENGINE = InnoDB,
      PARTITION p2018_03_28 VALUES LESS THAN (1522252800) ENGINE = InnoDB);
Query OK, 0 rows affected (0.60 sec)

mysql>  CREATE TABLE `history_str` (
       `itemid` bigint(20) unsigned NOT NULL,
       `clock` int(11) NOT NULL DEFAULT '0',
       `value` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
       `ns` int(11) NOT NULL DEFAULT '0',
       KEY `history_str_1` (`itemid`,`clock`)
     )  ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 
     PARTITION BY RANGE (clock)
     (PARTITION p2018_02_01 VALUES LESS THAN (1517500800) ENGINE = InnoDB,
      PARTITION p2018_02_02 VALUES LESS THAN (1517587200) ENGINE = InnoDB,
      PARTITION p2018_02_03 VALUES LESS THAN (1517673600) ENGINE = InnoDB,
      PARTITION p2018_02_04 VALUES LESS THAN (1517760000) ENGINE = InnoDB,
      PARTITION p2018_02_05 VALUES LESS THAN (1517846400) ENGINE = InnoDB,
      PARTITION p2018_02_06 VALUES LESS THAN (1517932800) ENGINE = InnoDB,
      PARTITION p2018_02_07 VALUES LESS THAN (1518019200) ENGINE = InnoDB,
      PARTITION p2018_02_08 VALUES LESS THAN (1518105600) ENGINE = InnoDB,
      PARTITION p2018_02_09 VALUES LESS THAN (1518192000) ENGINE = InnoDB,
      PARTITION p2018_02_10 VALUES LESS THAN (1518278400) ENGINE = InnoDB,
      PARTITION p2018_02_11 VALUES LESS THAN (1518364800) ENGINE = InnoDB,
      PARTITION p2018_02_12 VALUES LESS THAN (1518451200) ENGINE = InnoDB,
      PARTITION p2018_02_13 VALUES LESS THAN (1518537600) ENGINE = InnoDB,
      PARTITION p2018_02_14 VALUES LESS THAN (1518624000) ENGINE = InnoDB,
      PARTITION p2018_02_15 VALUES LESS THAN (1518710400) ENGINE = InnoDB,
      PARTITION p2018_02_16 VALUES LESS THAN (1518796800) ENGINE = InnoDB,
      PARTITION p2018_02_17 VALUES LESS THAN (1518883200) ENGINE = InnoDB,
      PARTITION p2018_02_18 VALUES LESS THAN (1518969600) ENGINE = InnoDB,
      PARTITION p2018_02_19 VALUES LESS THAN (1519056000) ENGINE = InnoDB,
      PARTITION p2018_02_20 VALUES LESS THAN (1519142400) ENGINE = InnoDB,
      PARTITION p2018_02_21 VALUES LESS THAN (1519228800) ENGINE = InnoDB,
      PARTITION p2018_02_22 VALUES LESS THAN (1519315200) ENGINE = InnoDB,
      PARTITION p2018_02_23 VALUES LESS THAN (1519401600) ENGINE = InnoDB,
      PARTITION p2018_02_24 VALUES LESS THAN (1519488000) ENGINE = InnoDB,
      PARTITION p2018_02_25 VALUES LESS THAN (1519574400) ENGINE = InnoDB,
      PARTITION p2018_02_26 VALUES LESS THAN (1519660800) ENGINE = InnoDB,
      PARTITION p2018_02_27 VALUES LESS THAN (1519747200) ENGINE = InnoDB,
      PARTITION p2018_02_28 VALUES LESS THAN (1519833600) ENGINE = InnoDB,
      PARTITION p2018_03_01 VALUES LESS THAN (1519920000) ENGINE = InnoDB,
      PARTITION p2018_03_02 VALUES LESS THAN (1520006400) ENGINE = InnoDB,
      PARTITION p2018_03_03 VALUES LESS THAN (1520092800) ENGINE = InnoDB,
      PARTITION p2018_03_04 VALUES LESS THAN (1520179200) ENGINE = InnoDB,
      PARTITION p2018_03_05 VALUES LESS THAN (1520265600) ENGINE = InnoDB,
      PARTITION p2018_03_06 VALUES LESS THAN (1520352000) ENGINE = InnoDB,
      PARTITION p2018_03_07 VALUES LESS THAN (1520438400) ENGINE = InnoDB,
      PARTITION p2018_03_08 VALUES LESS THAN (1520524800) ENGINE = InnoDB,
      PARTITION p2018_03_09 VALUES LESS THAN (1520611200) ENGINE = InnoDB,
      PARTITION p2018_03_10 VALUES LESS THAN (1520697600) ENGINE = InnoDB,
      PARTITION p2018_03_11 VALUES LESS THAN (1520784000) ENGINE = InnoDB,
      PARTITION p2018_03_12 VALUES LESS THAN (1520870400) ENGINE = InnoDB,
      PARTITION p2018_03_13 VALUES LESS THAN (1520956800) ENGINE = InnoDB,
      PARTITION p2018_03_14 VALUES LESS THAN (1521043200) ENGINE = InnoDB,
      PARTITION p2018_03_15 VALUES LESS THAN (1521129600) ENGINE = InnoDB,
      PARTITION p2018_03_16 VALUES LESS THAN (1521216000) ENGINE = InnoDB,
      PARTITION p2018_03_17 VALUES LESS THAN (1521302400) ENGINE = InnoDB,
      PARTITION p2018_03_18 VALUES LESS THAN (1521388800) ENGINE = InnoDB,
      PARTITION p2018_03_19 VALUES LESS THAN (1521475200) ENGINE = InnoDB,
      PARTITION p2018_03_20 VALUES LESS THAN (1521561600) ENGINE = InnoDB,
      PARTITION p2018_03_21 VALUES LESS THAN (1521648000) ENGINE = InnoDB,
      PARTITION p2018_03_22 VALUES LESS THAN (1521734400) ENGINE = InnoDB,
      PARTITION p2018_03_23 VALUES LESS THAN (1521820800) ENGINE = InnoDB,
      PARTITION p2018_03_24 VALUES LESS THAN (1521907200) ENGINE = InnoDB,
      PARTITION p2018_03_25 VALUES LESS THAN (1521993600) ENGINE = InnoDB,
      PARTITION p2018_03_26 VALUES LESS THAN (1522080000) ENGINE = InnoDB,
      PARTITION p2018_03_27 VALUES LESS THAN (1522166400) ENGINE = InnoDB,
      PARTITION p2018_03_28 VALUES LESS THAN (1522252800) ENGINE = InnoDB);
Query OK, 0 rows affected (0.60 sec)

mysql> CREATE TABLE `history_log` (
       `itemid` bigint(20) unsigned NOT NULL,
       `clock` int(11) NOT NULL DEFAULT '0',
       `timestamp` int(11) NOT NULL DEFAULT '0',
       `source` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '',
       `severity` int(11) NOT NULL DEFAULT '0',
       `value` text COLLATE utf8_bin NOT NULL,
       `logeventid` int(11) NOT NULL DEFAULT '0',
       `ns` int(11) NOT NULL DEFAULT '0',
       KEY `history_log_1` (`itemid`,`clock`)
     )  ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 
     PARTITION BY RANGE (clock)
     (PARTITION p2018_02_01 VALUES LESS THAN (1517500800) ENGINE = InnoDB,
      PARTITION p2018_02_02 VALUES LESS THAN (1517587200) ENGINE = InnoDB,
      PARTITION p2018_02_03 VALUES LESS THAN (1517673600) ENGINE = InnoDB,
      PARTITION p2018_02_04 VALUES LESS THAN (1517760000) ENGINE = InnoDB,
      PARTITION p2018_02_05 VALUES LESS THAN (1517846400) ENGINE = InnoDB,
      PARTITION p2018_02_06 VALUES LESS THAN (1517932800) ENGINE = InnoDB,
      PARTITION p2018_02_07 VALUES LESS THAN (1518019200) ENGINE = InnoDB,
      PARTITION p2018_02_08 VALUES LESS THAN (1518105600) ENGINE = InnoDB,
      PARTITION p2018_02_09 VALUES LESS THAN (1518192000) ENGINE = InnoDB,
      PARTITION p2018_02_10 VALUES LESS THAN (1518278400) ENGINE = InnoDB,
      PARTITION p2018_02_11 VALUES LESS THAN (1518364800) ENGINE = InnoDB,
      PARTITION p2018_02_12 VALUES LESS THAN (1518451200) ENGINE = InnoDB,
      PARTITION p2018_02_13 VALUES LESS THAN (1518537600) ENGINE = InnoDB,
      PARTITION p2018_02_14 VALUES LESS THAN (1518624000) ENGINE = InnoDB,
      PARTITION p2018_02_15 VALUES LESS THAN (1518710400) ENGINE = InnoDB,
      PARTITION p2018_02_16 VALUES LESS THAN (1518796800) ENGINE = InnoDB,
      PARTITION p2018_02_17 VALUES LESS THAN (1518883200) ENGINE = InnoDB,
      PARTITION p2018_02_18 VALUES LESS THAN (1518969600) ENGINE = InnoDB,
      PARTITION p2018_02_19 VALUES LESS THAN (1519056000) ENGINE = InnoDB,
      PARTITION p2018_02_20 VALUES LESS THAN (1519142400) ENGINE = InnoDB,
      PARTITION p2018_02_21 VALUES LESS THAN (1519228800) ENGINE = InnoDB,
      PARTITION p2018_02_22 VALUES LESS THAN (1519315200) ENGINE = InnoDB,
      PARTITION p2018_02_23 VALUES LESS THAN (1519401600) ENGINE = InnoDB,
      PARTITION p2018_02_24 VALUES LESS THAN (1519488000) ENGINE = InnoDB,
      PARTITION p2018_02_25 VALUES LESS THAN (1519574400) ENGINE = InnoDB,
      PARTITION p2018_02_26 VALUES LESS THAN (1519660800) ENGINE = InnoDB,
      PARTITION p2018_02_27 VALUES LESS THAN (1519747200) ENGINE = InnoDB,
      PARTITION p2018_02_28 VALUES LESS THAN (1519833600) ENGINE = InnoDB,
      PARTITION p2018_03_01 VALUES LESS THAN (1519920000) ENGINE = InnoDB,
      PARTITION p2018_03_02 VALUES LESS THAN (1520006400) ENGINE = InnoDB,
      PARTITION p2018_03_03 VALUES LESS THAN (1520092800) ENGINE = InnoDB,
      PARTITION p2018_03_04 VALUES LESS THAN (1520179200) ENGINE = InnoDB,
      PARTITION p2018_03_05 VALUES LESS THAN (1520265600) ENGINE = InnoDB,
      PARTITION p2018_03_06 VALUES LESS THAN (1520352000) ENGINE = InnoDB,
      PARTITION p2018_03_07 VALUES LESS THAN (1520438400) ENGINE = InnoDB,
      PARTITION p2018_03_08 VALUES LESS THAN (1520524800) ENGINE = InnoDB,
      PARTITION p2018_03_09 VALUES LESS THAN (1520611200) ENGINE = InnoDB,
      PARTITION p2018_03_10 VALUES LESS THAN (1520697600) ENGINE = InnoDB,
      PARTITION p2018_03_11 VALUES LESS THAN (1520784000) ENGINE = InnoDB,
      PARTITION p2018_03_12 VALUES LESS THAN (1520870400) ENGINE = InnoDB,
      PARTITION p2018_03_13 VALUES LESS THAN (1520956800) ENGINE = InnoDB,
      PARTITION p2018_03_14 VALUES LESS THAN (1521043200) ENGINE = InnoDB,
      PARTITION p2018_03_15 VALUES LESS THAN (1521129600) ENGINE = InnoDB,
      PARTITION p2018_03_16 VALUES LESS THAN (1521216000) ENGINE = InnoDB,
      PARTITION p2018_03_17 VALUES LESS THAN (1521302400) ENGINE = InnoDB,
      PARTITION p2018_03_18 VALUES LESS THAN (1521388800) ENGINE = InnoDB,
      PARTITION p2018_03_19 VALUES LESS THAN (1521475200) ENGINE = InnoDB,
      PARTITION p2018_03_20 VALUES LESS THAN (1521561600) ENGINE = InnoDB,
      PARTITION p2018_03_21 VALUES LESS THAN (1521648000) ENGINE = InnoDB,
      PARTITION p2018_03_22 VALUES LESS THAN (1521734400) ENGINE = InnoDB,
      PARTITION p2018_03_23 VALUES LESS THAN (1521820800) ENGINE = InnoDB,
      PARTITION p2018_03_24 VALUES LESS THAN (1521907200) ENGINE = InnoDB,
      PARTITION p2018_03_25 VALUES LESS THAN (1521993600) ENGINE = InnoDB,
      PARTITION p2018_03_26 VALUES LESS THAN (1522080000) ENGINE = InnoDB,
      PARTITION p2018_03_27 VALUES LESS THAN (1522166400) ENGINE = InnoDB,
      PARTITION p2018_03_28 VALUES LESS THAN (1522252800) ENGINE = InnoDB);
Query OK, 0 rows affected (0.62 sec)

mysql>  CREATE TABLE `history_text` (
       `itemid` bigint(20) unsigned NOT NULL,
       `clock` int(11) NOT NULL DEFAULT '0',
       `value` text COLLATE utf8_bin NOT NULL,
       `ns` int(11) NOT NULL DEFAULT '0',
       KEY `history_text_1` (`itemid`,`clock`)
     )  ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 
     PARTITION BY RANGE (clock)
     (PARTITION p2018_02_01 VALUES LESS THAN (1517500800) ENGINE = InnoDB,
      PARTITION p2018_02_02 VALUES LESS THAN (1517587200) ENGINE = InnoDB,
      PARTITION p2018_02_03 VALUES LESS THAN (1517673600) ENGINE = InnoDB,
      PARTITION p2018_02_04 VALUES LESS THAN (1517760000) ENGINE = InnoDB,
      PARTITION p2018_02_05 VALUES LESS THAN (1517846400) ENGINE = InnoDB,
      PARTITION p2018_02_06 VALUES LESS THAN (1517932800) ENGINE = InnoDB,
      PARTITION p2018_02_07 VALUES LESS THAN (1518019200) ENGINE = InnoDB,
      PARTITION p2018_02_08 VALUES LESS THAN (1518105600) ENGINE = InnoDB,
      PARTITION p2018_02_09 VALUES LESS THAN (1518192000) ENGINE = InnoDB,
      PARTITION p2018_02_10 VALUES LESS THAN (1518278400) ENGINE = InnoDB,
      PARTITION p2018_02_11 VALUES LESS THAN (1518364800) ENGINE = InnoDB,
      PARTITION p2018_02_12 VALUES LESS THAN (1518451200) ENGINE = InnoDB,
      PARTITION p2018_02_13 VALUES LESS THAN (1518537600) ENGINE = InnoDB,
      PARTITION p2018_02_14 VALUES LESS THAN (1518624000) ENGINE = InnoDB,
      PARTITION p2018_02_15 VALUES LESS THAN (1518710400) ENGINE = InnoDB,
      PARTITION p2018_02_16 VALUES LESS THAN (1518796800) ENGINE = InnoDB,
      PARTITION p2018_02_17 VALUES LESS THAN (1518883200) ENGINE = InnoDB,
      PARTITION p2018_02_18 VALUES LESS THAN (1518969600) ENGINE = InnoDB,
      PARTITION p2018_02_19 VALUES LESS THAN (1519056000) ENGINE = InnoDB,
      PARTITION p2018_02_20 VALUES LESS THAN (1519142400) ENGINE = InnoDB,
      PARTITION p2018_02_21 VALUES LESS THAN (1519228800) ENGINE = InnoDB,
      PARTITION p2018_02_22 VALUES LESS THAN (1519315200) ENGINE = InnoDB,
      PARTITION p2018_02_23 VALUES LESS THAN (1519401600) ENGINE = InnoDB,
      PARTITION p2018_02_24 VALUES LESS THAN (1519488000) ENGINE = InnoDB,
      PARTITION p2018_02_25 VALUES LESS THAN (1519574400) ENGINE = InnoDB,
      PARTITION p2018_02_26 VALUES LESS THAN (1519660800) ENGINE = InnoDB,
      PARTITION p2018_02_27 VALUES LESS THAN (1519747200) ENGINE = InnoDB,
      PARTITION p2018_02_28 VALUES LESS THAN (1519833600) ENGINE = InnoDB,
      PARTITION p2018_03_01 VALUES LESS THAN (1519920000) ENGINE = InnoDB,
      PARTITION p2018_03_02 VALUES LESS THAN (1520006400) ENGINE = InnoDB,
      PARTITION p2018_03_03 VALUES LESS THAN (1520092800) ENGINE = InnoDB,
      PARTITION p2018_03_04 VALUES LESS THAN (1520179200) ENGINE = InnoDB,
      PARTITION p2018_03_05 VALUES LESS THAN (1520265600) ENGINE = InnoDB,
      PARTITION p2018_03_06 VALUES LESS THAN (1520352000) ENGINE = InnoDB,
      PARTITION p2018_03_07 VALUES LESS THAN (1520438400) ENGINE = InnoDB,
      PARTITION p2018_03_08 VALUES LESS THAN (1520524800) ENGINE = InnoDB,
      PARTITION p2018_03_09 VALUES LESS THAN (1520611200) ENGINE = InnoDB,
      PARTITION p2018_03_10 VALUES LESS THAN (1520697600) ENGINE = InnoDB,
      PARTITION p2018_03_11 VALUES LESS THAN (1520784000) ENGINE = InnoDB,
      PARTITION p2018_03_12 VALUES LESS THAN (1520870400) ENGINE = InnoDB,
      PARTITION p2018_03_13 VALUES LESS THAN (1520956800) ENGINE = InnoDB,
      PARTITION p2018_03_14 VALUES LESS THAN (1521043200) ENGINE = InnoDB,
      PARTITION p2018_03_15 VALUES LESS THAN (1521129600) ENGINE = InnoDB,
      PARTITION p2018_03_16 VALUES LESS THAN (1521216000) ENGINE = InnoDB,
      PARTITION p2018_03_17 VALUES LESS THAN (1521302400) ENGINE = InnoDB,
      PARTITION p2018_03_18 VALUES LESS THAN (1521388800) ENGINE = InnoDB,
      PARTITION p2018_03_19 VALUES LESS THAN (1521475200) ENGINE = InnoDB,
      PARTITION p2018_03_20 VALUES LESS THAN (1521561600) ENGINE = InnoDB,
      PARTITION p2018_03_21 VALUES LESS THAN (1521648000) ENGINE = InnoDB,
      PARTITION p2018_03_22 VALUES LESS THAN (1521734400) ENGINE = InnoDB,
      PARTITION p2018_03_23 VALUES LESS THAN (1521820800) ENGINE = InnoDB,
      PARTITION p2018_03_24 VALUES LESS THAN (1521907200) ENGINE = InnoDB,
      PARTITION p2018_03_25 VALUES LESS THAN (1521993600) ENGINE = InnoDB,
      PARTITION p2018_03_26 VALUES LESS THAN (1522080000) ENGINE = InnoDB,
      PARTITION p2018_03_27 VALUES LESS THAN (1522166400) ENGINE = InnoDB,
      PARTITION p2018_03_28 VALUES LESS THAN (1522252800) ENGINE = InnoDB);
Query OK, 0 rows affected (0.62 sec)

配置分区策略,采用外部分区的方式

yum install perl-Sys-Syslog

yum install per-DateTime

yum install perl-DateTime

yum install perl-DBD-MySQL

vim /etc/rsyslog.conf

  local6.*                                                /var/log/zabbix-partition.log

systemctl restart  rsyslog

cat  /var/lib/mysql/mysql_partition.pl

#!/usr/bin/perl
use strict;
use Data::Dumper;
use DBI;
use Sys::Syslog qw(:standard :macros);
use DateTime;
use POSIX qw(strftime);
openlog("mysql_zbx_part", "ndelay,pid", LOG_LOCAL6);
my $db_schema = 'zabbix';
my $dsn = 'DBI:mysql:'.$db_schema.':mysql_socket=/data/mysql/mysql.sock';
my $db_user_name = 'zabbix';
my $db_password = 'i5$4)Ci10(sn';
my $tables = {'history' => { 'period' => 'day', 'keep_history' => '60'},
'history_log' => { 'period' => 'day', 'keep_history' => '60'},
'history_str' => { 'period' => 'day', 'keep_history' => '60'},
'history_text' => { 'period' => 'day', 'keep_history' => '60'},
'history_uint' => { 'period' => 'day', 'keep_history' => '60'},
'trends' => { 'period' => 'month', 'keep_history' => '3'},
'trends_uint' => { 'period' => 'month', 'keep_history' => '3'},
# comment next 5 lines if you partition zabbix database starting from 2.2
# they usually used for zabbix database before 2.2
     #'acknowledges' => { 'period' => 'month', 'keep_history' => '23'},
     #'alerts' => { 'period' => 'month', 'keep_history' => '6'},
     #'auditlog' => { 'period' => 'month', 'keep_history' => '24'},
     #  'events' => { 'period' => 'month', 'keep_history' => '12'},
     #  'service_alarms' => { 'period' => 'month', 'keep_history' => '6'},
};
my $amount_partitions = 30;
my $curr_tz = 'Asia/Shanghai';
my $part_tables;
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
unless ( check_have_partition() ) {
print "Your installation of MySQL does not support table partitioning.\n";
syslog(LOG_CRIT, 'Your installation of MySQL does not support table partitioning.');
exit 1;
}
my $sth = $dbh->prepare(qq{SELECT table_name, partition_name, lower(partition_method) as partition_method,
rtrim(ltrim(partition_expression)) as partition_expression,
partition_description, table_rows
FROM information_schema.partitions
WHERE partition_name IS NOT NULL AND table_schema = ?});
$sth->execute($db_schema);
while (my $row =  $sth->fetchrow_hashref()) {
$part_tables->{$row->{'table_name'}}->{$row->{'partition_name'}} = $row;
}
$sth->finish();
foreach my $key (sort keys %{$tables}) {
unless (defined($part_tables->{$key})) {
syslog(LOG_ERR, 'Partitioning for "'.$key.'" is not found! The table might be not partitioned.');
next;
}
create_next_partition($key, $part_tables->{$key}, $tables->{$key}->{'period'});
remove_old_partitions($key, $part_tables->{$key}, $tables->{$key}->{'period'}, $tables->{$key}->{'keep_history'})
}
delete_old_data();
$dbh->disconnect();
sub check_have_partition {
my $result = 0;
# MySQL 5.5
   #my $sth = $dbh->prepare(qq{SELECT variable_value FROM information_schema.global_variables WHERE variable_name = 'have_partitioning'});
# MySQL 5.6
my $sth = $dbh->prepare(qq{SELECT plugin_status FROM information_schema.plugins WHERE plugin_name = 'partition'});
$sth->execute();
my $row = $sth->fetchrow_array();
$sth->finish();
# MySQL 5.5
#return 1 if $row eq 'YES';
# MySQL 5.6
return 1 if $row eq 'ACTIVE';
}
sub create_next_partition {
my $table_name = shift;
my $table_part = shift;
my $period = shift;
for (my $curr_part = 0; $curr_part < $amount_partitions; $curr_part++) {
my $next_name = name_next_part($tables->{$table_name}->{'period'}, $curr_part);
my $found = 0;
foreach my $partition (sort keys %{$table_part}) {
if ($next_name eq $partition) {
syslog(LOG_INFO, "Next partition for $table_name table has already been created. It is $next_name");
$found = 1;
}
}
if ( $found == 0 ) {
syslog(LOG_INFO, "Creating a partition for $table_name table ($next_name)");
my $query = 'ALTER TABLE '."$db_schema.$table_name".' ADD PARTITION (PARTITION '.$next_name.
' VALUES less than (UNIX_TIMESTAMP("'.date_next_part($tables->{$table_name}->{'period'}, $curr_part).'") div 1))';
syslog(LOG_DEBUG, $query);
$dbh->do($query);
}
}
}
sub remove_old_partitions {
my $table_name = shift;
my $table_part = shift;
my $period = shift;
my $keep_history = shift;
my $curr_date = DateTime->now;
$curr_date->set_time_zone( $curr_tz );
if ( $period eq 'day' ) {
$curr_date->add(days => -$keep_history);
$curr_date->add(hours => -$curr_date->strftime('%H'));
$curr_date->add(minutes => -$curr_date->strftime('%M'));
$curr_date->add(seconds => -$curr_date->strftime('%S'));
}
elsif ( $period eq 'week' ) {
}
elsif ( $period eq 'month' ) {
$curr_date->add(months => -$keep_history);
$curr_date->add(days => -$curr_date->strftime('%d')+1);
$curr_date->add(hours => -$curr_date->strftime('%H'));
$curr_date->add(minutes => -$curr_date->strftime('%M'));
$curr_date->add(seconds => -$curr_date->strftime('%S'));
}
foreach my $partition (sort keys %{$table_part}) {
if ($table_part->{$partition}->{'partition_description'} <= $curr_date->epoch) {
syslog(LOG_INFO, "Removing old $partition partition from $table_name table");
my $query = "ALTER TABLE $db_schema.$table_name DROP PARTITION $partition";
syslog(LOG_DEBUG, $query);
$dbh->do($query);
}
}
}
sub name_next_part {
my $period = shift;
my $curr_part = shift;
my $name_template;
my $curr_date = DateTime->now;
$curr_date->set_time_zone( $curr_tz );
if ( $period eq 'day' ) {
my $curr_date = $curr_date->truncate( to => 'day' );
$curr_date->add(days => 1 + $curr_part);
$name_template = $curr_date->strftime('p%Y_%m_%d');
}
elsif ($period eq 'week') {
my $curr_date = $curr_date->truncate( to => 'week' );
$curr_date->add(days => 7 * $curr_part);
$name_template = $curr_date->strftime('p%Y_%m_w%W');
}
elsif ($period eq 'month') {
my $curr_date = $curr_date->truncate( to => 'month' );
$curr_date->add(months => 1 + $curr_part);
$name_template = $curr_date->strftime('p%Y_%m');
}
return $name_template;
}
sub date_next_part {
my $period = shift;
my $curr_part = shift;
my $period_date;
my $curr_date = DateTime->now;
$curr_date->set_time_zone( $curr_tz );
if ( $period eq 'day' ) {
my $curr_date = $curr_date->truncate( to => 'day' );
$curr_date->add(days => 2 + $curr_part);
$period_date = $curr_date->strftime('%Y-%m-%d');
}
elsif ($period eq 'week') {
my $curr_date = $curr_date->truncate( to => 'week' );
$curr_date->add(days => 7 * $curr_part + 1);
$period_date = $curr_date->strftime('%Y-%m-%d');
}
elsif ($period eq 'month') {
my $curr_date = $curr_date->truncate( to => 'month' );
$curr_date->add(months => 2 + $curr_part);
$period_date = $curr_date->strftime('%Y-%m-%d');
}
return $period_date;
}
sub delete_old_data {
$dbh->do("DELETE FROM sessions WHERE lastaccess < UNIX_TIMESTAMP(NOW() - INTERVAL 1 MONTH)");
$dbh->do("TRUNCATE housekeeper");
$dbh->do("DELETE FROM auditlog_details WHERE NOT EXISTS (SELECT NULL FROM auditlog WHERE auditlog.auditid = auditlog_details.auditid)");
}

chmod +x mysql_partition.pl

yum install ntpdate

crontab -l

*/5 * * * * /usr/sbin/ntpdate ntp.api.bz

20 11  * * * /var/lib/mysql/scripts/mysql_partition.pl

定期备份配置数据

mysqldump  -uroot -p  --single-transaction -R  --default-character-set=utf8 --triggers --events  --hex-blob    --databases zabbix   --ignore-table=zabbix.history  --ignore-table=zabbix.history_uint  --ignore-table=zabbix.history_log  --ignore-table=zabbix.history_str --ignore-table=zabbix.history_text --ignore-table=zabbix.trends --ignore-table=zabbix.trends_uint > zabbix_`date`.sql

关闭 housekeeper ,防止出现select itemid,min(clock) from history_uint group by itemid 语句 ,改语句执行非常的慢,对数据库的插入性能,系统的负载等有非常大影响

关闭方法:

Administration -> General -> Housekeeping.

关闭history ,trends表的清理策略

systemctl restart zabbix-server

zabbix的端口

tcp6       0      0 :::10050                :::*                    LISTEN      1248/zabbix_agentd

tcp6       0      0 :::10051                :::*                    LISTEN      1974/zabbix_server

zabbix的日志

# ll /var/log/zabbix/*  #日志体系

-rw-rw-r--  1 zabbix zabbix 18578 Feb 28 18:46 /var/log/zabbix/zabbix_agentd.log

-rw-rw-r--. 1 zabbix zabbix 79759 Feb 28 18:18 /var/log/zabbix/zabbix_server.log

原文地址:http://blog.51cto.com/395469372/2074387

时间: 2024-10-15 07:41:56

Centos7.2 安装 zabbix server 3.4 及初始化工作的相关文章

手把手教你在Centos7上安装zabbix server 3.0

1.查看系统信息. cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) uname -a Linux VM_96_155_centos3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64GNU/Linux 2.使用rpm命令安装zabbix 3.0最新的epel源,关闭selinux和iptables. rpm -ivh h

Centos 7.0 下安装 Zabbix server 服务器的安装及 监控主机的加入(1)

一.本系列分为6部分 1.Centos 7.0 下安装 Zabbix server 服务器的安装及 监控主机的加入 2.Centos 6.5 下安装 Zabbix server 服务器的安装及 监控主机的加入 3.zabbix server的Discover功能,实现zabbix agent 大批量的自动添加,并链接到指定的模版 4.zabbix 报警方式之 邮件报警 5.zabbix 报警方式之 微信公众号报警 6.zabbix server 端的优化工作(解决mysql 性能下降,以及zab

CentOS 7上安装Zabbix Server 3.0 图文详解

转载自 http://www.linuxidc.com/Linux/2016-09/135204.htm CentOS 7上安装Zabbix Server 3.0 图文详解 1.查看系统信息. cat /etc/RedHat-releaseCentOS Linux release 7.0.1406 (Core) uname -a Linux VM_96_155_centos3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_

CentOS7:安装Zabbix

参考:CentOS 7 yum安装Zabbix 1. 安装Zabbix Server EPEL源里面有Zabbix的安装包,所以需要先安装EPEL. $ yum install epel-release 安装Zabbix Server: $ yum install zabbix22-server-mysql zabbix22-web-mysql 安装Zabbix Agent(可选): $ yum install zabbix22-agent 2. 安装MySql Server 先安装MySQL源

CentOS7脱机安装SQL Server 2017

原文:CentOS7脱机安装SQL Server 2017 SQL Server on Linux也发布一段时间了,官方上支持Red Hat, SUSE, Ubuntu.手上没有以上Linux版本,选用了与Red Hat最接近的CentOS7.4来进行安装和测试. 1. 环境 Linux: CentOS Linux release 7.4.1708 (Core) Memory: 4 GB SQL Server: SQL Server 2017 (RC2) - 14.0.900.75 (X64)

Centos7.2 安装Zabbix

Centos7.2 安装Zabbix | 知者不言 首页 首页 文章 分类 标签 关于 RSS 搜索 文章目录 简介 我有一个梦想,要把我接触到的服务器全部监控起来,想到就开始做,首先部署个zabbix,因为zabbix功能多而全. 基础信息 系统版本: Centos7.2 系统配置:4H16G200G硬盘 Mysql版本: 5.7 系统基本配置 更新系统 1 yum -y update 关闭SELinux 1 sed -i "s/SELINUX=enforcing/SELINUX=disabl

升级Windows10,安装程序无法正常启动&无法初始化工作目录

这里主要针对使用微软官方升级助手升级Windows10,遇到安装程序无法正常启动&安装程序无法初始化工作目录错误提示的解答 一.通过微软http://www.microsoft.com/zh-cn/software-download/windows10下载适用于个人操作系统的升级助手 二.保持网络通畅,下载完成后以管理员身份运行,正常情况下按照向导即可完成升级. ===================================================================

在CentOS7上安装Zabbix

一.Zabbix的简介Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.二.Zabbix角色组件Zabbix agent:负责部署在被监控主机上,把被监控主机的数据传送给zabbix server.Zabbix server:负责接收agent发送的信息,组织配置信息,统计配置信息和操作数据等.Zabbix database: 用于存储zabbix的所有配置信息,监控数据的数据库.Zabbix web: zabbix的web界面,管理可以通过zabbix

centos7编译安装zabbix

1.安装MySQL 从最新版本的linux系统开始,默认的是 Mariadb而不是mysql!使用系统自带的repos安装很简单:# yum install -y mariadb mariadb-server启动mariadb# systemctl start mariadb之前的服务管理命令还可以用# service mariadb start设置开机自启动# systemctl enable mariadb安全初始化,设置root密码等# mysql_secure_installation测