Keepalived工具安裝

來源:互聯網
上載者:User

裝keepalived前,要先檢查主機上是否已經安裝, ps -ef | grep keepalive 不檢查的話,容易把前人裝的東西覆蓋掉,那麼以前弄的設定檔都沒了比較麻煩。
以下都為root使用者 root使用者上傳工具,壓縮包就200多k,不大。 cd && mkdir fwy && chmod 777 fwy && cd fwy scp padba@cnsz081003:/paic/dba/dbsoft/mysql/keepalived-1.1.19.tar.gz . 密碼MdCg2014 tar xvf keepalived-1.1.19.tar.gz mv keepalived-1.1.19 ..
安裝OpenSSL [root@cnsh042942 fwy]# yum install openssl-devel Loaded plugins: product-id, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. el6_u5_base | 1.2 kB 00:00 Setting up Install Process Package openssl-devel-1.0.1e-15.el6.x86_64 already installed and latest version Nothing to do
編譯並安裝 mv /root/fwy/keepalived-1.1.19 /root cd /root/keepalived-1.1.19 ./configure make && make install
配置 cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/sbin/keepalived /usr/sbin/ mkdir /opt/keepalived touch /etc/keepalived/keepalived.conf
配置指令碼 [root@cnsh042942 keepalived]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000 link/ether 00:50:56:aa:0a:89 brd ff:ff:ff:ff:ff:ff 3: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:50:56:aa:0a:89 brd ff:ff:ff:ff:ff:ff inet 10.31.10.138/24 brd 10.31.10.255 scope global bond0 inet6 fe80::250:56ff:feaa:a89/64 scope link valid_lft forever preferred_lft forever
我們的10.31.10.138是綁定在bond0上的,bond0應該算是虛擬網卡。其中interface bond0的bond0,virtual_router_id 117的117,virtual_ipaddress中的地址,是寫成自己想要的vip,也是DA先申請好一個vip以免衝突。
touch /opt/keepalived/keepalived_check_mysql.sh touch /opt/keepalived/to_master.sh
keepalived.conf設定檔,該檔案存在但是是空的。 ls -l /etc/keepalived/keepalived.conf
Master節點用如下指令碼: vrrp_script check_mysql { script "/opt/keepalived/keepalived_check_mysql.sh" weight -10 } vrrp_instance KEEPALIVED_MYSQL { ##注意:兩台MYSQL伺服器都設定為BACKUP state backup interface bond0 virtual_router_id 117 ##Master設定為101,Slave設定為100 priority 101 nopreempt track_script { check_mysql } virtual_ipaddress { 10.31.10.152 } notify_master /opt/keepalived/to_master.sh } vrrp_script check_mysql { script "/opt/keepalived/keepalived_check_mysql.sh" weight -10 } 主庫、從庫的virtual_router_id值要相同,mysql取100-149之間,如果同一網段已經有相同的virtual_router_id被用了,那麼就會起來失敗。
Slave節點用如下指令碼,可以注意到,priority比上面小1。 vrrp_instance KEEPALIVED_MYSQL { ##注意:兩台MYSQL伺服器都設定為BACKUP state backup interface bond0 virtual_router_id 117 ##Master設定為101,Slave設定為100 priority 100 ##nopreempt track_script { check_mysql } virtual_ipaddress { 10.31.10.152 } notify_master /opt/keepalived/to_master.sh }

建立通道通道就是,在mysql裡面定義一些可以用密文登陸的使用者,然後給一些工具直接用密文來登陸的,以保證安全。 切換到mysql使用者: mysql_config_editor set --login-path=keepalived_monitor --host=localhost --user=keepalived --password --socket=${MYSQL_HOME}/var/mysql.sock 然後就會在mysql使用者家目錄下產生一下.mylogin.cnf檔案。
root使用者 cd /opt/keepalived/ keepalived_check_mysql.sh指令碼如下 MYSQL=/usr/bin/mysql,要修改為/paic/t0gimp/rdbms/mysql/5.6/bin/mysql LOG_FILE=/opt/keepalived/check_mysql.log 這裡可以修改為更具識別名稱的/opt/keepalived/check_t0gimp.log export MYSQL_TEST_LOGIN_FILE=/paic/emmsq/data/mysqldata/emmsq /.mylogin.cnf ,這個.mylogin.cnf檔案,在mysql使用者的家目錄下,是用mysql使用者建立通道時自動建立的。 $MYSQL --login-path=keepalived_monitor -e 的”keepalived_monitor修改為實際的通道名“
#!/bin/bash MYSQL=/paic/t0gimp/rdbms/mysql/5.6/bin/mysql # 記錄檔 LOG_FILE=/opt/keepalived/check_t0gimp.log export MYSQL_TEST_LOGIN_FILE=/paic/t0gimp/rdbms/mt0gimp/.mylogin.cnf # 檢查次數 CHECK_TIME=3 #mysql is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0 MYSQL_OK=1 function check_mysql_helth (){ $MYSQL --login-path=keepalived_monitor -e "show status;" >/dev/null 2>&1 if [ $? = 0 ] ;then MYSQL_OK=1 else MYSQL_OK=0 fi return $MYSQL_OK } while [ $CHECK_TIME -ne 0 ] do let "CHECK_TIME -= 1" check_mysql_helth if [ $MYSQL_OK = 1 ] ; then CHECK_TIME=0 #echo `date --date=today +"%Y-%m-%d %H:%M:%S"` - [INFO] - mysql available: success[$MYSQL_OK] >> $LOG_FILE exit 0 fi if [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ] then echo `date --date=today +"%Y-%m-%d %H:%M:%S"` - [INFO] - mysql invaild. keepalived stop. >> $LOG_FILE exit 1 fi sleep 1 done

to_master.sh 這是從庫切換為主庫之後啟動並執行shell指令碼
#!/bin/bash MYSQL=/paic/t0gimp/rdbms/mysql/5.6/bin/mysql VIP=10.31.10.152 GATEWAY=10.31.10.200 /sbin/arping -I bond0 -c 5 -s $VIP $GATEWAY &>/dev/null $MYSQL --login-path=keepalived_switch -e "set global read_only=OFF" >/dev/null 2>&1
sh指令碼賦權 cd /opt/keepalived chmod 700 *.sh
keepalived啟停 [root@cnsh281018 ~]# /etc/init.d/keepalived start [root@cnsh281018 ~]# /etc/init.d/keepalived stop
驗證, [root@cnsh042942 keepalived]# /etc/init.d/keepalived start Starting keepalived: [ OK ] [root@cnsh042942 keepalived]# ps -ef | grep keepa root 20353 1 0 13:53 ? 00:00:00 keepalived -D root 20354 20353 0 13:53 ? 00:00:00 keepalived -D root 20372 1 0 13:53 ? 00:00:00 /bin/bash /opt/keepalived/keepalived_check_mysql.sh root 20382 20354 3 13:53 ? 00:00:00 keepalived -D root 20383 20382 0 13:53 ? 00:00:00 /bin/bash /opt/keepalived/keepalived_check_mysql.sh root 20394 17696 0 13:53 pts/2 00:00:00 grep keepa

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.