MySQL 主从复制 + MySQL Router 部署测试
4个节点
1、MySQLDB1 192.168.1.41 (MySQL 主节点)
2、MySQLDB2 192.168.1.42 (MySQL从节点)
3、MySQLDB3 192.168.1.43 (MySQL从节点)
4、MySQLRouter 192.168.1.47 (MySQLRouter服务节点)
软件版本说明:
1、操作系统 CentOS6.6_x86_64
2、MySQLServer 5.7.16
3、MySQLRouter 2.0.4
一、部署MySQL主从复制
----------------------- 复制创建及配置主要步骤 -----------------------------------------
1、Master 端启用二进制日志,指定唯一的 server_id
2、Slave 端配置唯一的 server_id
3、Master 端创建复制专用帐号
4、记录 Master 端日志信息并创建镜像
5、配置 Slave 端的连接
-------------------------------------------------------------------------------------------
1、系统平台: CentOS 6.6 (64位)
2、软件版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
3、为了模拟现实环境情况做如下前提条件假设:
1)、在搭建Master和Salve1时为一个全新的环境,即主数据库中无任何数据,Master和Slave1均为新环境部署
2)、在现有复制环境(Master+Slave1)中新增一个Slave2节点,现有复制环境中已有数据存在和修改过程执行
3)、Master节点的端口为3306,Slave1节点端口为3306,Slave2节点端口为3306
4)、为了部署方便,安装包使用二进制程序进行部署
----------------------------------------- 部署实现过程 -----------------------------------------------
1、用户及相关目录创建
--MySQLDB1 节点
[root@mysqldb1 ~]# groupadd mysql
[root@mysqldb1 ~]# useradd mysql -g mysql
[root@mysqldb1 ~]# mkdir /mysql
[root@mysqldb1 ~]# mkdir /mytmp
[root@mysqldb1 ~]# passwd mysql
--MySQLDB2 节点
[root@mysqldb2 ~]# groupadd mysql
[root@mysqldb2 ~]# useradd mysql -g mysql
[root@mysqldb2 ~]# mkdir /mysql
[root@mysqldb2 ~]# mkdir /mytmp
[root@mysqldb2 ~]# passwd mysql
--MySQLDB3 节点
[root@mysqldb3 ~]# groupadd mysql
[root@mysqldb3 ~]# useradd mysql -g mysql
[root@mysqldb3 ~]# mkdir /mysql
[root@mysqldb3 ~]# mkdir /mytmp
[root@mysqldb3 ~]# passwd mysql
2、设置用户操作系统资源的限制
--以避免在启动mysql服务是会报:
2017-04-11 17:27:03 3175 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2017-04-11 17:27:03 3175 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)
之类的警告信息
[root@mysqla ~]# vi /etc/security/limits.conf
在文件的最后添加如下内容
mysql soft nproc 2047
mysql hard nproc 16384
mysql soft nofile 1024
mysql hard nofile 65535
3、解压上传的二进制安装包程序并复制到目标目录下
--MySQLDB1 节点
[root@mysqldb1 mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@mysqldb1 mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306
--MySQLDB2 节点
[root@mysqldb2 mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@mysqldb2 mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306
--MySQLDB3 节点
[root@mysqldb3 mytmp]# tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[root@mysqldb3 mytmp]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /mysql/3306
4、便于方便管理创建单独的日志文件存放目录
--MySQLDB1 节点
[root@mysqldb1 3306]# mkdir logs
--MySQLDB2 节点
[root@mysqldb2 3306]# mkdir logs
--MySQLDB3 节点
[root@mysqldb3 3306]# mkdir logs
5、目录权限修改
--MySQLDB1 节点
[root@mysdb1 ~]# chown -R mysql:mysql /mysql
--MySQLDB2 节点
[root@mysqldb2 ~]# chown -R mysql:mysql /mysql
--MySQLDB3 节点
[root@mysqldb3 ~]# chown -R mysql:mysql /mysql
6、数据库初始化安装
--MySQLDB1 节点
[root@mysqldb1 ~]# su - mysql
[mysql@mysqldb1 ~]$ cd /mysql/3306
[mysql@mysqldb1 3306]$ ./bin/mysqld --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data
--MySQLDB2 节点
[root@mysqldb2 ~]# su - mysql
[mysql@mysqldb2 ~]$ cd /mysql/3306
[mysql@mysqldb2 3306]$ ./bin/mysqld --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data
--MySQLDB3 节点
[root@mysqldb3 ~]# su - mysql
[mysql@mysqldb3 ~]$ cd /mysql/3306
[mysql@mysqldb3 3306]$ ./bin/mysqld --initialize --user=mysql --basedir=/mysql/3306 --datadir=/mysql/3306/data
注:1、数据库初始化的命令与5.6版本有所不同
2、数据库初始化完后,会自动为 root 用户生成一个密码,记住该密码,
不过该密码很快很过期,所以需要在配置文件添加 skip-grant-tables 来启动数据库实例
3、安装aio依赖包: yum install libaio*
7、参数文件配置
--MySQLDB1 节点 /mysql/3306/my.cnf
[client]
default_character_set = utf8
port = 3306
socket = /tmp/mysql3306.sock
[mysqld]
basedir = /mysql/3306
datadir = /mysql/3306/data
user = mysql
port = 3306
server_id = 13306
character_set_server = utf8
socket = /tmp/mysql3306.sock
pid-file = /tmp/mysql3306.pid
log-bin = /mysql/3306/logs/bin_log
relay-log = /mysql/3306/logs/relay_log
log-error = /mysql/3306/logs/mysql_error.log
explicit_defaults_for_timestamp = true
expire_logs_days = 10
max_binlog_size = 100M
binlog-do-db = testdb #复制数据库名称
binlog-ignore-db = mysql
--MySQLDB2 节点 /mysql/3306/my.cnf
[client]
default_character_set = utf8
port = 3306
socket = /tmp/mysql3306.sock
[mysqld]
basedir = /mysql/3306
datadir = /mysql/3306/data
user = mysql
port = 3306
server_id = 23306
character_set_server = utf8
socket = /tmp/mysql3306.sock
pid-file = /tmp/mysql3306.pid
log-bin = /mysql/3306/logs/bin_log
relay-log = /mysql/3306/logs/relay_log
log-error = /mysql/3306/logs/mysql_error.log
explicit_defaults_for_timestamp = true
expire_logs_days = 10
max_binlog_size = 100M
--MySQLDB3 节点 /mysql/3306/my.cnf
[client]
default_character_set = utf8
port = 3306
socket = /tmp/mysql3306.sock
[mysqld]
basedir = /mysql/3306
datadir = /mysql/3306/data
user = mysql
port = 3306
server_id = 33306
character_set_server = utf8
socket = /tmp/mysql3306.sock
pid-file = /tmp/mysql3306.pid
log-bin = /mysql/3306/logs/bin_log
relay-log = /mysql/3306/logs/relay_log
log-error = /mysql/3306/logs/mysql_error.log
explicit_defaults_for_timestamp = true
expire_logs_days = 10
max_binlog_size = 100M
8、清理配置参数文件
在Linux平台下,mysql程序默认会按照以下顺序扫描路径寻找配置文件
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf #通过CMake源代码编译时指定的SYSCONFDIR的参数指定的路径
$MYSQL_HOME/my.cnf #MYSQL_HOME环境变量所在路径,即mysql安装路径(basedir)
~/.my.cnf #~表示到当更前用户根目录下寻找
通过命令 find / -iname my.cnf 查询配置文件的存在性,仅保留 MYSQL_HOME/my.cnf 配置文件。
注:使用如下命令可查看mysql实例的配置文件搜索顺序
[root@mysqldb1 bin]# mysql --help | grep '/my.cnf'
9、配置启动脚本
--MySQLDB1 节点实例
[root@mysqla 3306]# cp support-files/mysql.server /etc/init.d/mysql3306
[root@mysqla 3306]# vi /etc/init.d/mysql3306
将如下内容
#basedir=...
#datadir=...
修改为:
basedir=/mysql/3306
datadir=/mysql/3306/data
--MySQLDB2 节点实例
[root@mysqlb 3306]# cp support-files/mysql.server /etc/init.d/mysql3306
[root@mysqlb 3306]# vi /etc/init.d/mysql3306
将如下内容
#basedir=...
#datadir=...
修改为:
basedir=/mysql/3306
datadir=/mysql/3306/data
--MySQLDB3 节点实例
[root@mysqlc 3306]# cp support-files/mysql.server /etc/init.d/mysql3306
[root@mysqlc 3306]# vi /etc/init.d/mysql3306
将如下内容
#basedir=...
#datadir=...
修改为:
basedir=/mysql/3306
datadir=/mysql/3306/data
10、数据库服务启动
--MySQLDB1 节点
[mysql@mysqldb1 ~]$ service mysql3306 start
--MySQLDB2 节点
[mysql@mysqldb2 ~]$ service mysql3306 start
--MySQLDB3 节点
[mysql@mysqldb3 ~]$ service mysql3306 start
11、登录数据库以添加远程登录帐号信息
[mysql@mysqldb1 ~]$ mysql -u root -p -P 3306 --socket=/tmp/mysql3306.sock
[mysql@mysqldb2 ~]$ mysql -u root -p -P 3306 --socket=/tmp/mysql3306.sock
[mysql@mysqldb3 ~]$ mysql -u root -p -P 3306 --socket=/tmp/mysql3306.sock
注:使用mysql用户执行上述命令前,先配置相关环境变量值
/home/mysql/.bash_profile
添加如下内容:
MYSQL3306HOME=/mysql/3306
PATH=$PATH:$MYSQL3306HOME/bin
export MYSQL3306HOME PATH
注:上述登录数据库是需有参数 --socket ,否则会报出如下错误:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock
--为了安全起见,先删除默认生成的用户相关信息在创建一个指定名称的数据库管理员帐号
mysql> set password for root@localhost = password('rootroot');
mysql> delete from mysql.db;
mysql> delete from mysql.user;
mysql> grant all privileges on *.* to 'sysadmin'@'localhost' identified by 'mysql' with grant option;
mysql> grant all privileges on *.* to 'sysadmin'@'127.0.0.1' identified by 'mysql' with grant option;
mysql> flush privileges;
mysql> select host,user from user where user='sysadmin';
--退出当前连接,再次登录数据库,以验证新建数据库管理员帐号的合法性
--以 MySQLDB1 节点为例测试
mysql> exit;
[mysql@mysqldb1 ~]$ mysql -h localhost -u sysadmin -p -P 3306 -S /tmp/mysql3306.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.16-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
--注:为了安全的需要,上述的连接数据库命令行中密码没有直接写出,而是在使用 -p 参数,再在提示符行中输入密码
确认有当前添加的用户即可进行远程登录数据库。
12、设置数据库自动启动
--MySQLDB1 节点
[root@mysqldb1 ~]# chkconfig --add mysql3306
[root@mysqldb1 ~]# chkconfig mysql3306 --list
mysql3306 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@mysqldb1 ~]#
--MySQLDB2 节点
[root@mysqldb2 ~]# chkconfig --add mysql3306
[root@mysqldb2 ~]# chkconfig mysql3306 --list
mysql3306 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@mysqldb2 ~]#
--MySQLDB3 节点
[root@mysqldb3 ~]# chkconfig --add mysql3306
[root@mysqldb3 ~]# chkconfig mysql3306 --list
mysql3306 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@mysqldb3 ~]#
13、重启系统验证数据库自动启动服务功能
--重启系统
[root@mysqldb1 ~]# shutdown -r now
[root@mysqldb2 ~]# shutdown -r now
[root@mysqldb3 ~]# shutdown -r now
--查看数据库服务是否随系统启动
--MySQLDB1 节点
[root@mysqldb1 ~]# service mysql3306 status
MySQL running (2122) [ OK ]
[root@mysqldb1 ~]#
--MySQLDB2 节点
[root@mysqldb2 ~]# service mysql3306 status
MySQL running (2117) [ OK ]
[root@mysqldb2 ~]#
--MySQLDB3 节点
[root@mysqldb3 ~]# service mysql3306 status
MySQL running (2119) [ OK ]
[root@mysqldb3 ~]#
14、在master节点创建复制专业帐号
mysql> grant replication slave on *.* to 'repl'@'%' identified by 'repl';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
15、查看 master 主机信息 (slave 服务器配置需要改信息)
[mysql@mysqldb1 ~]$ mysql -h localhost -u sysadmin -p -P 3306 -S /tmp/mysql3306.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.16-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show master status \G
*************************** 1. row ***************************
File: mysql_bin.000004
Position: 403
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql>
16、在 MySQLDB2 节点配置复制,并启动复制
mysql> show slave status \G
Empty set (0.00 sec)
mysql> change master to
-> master_host='192.168.1.41',
-> master_port=3306,
-> master_user='repl',
-> master_password='repl',
-> master_log_file='mysql_bin.000004',
-> master_log_pos=403;
Query OK, 0 rows affected, 2 warnings (0.06 sec)
mysql> start slave;
Query OK, 0 rows affected (0.17 sec)
mysql>
17、复制功能测试
--MySQLDB1 节点
mysql> create database testdb;
mysql> use testdb;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| testdb |
+------------+
1 row in set (0.00 sec)
mysql> create table t1(id int, name varchar(20));
Query OK, 0 rows affected (1.71 sec)
mysql> select * from t1;
Empty set (0.00 sec)
mysql> insert into t1 (id,name) values(1,'yangchao');
Query OK, 1 row affected (0.00 sec)
mysql> select * from t1;
+------+----------+
| id | name |
+------+----------+
| 1 | yangchao |
--MySQLDB1 节点
mysql> select * from t1;
Empty set (0.01 sec)
mysql> select * from t1;
+------+----------+
| id | name |
+------+----------+
| 1 | yangchao |
+------+----------+
1 row in set (0.00 sec)
mysql>
----------------------- 复制功能正常 --------------------------------------
------------------ 动态添加 MySQLDB3 节点(innobackupex) ---------------------------
18、在 MySQLDB1 节点执行全库备份
[root@mysqldb1 ~]# innobackupex --user=sysadmin --password=mysql --socket=/tmp/mysql3306.sock --defaults-file=/mysql/3306/my.cnf --slave-info /home/mysql
xtrabackup: Error: --defaults-file must be specified first on the command line
----提示配置文件参数必须放在第一位
[root@mysqldb1 ~]# innobackupex --defaults-file=/mysql/3306/my.cnf --user=sysadmin --password=mysql --socket=/tmp/mysql3306.sock --slave-info /home/mysql
19、将 /home/mysql/yyyy-mm-dd_hh24-mi-ss 这个文件夹拷贝到 Salve2 节点的 /home/mysql 目录下
注:或者直接用 scp 命令拷贝
scp -r /home/mysql/yyyy-mm-dd_hh24-mi-ss root@mysrvc:/home/mysql
20、停止 MySQLDB3 节点上的mysql实例,并备份 data 目录
[root@mysqldb3 ~]# service mysql3306 stop
[root@mysqldb3 ~]# cd /mysql/3306
[root@mysqldb3 3306]# mv data data.bak
21、执行恢复
[root@mysqldb3 3306]# innobackupex --defaults-file=/mysql/3306/my.cnf --user=sysadmin --apply-log /home/mysql/yyyy-mm-dd_hh24-mi-ss
[root@mysqldb3 3306]# innobackupex --defaults-file=/mysql/3306/my.cnf --user=sysadmin --copy-back /home/mysql/yyyy-mm-dd_hh24-mi-ss
22、修改 data 目录所有者权限 (如果使用mysql用户备份操作时,则无需做目录所有者权限修改)
[root@mysqldb3 3306]# chown -R mysql:mysql data
23、启动数据库实例
[root@mysqldb3 3306]# service mysql3306 start
24、在 MySQLDB3 节点查看 Master 节点的二进制文件名和位置信息
[root@mysqldb3 3306]# cat data/xtrabackup_binlog_pos_innodb
mysql_bin.000004 976
[root@mysqldb3 3306]#
25、配置 MySQLDB3 节点复制信息
[root@mysqldb3 3306]# su - mysql
[mysql@mysqldb3 ~]# mysql -u sysadmin -pmysql -P 3306 --socket=/tmp/mysql3306.sock
mysql> show slave status \G
Empty set (0.00 sec)
mysql> change master to
-> master_host='192.168.1.41',
-> master_port=3306,
-> master_user='repl',
-> master_password='repl',
-> master_log_file='mysql_bin.000004',
-> master_log_pos=976;
Query OK, 0 rows affected, 2 warnings (0.06 sec)
mysql> start slave;
Query OK, 0 rows affected (0.17 sec)
mysql>
26、在 MySQLDB3 启动复制功能
mysql> start save;
27、测试
在 MySQLDB1节点的test数据库中执行创建数据表或数的更新操作,验证在 MySQLDB2 和 MySQLDB3 节点的test数据库中是否正常复制。
============================================
MySQL主从复制几个重要的启动选项
(1)、log-slave-updates
log-slave-updates 这个参数用来配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,但是,如果这个从服务器B是服务器A的从服务器,同时还作为服务器C的主服务器,那么就需要开发这个选项,这样它的从服务器C才能获得它的二进制日志进行同步操作。
(2)、master-connect-retry
master-connect-retry 这个参数是用来设置在和主服务器连接丢失的时候,重试的时间间隔,默认是60秒。
(3)、read-only
read-only是用来限制普通用户对从数据库的更新操作,以确保从数据库的安全性,不过如果是超级用户依然可以对从数据库进行更新操作。
(4)、slave-skip-errors
在复制过程中,由于各种的原因,从服务器可能会遇到执行BINLOG中的SQL出错的情况,在默认情况下,服务器会停止复制进程,不再进行同步,等到用户自行来处理。
Slave-skip-errors的作用就是用来定义复制过程中从服务器可以自动跳过的错误号,当复制过程中遇到定义的错误号,就可以自动跳过,直接执行后面的SQL语句。
--slave-skip-errors=[err1,err2,…….|ALL]
但必须注意的是,启动这个参数,如果处理不当,很可能造成主从数据库的数据不同步,在应用中需要根据实际情况,如果对数据完整性要求不是很严格,那么这个选项确实可以减轻维护的成本
===================================================
二、部署MyRouter服务
1、解压安装程序文件
[root@mysqlrouter mytmp]# tar -xzvf mysql-router-2.0.4-linux-glibc2.12-x86-64bit.tar.gz
2、重命名安装文件夹
[root@mysqlrouter mytmp]# mv mysql-router-2.0.4-linux-glibc2.12-x86-64bit /usr/local/mysqlrouter
3、创建日志和配置相关文件存放目录
[root@mysqlrouter mytmp]# cd /usr/local/mysqlrouter
[root@mysqlrouter mysqlrouter]# mkdir logs
[root@mysqlrouter mysqlrouter]# mkdir etc
4、创建配置文件 (利用模板文件创建)
[root@mysqlrouter mysqlrouter]#cp share/doc/mysqlrouter/sample_mysqlrouter.ini ./etc/mysqlrouter.ini
配置项内容如下:
[DEFAULT]
logging_folder = /usr/local/mysqlrouter/logs
plugin_folder = /usr/local/mysqlrouter/lib/mysqlrouter
config_folder = /usr/local/mysqlrouter/etc
runtime_folder = /usr/local/mysqlrouter/run
[logger]
level = INFO
[routing:read_write]
bind_address = 192.168.1.47
bind_port = 7001
mode = read-write
destinations = 192.168.1.41:3306
max_connections = 65535
max_connect_errors = 100
client_connect_timeout = 9
[routing:read_only]
bind_address = 192.168.1.47
bind_port = 7002
mode = read-only
destinations = 192.168.1.42:3306,192.168.1.43:3306
max_connections = 65535
max_connect_errors = 100
client_connect_timeout = 9
[keepalive]
interval = 60
注:参数说明
bind_address 指定mysql router绑定的服务器
bind_port 指定绑定的端口
destinations 指定后端mysql server 列表 (ip:port 格式,使用逗号分隔)
mode 读写模式(read-write, read_only)
5、启动 mysql router
[root@mysqlrouter mysqlrouter]# cd bin
[root@mysqlrouter bin]# ./mysqlrouter -c /usr/local/mysqlrouter/etc/mysqlrouter.ini &
三、验证测试
1、读写分离测试
读写分离是通过在配置文件中配置的不同端口实现
由于mysqlrouter节点未安装mysql客户端程序,所以在mysqldb1节点测试
登录写节点:端口7001
mysql -h 192.168.1.47 -u yangchao -p -P 7001
登录读节点:端口7002
mysql -h 192.168.1.47 -u yangchao -p -P 7002
由上测试可知:两次从7002读取端口登录的主机节点都是在配置文件中配置的只读节点。
2、读取复制均衡测试
登录读节点:端口7002
mysql -h 192.168.1.47 -u yangchao -p -P 7002
由上测试的4次通过登录读取端口7002可知,分别在mysqldb2,mysqldb3两个读取节点间轮询访问,实现了读取操作的复制均衡功能。
3、高可用测试
1)、读取节点的高可用性:
先关闭读取节点mysqldb2
mysql -h 192.168.1.47 -u yangchao -p -P 7002
由上测试可知:两次的7002端口登录都是在存活节点mysqldb3上。
2)、读写节点的高可用性:
修改配置文件,为读写节点配置如下:
[routing:read_write]
bind_address = 192.168.1.47
bind_port = 7001
mode = read-write
destinations = 192.168.1.41:3306,192.168.1.42:3306
停止读写节点 mysqldb1
登录 7001 端口:
登录的是 mysqldb2 节点实例
插入记录测试:
能成功插入数据。
在读取节点查看记录是否同步:
mysql -h localhost -u yangchao -p -P 3306 -S /tmp/mysql3306.sock
由上测试可知:读写的主节点可以实现故障切换,但并不能实现其复制角×××转变。
注:
1、在重新启动mysqldb1 节点实例服务后,再登录读写节点时也并不能登录到mysqldb1实例了,需要重新启动mysqlrouter服务后,方能实现登录读写节点是mysqldb1节点主机。
2、由于其复制均衡采用的是轮询的方式,经测试爱多个从节点中某个实例故障后,mysqlrouter仍然会轮询访问该故障节点,所以其仅实现的简单轮询负载而已,不能对节点状态实时监控。
3、本测试案例未考虑mysqlrouter的高可用性,其高可用性的实现可以使用keepalived。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。 通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。 开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站: h...
- 下一篇
Jenkins安装部署篇
Jenkins安装部署 1、首先下载Jenkins.war包,官网:https://jenkins.io/download/,这块用的比较老,为了和配管的版本一致。 2、部署好Jdk和Tomcat 3、去apache官网下载maven软件包,部署好maven 4、svn环境,可以参考之前的博客配置web访问svn仓库篇。 jdk的安装,这是之前封装的jdk rpm包,可以参考之前博客封装rpm包。 jdk的安装路径和环境变量: [root@localhost~]#cat/etc/profile.d/jdk.sh exportJAVA_HOME=/usr/local/java exportJRE_HOME=/usr/local/java/jre exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH exportPATH=$JAVA_HOME/bin:$PATH Tomcat的安装路径: [root@localhost~]#ls/data/tomcat/webapps/ docsexa...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2更换Tomcat为Jetty,小型站点的福音