zabbix 安裝使用手冊(HA)-1

1.1 zabbix運行條件

Serverphp

zabbix server需運行在LAMP(Linux+Apache+Mysql+PHP)環境下,對硬件要求低。html

Agentjava

目前已有的agent基本支持市面常見的OS,包含Linux、HPUX、Solaris、Sun、windows。node

SNMPmysql

支持各種常見的網絡設備。linux

1.2 zabbix功能

具有常見的商業監控軟件所具有的功能(主機的性能監控、網絡設備性能監控、數據庫性能監控、FTP等通用協議監控、多種告警方式、詳細的報表圖表繪製)web

支持自動發現網絡設備和服務器,支持分佈式,能集中展現、管理分佈式的監控點,擴展性強,server提供通用接口,能夠本身開發完善各種監控sql

1.3 優劣勢

優勢:shell

Ø開源,無軟件成本投入數據庫

ØServer對設備性能要求低

Ø支持設備多

Ø支持分佈式集中管理

Ø開放式接口,擴展性強

缺點:

Ø出現問題如需原廠支持需支付費用

Ø需在被監控主機上安裝agent


2. zabbix配置文件

2.1 說明

Server指安裝zabbix服務的服務器(如下簡稱服務器端),是最重要的部份,主要安裝在linux系統上(支持多種操做系統),採用mysql存儲監控數據並使用apache+php的方式呈現。

Agent指安裝在被監控設備上的zabbix代理(如下簡稱代理),被監控設備上的數據由代理收集後統一上傳到服務器端由服務器端收集、整理並呈現。

SNMP也是agent的一種,指支持SNMP協議的設備(也能夠是服務器),經過設定SNMP的參數將相關監控數據傳送至服務器端(大部份的交換機、防火牆等網絡設備都支持SNMP協議)。

IPMIAgent的另外一種方式,主要應用於設備的物理性能監控,例如設備的溫度、風扇的轉速等。

2.2 zabbix架構

zabbix支持多種網絡方式下的監控,可經過分佈式的方式部署和安裝監控代理,整個架構如圖所示。

154624421.png



3. 系統規劃

Ø系統環境:CentOS5.6 32bitRHEL6.2 64bit

Ø每一個節點服務器都有兩塊網卡,一塊用做鏈接公用網絡,另外一塊經過以太網交叉線鏈接兩個節點,做爲心跳監控,網絡以及IP地址規劃如表所示:

節點類型

IP地址規劃

主機名

類型

主用節點

eth0192.168.8.73/24

server01

Public IP

eth110.1.1.1/24

private01

private IP

eth0:0192.168.8.89

Virtual IP

備用節點

eth0192.168.8.74/24

server02

Public IP

eth110.1.1.2/24

private02

private IP

配置每一個節點的/etc/hosts文件,保證兩個節點內容一致/etc/hosts文件內容以下:

192.168.8.73            server01

192.168.8.74            server02

10.1.1.1               private01

10.1.1.2               private02

Ø系統拓撲:

154625844.jpg


4. zabbix server安裝

Øzabbix版本:2.0.6

4.1 同步授時中心時間

Ø同步授時中心的時間,強制把系統時間寫入CMOS

ntpdate pool.ntp.org
clock -w

注意:這裏說的是系統時間,是由linux操做系統維護的。在系統啓動時,Linux操做系統將時間從CMOS中讀到系統時間變量中,之後修改時間經過修改系統時間實現。爲了保持系統時間與CMOS時間的一致性,Linux每隔一段時間會將系統時間寫入CMOS。因爲該同步是每隔一段時間(大約是11分鐘)進行的,在咱們執行date -s後,若是立刻重起機器,修改時間就有可能沒有被寫入CMOS

Ø天天凌晨、6點、12點和18點與授時中心同步時間,並將結果保存至/var/log/ntpdate.log文件中。

crontab -u root -e

添加:

0 0,6,12,18 * * * /usr/sbin/ntpdatepool.ntp.org >> /var/log/ntpdate.log

查詢一下服務crond的狀況:

chkconfig --list crond

161539397.png

查詢一下用戶rootcron的配置狀況:

crontab -u root -l

Ø注意:linux下防火牆規則若是極嚴格的話可能會影響 ntpd 對時,打開 sport 123 便可(假設 OUTPUT鏈全 ACCEPT):

iptables -A INPUT -p udp --sport 123 -j ACCEPT


4.2 網卡服務配置

Ø中止NetworkManager服務,這樣網卡就不受NetworkManage的控制。

/etc/init.d/NetworkManager stop
chkconfig NetworkManager off


4.3 創建LAMP環境

4.3.1 CentOS5.6

Ø安裝rpmforge-release-0.5.3-1.el5.rf

rpm -ivh rpmforge-release-0.5.3-1.el5.rf.i386.rpm

備註:zabbix編譯安裝中的選項「--with-ssh2」對libssh2的版本要求爲>=1.0.0epel源的版本爲0.18不符合需求,rpmforge源的版本爲1.2.9符合需求。

注意:64位系統請安裝此包

rpm -ivh rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm

ØLAMP環境:

yum -y install httpd mysql-server php

Ø安裝相關依賴包:

yum install -y gcc mysql-devel net-snmp-devel net-snmp-utils php-gd php-mysqlphp-common php-bcmath php-mbstring php-xml curl-devel iksemel* OpenIPMIOpenIPMI-devel fping libssh2 libssh2-devel unixODBC unixODBC-develmysql-connector-odbc openldap openldap-devel java java-devel

Ø配置http不隨系統啓動:

chkconfig httpd off
chkconfig mysqld on

注意:apache屆時由heartbeat啓動。


4.3.2 RHEL 6.2

Ø使用安裝光盤創建本地yum源:

卸載已掛載的光盤:

umount /dev/sr0

掛載光盤並寫入配置文件:

mount /dev/sr0 /media/
vi /etc/fstab

末尾添加:

/dev/sr0        /media                  iso9660  defaults  0 0

建立yum配置文件:

vi /etc/yum.repos.d/rhel6.repo

添加:

[base]
name=base
baseurl=file:///media/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

Ø安裝epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

Ø導入key

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

Ø添加163上的CentOS6源:

wget -O /etc/yum.repos.d/CentOS6-Base-163.repohttp://mirrors.163.com/.help/CentOS6-Base-163.repo

Ø編輯CentOS6-Base-163.repo把文件裏面的$releasever所有替換爲6

vi /etc/yum.repos.d/CentOS6-Base-163.repo

161636395.png

ØLAMP環境:

yum -y install httpd mysql-server php

Ø安裝相關依賴包:

yum install -y gcc mysql-devel net-snmp-devel net-snmp-utils php-gd php-mysqlphp-common php-bcmath php-mbstring php-xml curl-devel iksemel* OpenIPMIOpenIPMI-devel fping libssh2 libssh2-devel unixODBC unixODBC-develmysql-connector-odbc openldap openldap-devel java java-devel

Ø配置http不隨系統啓動:

chkconfig httpd off
chkconfig mysqld on

注意:apache屆時由pacemaker啓動。


4.4 禁用SELINUX

setenforce 0

修改/etc/selinux/config文件中設置SELINUX=disabled

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

154625691.png

備註:

設置SELinux 成爲enforcing模式

setenforce 1

設置SELinux 成爲permissive模式

setenforce 0


4.5 新建zabbix組和用戶

/usr/sbin/groupadd zabbix
/usr/sbin/useradd -g zabbix zabbix


4.6 編譯安裝zabbix

4.6.1 編譯安裝

Ø下載解壓zabbix

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz/download
tar zxvf zabbix-2.0.6.tar.gz

Ø編譯安裝:

cd /root/zabbix-2.0.6/
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --enable-java --enable-ipv6 --with-net-snmp --with-libcurl --with-ldap --with-ssh2 --with-jabber --with-openipmi --with-unixodbc
make && make install

configure:error: Invalid NET-SNMP directory - unable to find net-snmp-config

編譯安裝zabbix時,配置時報以上錯,致使檢測系統環境不成功。提示unableto find net-snmp-config,說明缺乏相關的依賴性。
這是由於,在linux中,大多數軟件都是開源的,而且能夠自由使用。所以在開發時能夠用到其餘的軟件包時咱們直接就拿來了,不用在花功夫去從新編寫,這就形成了所謂的依賴性。
那麼怎麼解決該問題那?
解決辦法一:
找出net-snmp-config屬於哪一個軟件包,而後安裝便可。
yum search net-snmp-config,發現net-snmp-config屬於軟件包net-snmp-develyum安裝該軟件包,解決該問題。
解決辦法二:
在配置時,咱們加上了--with-net-snmp這個選項,所以須要檢查系統環境是否有該軟件包支持。所以,在配置時,不要加上--with-net-snmp這個選項即不會報以下錯誤configure:error: Invalid NET-SNMP directory - unable to find net-snmp-config
參考文獻:zabbix中文文檔http://www.linuxmr.com/zabbix2/


4.6.2 建立zabbix數據庫

Ø開啓mysql,修改mysql root密碼爲123456(實際使用環境中可自定義密碼):

/etc/init.d/mysqld start
/usr/bin/mysqladmin -u root password 123456

Ø建立zabbix庫,設置字符爲utf8

/usr/bin/mysql -uroot -p123456
create database zabbix character set utf8;
grant all privileges on zabbix.* to 'zabbix'@'192.168.8.89' identified by '123456';
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';

開啓zabbix用戶遠程鏈接權限(可選):

grant all privileges on zabbix.* to 'zabbix'@'%' identified by '123456';
quit

備註:zabbix數據庫能夠和zabbix服務器分離,採用後端數據層的mysql服務器存儲數據提升安全,本例因實體機僅有二臺,故zabbix servermysql server還在同一臺物理機中。

注意:本例爲heartbeatVIP地址。(請按實際環境設置VIP地址):

Ø導入數據庫:

cd /root/zabbix-2.0.6/database/mysql/
mysql -uzabbix -h 192.168.8.89 -p123456 zabbix < schema.sql
mysql -uzabbix -h 192.168.8.89 -p123456 zabbix < p_w_picpaths.sql
mysql -uzabbix -h 192.168.8.89 -p123456 zabbix < data.sql


4.6.3 複製配置文件到zabbix安裝目錄

cp -R /root/zabbix-2.0.6/conf/zabbix_agentd /usr/local/zabbix/etc/
cp /root/zabbix-2.0.6/conf/zabbix_agentd.win.conf /usr/local/zabbix/etc/
cp /root/zabbix-2.0.6/conf/zabbix_proxy.conf /usr/local/zabbix/etc/

&#216;修改zabbix_server.conf配置文件數據庫(mysql)相關部分:

vim /usr/local/zabbix/etc/zabbix_server.conf

修改如下內容:

DBUser=zabbix
DBPassword=123456


4.6.4 添加服務端口

vim /etc/services

在末尾追加如下內容:

#zabbix services
zabbix-agent    10050/tcp                       # Zabbix Agent
zabbix-agent    10050/udp                       # Zabbix Agent
zabbix-trapper  10051/tcp                       # Zabbix Trapper
zabbix-trapper  10051/udp                       # Zabbix Trapper


4.6.5 修改zabbix目錄用戶屬性

chown -R zabbix.zabbix /usr/local/zabbix/


4.6.6 配置軟鏈接

&#216; zabbix 命令行操做文件作連接,方便系統能夠找獲得。

ln -s /usr/local/zabbix/bin/* /usr/bin/
ln -s /usr/local/zabbix/sbin/* /usr/sbin/


4.6.7 配置zabbix啓動腳本

&#216;拷貝zabbix啓動腳本到/etc/init.d/下。

cp /root/zabbix-2.0.6/misc/init.d/fedora/core/zabbix_* /etc/init.d/

&#216;修改zabbix啓動腳本中程序目錄的位置。

vim /etc/init.d/zabbix_server

修改:

BASEDIR=/usr/local/zabbix
vim /etc/init.d/zabbix_agentd

修改:

BASEDIR=/usr/local/zabbix

&#216;添加可執行權限。

chmod +x /etc/init.d/zabbix_server
chmod +x /etc/init.d/zabbix_agentd


4.6.8 添加開機啓動服務

chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig --level 345 zabbix_server off
chkconfig --level 345 zabbix_agentd on

注意:zabbix_server屆時由heartbeat啓動。

使用 chkconfig --list 檢查一下:

chkconfig --list | grep zabbix


4.6.9 web相關配置

mkdir /var/www/html/zabbix
cp -a /root/zabbix-2.0.6/frontends/php/* /var/www/html/zabbix/
chown -R zabbix.zabbix /var/www/html/zabbix/

&#216;php配置文件作相應的調整(實際使用環境中可按需求更改,zabbix2.0.6運行的最低環境要求請參考下圖):

154625878.png

vim /etc/php.ini

修改:

max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = PRC

php.ini中的時區設置date.timezone = PRC

無心中發現 lnmp 默認的 php.ini 配置中有一行 date.timezone = PRC。PRC,People’s Republic of China,×××,也就是日期使用中國的時區。

date.timezone 是 PHP 5.1 中新增長的配置文件參數,默認 date.timezone 是被註釋掉的,也就是默認時區是 utc,lnmp 改成了 date.timezone = PRC,這樣能夠解決時間相差八小時的問題,看來 lnmp 的本土化工做作得不錯。不過貌似這個參數通常都設成 Asia/Shanghai吧?在 PHP 官方文檔上找了半天才找到 PRC 這個參數,它不在Asia這個分類中,而在Others,通常人都會在 Asia 裏面找吧。

搜索了一下 PHP 源碼,在 ext/date/lib/timezonemap.h 中看到以下代碼

{ "cst",   0,  28800, "Asia/Chongqing"                },

{ "cst",   0,  28800, "Asia/Chungking"                },

{ "cst",   0,  28800, "Asia/Harbin"                   },

{ "cst",   0,  28800, "Asia/Kashgar"                  },

{ "cst",   0,  28800, "Asia/Macao"                    },

{ "cst",   0,  28800, "Asia/Macau"                    },

{ "cst",   0,  28800, "Asia/Shanghai"                 },

{ "cst",   0,  28800, "Asia/Taipei"                   },

{ "cst",   0,  28800, "Asia/Urumqi"                   },

{ "cst",   0,  28800, "PRC"                           },

{ "cst",   0,  28800, "ROC"                           },

對PHP 源碼的時間部分沒有什麼研究,姑且認爲這幾個參數都表示 UTC+8 的東八區中國的北京時間吧。

固然,能夠在 PHP 代碼中調用 date_default_timezone_set 函數設置運行時的時區,這是常識,我就很少說了。

參考文獻:http://demon.tw/software/php-date-timezone.html

&#216;啓動zabbixserveragent

/etc/init.d/zabbix_agentd start
/etc/init.d/zabbix_server start


&#216;打開瀏覽器,輸入http://IP/zabbix/,就會出現WEB界面安裝嚮導,按嚮導提示完成zabbix安裝。

161737983.png

默認:Next

161750396.png

默認:Next

161803624.png

輸入Mysql數據庫端口:3306,用戶名:zabbix,密碼:123456

注意:

llocalhost改成VIP地址。

l此處是zabbix鏈接mysql數據庫時用到的用戶名和密碼,切勿混淆。

測試鏈接經過後→Next

161819941.png

默認:Next(實際使用環境中可按需求更改)

161837715.png

默認:Next

161851502.png

注意:若是出現提示文件zabbix.conf.php沒法建立,則是zabbix目錄沒法寫入,/var/www/html/zabbix的權限不爲apache.apache

解決方法一:點擊「Download configuration file」,將下載的zabbix.conf.php文件上傳到服務器的/var/www/html/zabbix/conf/zabbix.conf.php去而後點擊「Retry」就不會有Fail了。

解決方法二:輸入如下命令也可解決。

chown -R apache.apache /var/www/html/zabbix

161917106.png

點擊「Finish」完成安裝

161931756.png

輸入用戶名:admin,密碼:zabbix

161945730.png


4.7 解決zabbix圖中出現中文亂碼

&#216;設置zabbix的語言爲中文時,圖中的中文會變成方塊,以下圖所示:

161957774.png

這個問題是因爲zabbixweb端沒有中文字庫,須要把中文字庫加上便可。

1)windows系統中的c:\windows\fonts目錄中copy一個本身喜歡的字體文出來,如msyh.ttf(雅黑)

2)copy出來的字體上傳到zabbix server網站目錄中的fonts目錄下;

3)zabbix server網站目錄中的fonts目錄裏原來的「DejaVusSans.ttf」更名,例如爲「DejaVusSans.ttf.bak」;

cd /var/www/html/zabbix/fonts
mv DejaVuSans.ttf /var/www/html/zabbix/fonts/DejaVuSans.ttf.bak

4)將上傳上去的文件,例如「mysh.ttf」改成「DejaVusSans.ttf」;

mv msyh.ttf /var/www/html/zabbix/fonts/DejaVuSans.ttf

5)刷新頁面後會發現原來亂碼的地方OK了。

162013887.png


4.8 更改監控項類型

&#216;監控項(items)默認爲被動式,因雙主配置使用vipserver端發起的請求包沒法回到vip地址,故臨時可用主動式的方式解決此問題。

162038790.png


4.9 防火牆設置

&#216;ntp

iptables -A INPUT -p udp --sport 123 -j ACCEPT

&#216;apachemysql

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

&#216;zabbix server

iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
iptables -A INPUT -p udp --dport 10050 -j ACCEPT
iptables -A INPUT -p udp --dport 10051 -j ACCEPT


iptables -A INPUT -p tcp -s 客戶端IP -m multiport --dports 10050,10051 -j ACCEPT
iptables -A INPUT -p udp -s 客戶端IP -m multiport --dports 10050,10051 -j ACCEPT


5. mysql數據庫雙主同步配置說明

5.1 服務器ABip地址

服務器A10.1.1.1

服務器B10.1.1.2


5.2 備份zabbix

mysqldump -h localhost -u root -p123456 zabbix >zabbix.sql


5.3 分別在兩臺服務器上創建同步用戶

&#216;設置數據庫同步賬戶:

mysql -u root -p123456

服務器A

grant replication slave,file on *.* to 'tongbu'@'10.1.1.2' identified by 'tongbu';
flush privileges;

服務器B

grant replication slave,file on *.* to 'tongbu'@'10.1.1.1' identified by 'tongbu';
flush privileges;

&#216;查看已創建的同步帳戶:

use mysql;
select user,host from user;

162206541.png


5.4 修改服務器的數據庫配置文件/etc/my.cnf

&#216;服務器Amy.cnf配置:

注意:server-id默認爲1,通常主從同步中,主服務器server-id1,雙主同步原則上兩臺同步服務器server-id不一樣便可。

vi /etc/my.cnf

user=mysql後添加:

log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
server-id = 1
master-connect-retry=30
binlog-do-db=zabbix
replicate-do-db=zabbix
binlog-ignore-db=mysql
replicate-ignore-db=mysql
binlog-ignore-db=test
replicate-ignore-db=test
binlog-ignore-db=largedate
replicate-ignore-db=largedate
binlog-ignore-db=information_schema
replicate-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=performance_schema
log-slave-updates
slave-skip-errors=all

lserver-id = 1                                                         服務器ID

lmaster-connect-retry=30                                      斷點重試間隔爲30

lbinlog-do-db=zabbix                                             表示同步zabbix數據庫

lreplicate-do-db=zabbix                                         表示同步zabbix數據庫

lbinlog-ignore-db=mysql                                        不一樣步mysql數據庫

llog-slave-updates      

在從服務器上將複製過來的更新操做寫入二進制日誌,從而能夠獲得完整的二進制日誌,便於數據恢復和重現。

lslave-skip-errors=all

l跳過複製錯誤,該參數目前設置值爲all,即跳過全部複製錯誤,實際使用時也能夠縮小跳過錯誤的範圍。

備註:binlog-ignore-dbreplicate-ignore-db表示不須要同步的數據庫,能夠不設置(不設置時,mysql也只會同步binlog-do-db中設置的數據庫),可是爲了安全起見,建議設置該參數。yum安裝的mysql實際只須要不一樣步mysqltest庫便可,若是從官網下載rpm包安裝mysql5.5則不一樣。

注意:不少案例會將同步帳戶設置在此配置文件中,我的不建議這樣作。

&#216;服務器Bmy.cnf配置與服務器A同樣,只須要將server-id改成2

&#216;重啓服務器A和服務器Bmysql

/etc/init.d/mysqld restart


5.5 進入數據庫查看服務器AB做爲主服務器的狀態

&#216;服務器A:進入數據庫

mysql -u root -p123456

查看服務器A做爲主服務器的狀態:

show master status;

162220911.png

&#216;服務器B:進入數據庫

mysql -u root -p123456

查看服務器B做爲主服務器的狀態:

show master status;

162233226.png


5.6 分別在兩個服務器上設置並啓動slave

&#216;服務器A:進入數據庫設置slave參數,其中master_usermaster_password爲在服務器B上面設置的同步帳號的名稱和密碼;master_host爲服務器BIP地址;master_log_filemaster_log_pos爲服務器B中查看做爲主服務器狀態時顯示的FilePosition

change master to master_user='tongbu',
master_password='tongbu',
master_host='10.1.1.2',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=106;

&#216;啓動slave進程:

start slave;

&#216;服務器B上的slave設置與服務器A相同,只是change master命令中的master屬性均爲服務器A

&#216;查看slave狀態,其中Slave_IO_RunningSlave_SQL_Running均爲Yes即說明同步啓動成功。

show slave status\G;

162247584.png

&#216;在服務器B上查看slave進程,檢查其狀態,看到Slave_IO_RunningSlave_SQL_Running均爲Yes,至此雙主同步配置成功。在兩臺服務器的zabbix庫中任意添加數據,均可以同步到對端服務器上。

&#216;注意:

l若是出現Slave_IO_Running: No或啓動slave出現Could not initialize master info structure;的錯誤,分別在兩個服務器上從新設置並啓動slave

stop slave;
reset slave;

l若是出現Last_IO_Error: error connecting to master 'tongbu@10.1.1.2:3306' -retry-time: 30  retries: 86400的錯誤,請檢查防火牆配置。

&#216;mysql中可經過如下命令來查看主從狀態

l查看master狀態

show master status;

l查看slave狀態

show slave status;

l查看當前進程

show processlist G;

l中止slave進程

stop slave;

l開始slave進程

start slave;

l重置slave進程

reset slave;


6. 安裝heartbear&pacemaker

&#216;系統環境:CentOS5.6 32bit

注意:CentOS6.xRHEL6.x請使用cman&pacemaker的模式建立集羣。

6.1 概念組成及工做原理

6.1.1 heartbeat的概念

&#216;HeartbeatLinux-HA項目中的一個組件,也是目前開源HA項目中最成功的一個例子, Linux-HA的全稱是High-Availability Linux,這個開源項目的目標是:經過社區開發者的共同努力,提供一個加強linux可靠性(reliability)、可用性(availability)和可服務性(serviceability)(RAS)的羣集解決方案。

&#216;Heartbeat提供了全部 HA 軟件所須要的基本功能,好比心跳檢測和資源接管、監測羣集中的系統服務、在羣集中的節點間轉移共享 IP 地址的全部者等。

&#216;Linux-HA的官方網站: http://www.linux-ha.org

http://hg.linux-ha.org


6.1.2 HA集羣相關術語

1)節點(node

運行heartbeat進程的一個獨立主機,稱爲節點,節點是HA的核心組成部分,每一個節點上運行着操做系統和heartbeat軟件服務,在heartbeat集羣中,節點有主次之分,分別稱爲主節點和備用/備份節點,每一個節點擁有惟一的主機名,而且擁有屬於本身的一組資源,主節點上通常運行着一個或多個應用服務。而備用節點通常處於監控狀態。

2)資源(resource

資源是一個節點能夠控制的實體,而且當節點發生故障時,這些資源可以被其它節點接管,heartbeat中,能夠當作資源的實體有:

磁盤分區、文件系統、IP地址、應用程序服務、NFS文件系統

3)事件(event

也就是集羣中可能發生的事情,例如節點系統故障、網絡連通故障、網卡故障、應用程序故障等。這些事件都會致使節點的資源發生轉移,HA的測試也是基於這些事件來進行的。

4)動做(action

事件發生時HA的響應方式,動做是由shell腳步控制的,例如,當某個節點發生故障後,備份節點將經過事先設定好的執行腳本進行服務的關閉或啓動。進而接管故障節點的資源。


6.1.3 Heartbeat的組成

(1) Heartbeat的結構

   Heartbeat1.x和2.0.x版本的結構十分簡單,各個模塊都集中在heartbeat中,到了3.0版本後,整個heartbeat項目進行了拆分,分爲不一樣的項目來分別進行開發。

  Heartbeat2.0.x以前的版本具備的模塊:

&#61692;  heartbeat: 節點間通訊檢測模塊

&#61692;  ha-logd: 集羣事件日誌服務

&#61692;  CCM(Consensus ClusterMembership):集羣成員一致性管理模塊

&#61692;  LRM (Local ResourceManager):本地資源管理模塊

&#61692;  Stonith Daemon: 使出現問題的節點從集羣環境中脫離

&#61692;  CRM(Cluster resourcemanagement):集羣資源管理模塊

&#61692;  Cluster policy engine: 集羣策略引擎

&#61692;  Cluster transition engine:集羣轉移引擎

Heartbeat3.0拆分以後的組成部分:

   Heartbeat:將原來的消息通訊層獨立爲heartbeat項目,新的heartbeat只負責維護集羣各節點的信息以及它們以前通訊;

   Cluster Glue:至關於一箇中間層,它用來將heartbeat和pacemaker關聯起來,主要包含2個部分,即爲LRM和STONITH。

   Resource Agent:用來控制服務啓停,監控服務狀態的腳本集合,這些腳本將被LRM調用從而實現各類資源啓動、中止、監控等等。

   Pacemaker:也就是Cluster Resource Manager (簡稱CRM),用來管理整個HA的控制中心,客戶端經過pacemaker來配置管理監控整個集羣。

Pacemaker 提供了多種用戶管理接口,分別以下:

1)crm shell:基於字符的管理方式;

2)一個使用Ajax Web配置方式的web konsole窗口;

3)hb_gui ,即heartbeat的gui圖形配置工具,這也是原來2.1.x的默認GUI配置工具;

4)DRBD-MC,一個基於Java的配置管理工具。


(2) Pacemaker內部組成及與各模塊之間關係

162312360.png

(3) Heartbeat3.x內部組成及之間關係

162324641.png


(4) Heartbeat各個版本之間的異同

與1.x風格相比,Heartbeat2.1.x版本以後功能變化以下:

1)保留原有全部功能

如,網絡,heartbeat ,機器down時都可切換資源。

2)自動監控資源

默認狀況下每2分鐘檢測資源運行狀況,若是發現資源不在,則嘗試啓動資源,若是60s後還未啓動成功,則資源切換向另節點。時間能夠修改。

3)  能夠對各資源組實現獨立監控.

好比apache運行在node1上,tomcat運行在node2上,Heartbeat可同時實現兩臺主機的服務監控。

4)同時監控系統負載

能夠自動將資源切換到負載低的node上。

   Heartbeat官方最後一個STABLE release 2.x 版本是2.1.4,Heartbeat 3官方正式發佈的首個版本是3.0.2,Heartbeat 3與Heartbeat2.x的最大差異在於,Heartbeat3.x按模塊把的原來Heartbeat2.x拆分爲多個子項目,可是HA實現原理與Heartbeat2.x基本相同。配置也基本一致。

(5) Heartbeat集羣的通常拓撲圖

162337745.png

參考文獻:http://ixdba.blog.51cto.com/2895551/745228


6.2 安裝heartbeat

&#216;卸載rpmforge-release-0.5.3-1.el5.rf

rpm -e rpmforge-release-0.5.3-1.el5.rf

備註:清除rpmforge源後纔可安裝heartbeat,不然會有衝突。

&#216;安裝epel-release-5-4.noarch.rpm

rpm -ivh epel-release-5-4.noarch.rpm

&#216;導入key

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

&#216;添加Cluster Labs repo

wget -O /etc/yum.repos.d/pacemaker.repo http://clusterlabs.org/rpm/epel-5/clusterlabs.repo


&#216;清除yum緩存:

yum clean all

&#216;安裝heartbeat

yum install -y pacemaker corosync heartbeat


6.3 配置heartbeat

6.3.1 主配置文件(/etc/ha.d/ha.cf)

&#216;注意:heartbeat安裝後,3個配置文件默認存放在/usr/share/doc/heartbeat-3.0.3/目錄中,需將其拷貝至/etc/ha.d/目錄中。

cp /usr/share/doc/heartbeat-3.0.3/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-3.0.3/haresources /etc/ha.d/
cp /usr/share/doc/heartbeat-3.0.3/authkeys /etc/ha.d/

&#216;配置主配置文件:

vi /etc/ha.d/ha.cf

下面對ha.cf文件的每一個選項進行詳細介紹,其中「#」號後面的內容是對選項的註釋說明。

#debugfile /var/log/ha-debug

logfile /var/log/ha-log    #指名heartbeat的日誌存放位置。

#crm on                     #是否開啓ClusterResourceManager(集羣資源管理)功能。

bcast eth1                  #指明心跳方式使用以太廣播方式,而且是在eth1接口上進行廣播。

keepalive 2                 #指定心跳間隔時間爲2秒(即每兩秒鐘在eth1上發送一次廣播)。

deadtime30                 #指定備用節點在30秒內沒有收到主節點的心跳信號後,則當即接管主節點的服務資源。

warntime10                 #指定心跳延遲的時間爲十秒。當10秒鐘內備份節點不能接收到主節點的心跳信號時,就會往日誌中寫入一個警告日誌,但此時不會切換服務。

initdead120                #在某些系統上,系統啓動或重啓以後須要通過一段時間網絡才能正常工做,該選項用於解決這種狀況產生的時間間隔。取值至少爲deadtime的兩倍。

ucasteth0 192.168.8.73     #使用網卡eth0的udp單播來通知心跳

udpport 694                 #設置廣播通訊使用的端口,694爲默認使用的端口號。

baud 19200                  #設置串行通訊的波特率。

#serial/dev/ttyS0          #選擇串行通訊設備,用於雙機使用串口線鏈接的狀況。若是雙機使用以太網鏈接,則應該關閉該選項。

auto_failbackoff           #用來定義當主節點恢復後,是否將服務自動切回,heartbeat的兩臺主機分別爲主節點和備份節點。主節點在正常狀況下佔用資源並運行全部的服務,遇到故障時把資源交給備份節點並由備份節點運行服務。在該選項設爲on的狀況下,一旦主節點恢復運行,則自動獲取資源並取代備份節點,若是該選項設置爲off,那麼當主節點恢復後,將變爲備份節點,而原來的備份節點成爲主節點。

#stonith baytech /etc/ha.d/conf/stonith.baytech     # stonith的主要做用是使出現問題的節點從集羣環境中脫離,進而釋放集羣資源,避免兩個節點爭用一個資源的情形發生。保證共享數據的安全性和完整性。


#watchdog/dev/watchdog     #該選項是可選配置,是經過Heartbeat來監控系統的運行狀態。使用該特性,須要在內核中載入"softdog"內核模塊,用來生成實際的設備文件,若是系統中沒有這個內核模塊,就須要指定此模塊,從新編譯內核。編譯完成輸入"insmod softdog"加載該模塊。而後輸入"grepmisc /proc/devices"(應爲10),輸入"cat /proc/misc |grepwatchdog"(應爲130)。最後,生成設備文件:"mknod /dev/watchdog c10130" 。便可使用此功能。

node node1                  #主節點主機名,能夠經過命令「uanme -n」查看。

node node2                  #備用節點主機名。

ping192.168.8.1             #選擇ping的節點,ping 節點選擇的越好,HA集羣就越強壯,能夠選擇固定的路由器做爲ping節點,可是最好不要選擇集羣中的成員做爲ping節點,ping節點僅僅用來測試網絡鏈接。


respawnhacluster /usr/lib/heartbeat/ipfail    #該選項是可選配置,列出與heartbeat一塊兒啓動和關閉的進程,該進程通常是和heartbeat集成的插件,這些進程遇到故障能夠自動從新啓動。最經常使用的進程是ipfail,此進程用於檢測和處理網絡故障,須要配合ping語句指定的ping node來檢測網絡的連通性。其中hacluster表示啓動ipfail進程的身份。

檢查配置:

egrep -v '^$|^#' /etc/ha.d/ha.cf

162413214.png


6.3.2 資源文件(/etc/ha.d/haresources)

&#216;Haresources文件用於指定雙機系統的主節點、集羣IP、子網掩碼、廣播地址以及啓動的服務等集羣資源,文件每一行能夠包含一個或多個資源腳本名,資源之間使用空格隔開,參數之間使用兩個冒號隔開,在兩個HA節點上該文件必須徹底一致,此文件的通常格式爲:

node-name network <resource-group>

node-name表示主節點的主機名,必須和ha.cf文件中指定的節點名一致,network用於設定集羣的IP地址、子網掩碼、網絡設備標識等,須要注意的是,這裏指定的IP地址就是集羣對外服務的IP地址,resource-group用來指定須要heartbeat託管的服務,也就是這些服務能夠由heartbeat來啓動和關閉,若是要託管這些服務,必須將服務寫成能夠經過start/stop來啓動和關閉的腳本,而後放到/etc/init.d/或者/etc/ha.d/resource.d/目錄下,heartbeat會根據腳本的名稱自動去/etc/init.d或者/etc/ha.d/resource.d/目錄下找到相應腳本進行啓動或關閉操做。

&#216;下面對配置方法進行具體說明:

vi /etc/ha.d/haresources

末尾添加:

server01 IPaddr::192.168.8.89/24/eth0 httpd zabbix_server

其中,zabbixHA集羣的主節點,heartbeat首先將執行/etc/ha.d/resource.d/192.168.8.89/24 start的操做,也就是虛擬出一個子網掩碼爲255.255.255.0IP192.168.8.89的地址,此IPheartbeat對外提供服務的網絡地址,同時指定此IP使用的網絡接口爲eth0,接着啓動apachezabbix_server服務。

注意:主節點和備份節點中資源文件haresources要徹底同樣。


6.3.3 認證文件(/etc/ha.d/authkeys)

&#216;authkeys文件用於設定heartbeat的認證方式,共有三種可用的認證方式:crcmd5sha1,三種認證方式的安全性依次提升,可是佔用的系統資源也依次增長。若是heartbeat集羣運行在安全的網絡上,可使用crc方式,若是HA每一個節點的硬件配置很高,建議使用sha1,這種認證方式安全級別最高,若是是處於網絡安全和系統資源之間,可使用md5認證方式。這裏咱們使用crc認證方式,設置以下:

vi /etc/ha.d/authkeys

修改:

auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!

須要說明的一點是:不管auth後面指定的是什麼數字,在下一行必須做爲關鍵字再次出現,例如指定了「auth 1」,下面必定要有一行「1 認證類型」。

注意:最後確保這個文件的權限是600(即-rw-------),不然heartbeat將沒法啓動。

chmod 600 /etc/ha.d/authkeys


6.3.4 配置備用節點的heartbeat

&#216;在備用節點上也須要安裝heartbeat,安裝方式與在主節點安裝過程如出一轍。安裝完畢,在備用節點上使用scp命令把主節點配置文件傳輸到備份節點。

scp -r 192.168.8.73:/etc/ha.d/* /etc/ha.d/

注意:修改主配置文件ha.cf中的目標服務器爲ucast eth0192.168.8.74

vi /etc/ha.d/ha.cf

修改:

ucast eth0 192.168.8.74


6.4 啓動heartbeat

&#216;修改heartbeat目錄權限,能夠用如下命令:

find / -type d -name "heartbeat" -exec chown -R hacluster {} \;
find / -type d -name "heartbeat" -exec chgrp -R haclient {} \;

&#216;設置環境變量,增長在/etc/profile最後:

vi /etc/profile

添加:

export OCF_ROOT=/usr/lib/ocf

執行source命令:

source /etc/profile

&#216;啓動heartbeat

/etc/init.d/heartbeat start


6.5 配置crm

&#216;禁用stonith

crm configure property stonith-enabled=false

&#216;添加ClusterIPapachezabbix server

crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=192.168.8.89 cidr_netmask=24 op monitor interval="20s"
crm configure primitive WebSite lsb:httpd op start interval="0s" timeout="120s" op monitor interval="20s" timeout="20s" meta migration-threshold="1" failure-timeout="60s"
crm configure primitive Zabbix-HA lsb:zabbix_server op start interval="0s" timeout="120s" op monitor interval="20s" timeout="20s" meta migration-threshold="1" failure-timeout="60s"

備註:以上是採用lsb的方式來管理apache,即/etc/init.d/httpd啓動腳本。如需使用ocf來管理,則進行以下配置,開 Apachestatus URL

vi /etc/httpd/conf/httpd.conf

去除如下內容的註釋:

<Location /server-status>
   SetHandler server-status
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
</Location>

添加apache資源的命令則爲:

crm configure primitive WebSite ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=20s

&#216;忽略節點的法定人數策略:

crm configure property no-quorum-policy=ignore

&#216;,缺省爲0

crm configure rsc_defaults resource-stickiness=100

&#216;設置apachezabbix servervirtual ip爲一個group

crm configure group certusGroup ClusterIP WebSite Zabbix-HA

備註:certusGroup是自定義的組名idClusterIP WebSiteZabbix-HA則是要放到certusGroup組中的資源,這裏是有序的,三者依次執行。ClusterIP將優先於WebSiteZabbix-HA執行。

&#216;強制保證資源啓動中止順序:

crm configure order apache-after-ip mandatory: ClusterIP WebSite

&#216;添加新資源pingd:(ping 192.168.8.1,用於代替ipfail

crm configure primitive clusterPingd ocf:heartbeat:pingd params host_list=192.168.8.1 multiplier=100

&#216;添加pingdclone

crm configure clone clusterPingdclone clusterPingd meta globally-unique=false

&#216;ClusterIP綁定:(ClusterIP運行的節點必定要有pingd運行)

crm configure location my_app_on_connected_node ClusterIP rule -inf: not_defined pingd or pingd lte 0

&#216;查詢狀態:

162513918.png

&#216;驗證配置文件是否正確:

crm_verify -L -V

&#216;以上內容在二個節點作相同配置,若是配置錯誤能夠參考crm命令修改。也能夠中止heartbeat服務,刪除/var/lib/heartbeat/crm/目錄下的全部文件後從新配置:

/etc/init.d/heartbeat stop
rm -f /var/lib/heartbeat/crm/*
/etc/init.d/heartbeat start


官方參考文檔:

http://clusterlabs.org/doc/zh-CN/Pacemaker/1.1-crmsh/html/Clusters_from_Scratch/index.html


6.5.1 附錄1、crm經常使用命令參考

&#216;查詢crm狀態:

crm status

&#216;移動資源:

crm resource move

備註:server02上將資源從server01中移動過來。適合的場景:server01需下線維護等相似的狀況。

示例:

crm resource move WebSite server02

&#216;取消資源移動:

crm resource unmove WebSite

&#216;參考完整配置:

crm configure show

&#216;修改某個配置:

crm configure edit WebSite

&#216;啓動、中止資源:

crm resource start WebSite
crm resource stop WebSite

&#216;刪除資源:

crm configure delete WebSite

&#216;更多內容請使用help命令或參考官方文檔:

crm help


6.5.2 附錄2、安裝過程當中異常處理

&#216;crm configure show 可能報告出錯,需強制升級crm

cibadmin --upgrade --force


6.6 故障模擬

&#216;方案1

l經過命令中止server01網卡或者中止heartbeat

ifdown eth1

or

/etc/init.d/heartbeat stop

l觀察server02的系統日誌確認server01節點已經丟失:

162629278.png

lserver02接替並啓動相關應用:

162644433.png

l檢查server02crm的狀態:

162717351.png

lserver02已成功接替應用。

&#216;方案2:關閉server01服務器,略等幾秒,檢查server02crm的狀態。


6.7 防火牆設置

iptables -A INPUT -p udp --dport 694 -j ACCEPT


7. 安裝cman&pacemaker

&#216;系統環境:RHEL6.2 64bit

注意:CentOS5.xRHEL5.x請使用heartbeat&pacemaker的模式建立集羣。

7.1 簡介

&#216;參考了較多國內外文獻了解到,從CentOS6.xRHEL6.x起,yum安裝pacemaker的版本爲1.1.8或以上,且移除了crm(即crmsh,集羣資源管理)。pacemakerrhcs(紅帽的集羣系統)的組件MGmanager的資源和fence組件(resource & fencepackage)的管理合併到一塊兒去了。至於緣由,可參考官方申明:

Installing on RHEL-6

Pacemaker has been available as part of RHEL since 6.0 as part of the High Availability (HA) add-on.

While this is an important step, it has created somechallenges, because:

§Red Hat funds much of Pacemaker's development, so weprefer to make packages available via their official channels rather than thecommunity site

§Pacemaker is currently listed as Tech Preview (TP) andtherefor unsupported by Red Hat

§The HA add-on costs money

Why should I pay for something if I still wont besupported?

Valid question,but there are still plenty of other software (such as corosync openais, cman,and fencing agents) that is supported if you buy the add-on. You also get awarm fuzzy feeling for supporting continued Pacemaker development.

Even if the lackof support is a deal breaker, consider buying at least one copy of the add-on.You'll get software updates for the entire stack and it helps Red Hat gauge thedemand for Pacemaker - which could conceivably help it become supported sooner.


When Community Support is Enough

If you're reallynot interested in support, you have a number of options available:

1.    Install from the RHEL install media

2.    Install from the CentOS or Scientific Linuxrepos

3.    Download and rebuild the necessary SRPMsfrom the Red Hat FTP server

http://clusterlabs.org/wiki/Install#Binary_Packages

&#216;若是不習慣使用pcspacemaker進行管理,能夠從opensuse.org庫中下載到crmsh

wget -O /etc/yum.repos.d/ha-clustering.repo http://download.opensuse.org/repositories/network:/ha-clustering/RedHat_RHEL-6/network:ha-clustering.repo
yum install -y crmsh

參考此站點,能夠獲取更多crmsh的信息:

http://lists.linux-ha.org/pipermail/linux-ha-dev/2012-October/019626.html

&#216;若是不習慣cman&pacemaker的架構,能夠參考如下文獻實現heartbear&pacemaker的模式。

ülinux-ha heartbeat 搭建

http://space.itpub.net/133735/viewspace-731951

üCoroSync/Pacemaker on Centos 6

http://snozberry.org/blog/2012/05/02/corosync-slash-pacemaker-on-centos-6/

üHeartbeat3.x應用全攻略之:安裝、配置、維護

http://ixdba.blog.51cto.com/2895551/746271


7.2 安裝cman

&#216;安裝cman和相關依賴包:

yum install -y pacemaker cman ccs resource-agents pcs

備註:至此RHEL6.x已能夠刪除CentOS6

rm -f /etc/yum.repos.d/CentOS6-Base-163.repo

&#216;安裝crmsh(可選):

wget -O /etc/yum.repos.d/ha-clustering.repo http://download.opensuse.org/repositories/network:/ha-clustering/RedHat_RHEL-6/network:ha-clustering.repo
yum install -y crmsh
rm -f /etc/yum.repos.d/ha-clustering.repo

注意:network:ha-clustering源中pacemaker和相關依賴包的版本爲1.1.9,因時間關係未作詳細測試,故此步驟不可執行在「安裝cman和相關依賴包」以前。


7.3 配置cman

&#216;建立集羣名稱和節點:

ccs -f /etc/cluster/cluster.conf --createcluster certusnet

注意:名稱能夠自定義,但不能超過15個字符。此例中使用的名稱爲certusnet

ccs -f /etc/cluster/cluster.conf --addnode server01
ccs -f /etc/cluster/cluster.conf --addnode server02

&#216;驗證配置文件是否正確:

ccs_config_validate -f /etc/cluster/cluster.conf

&#216;teach CMAN how to send it's fencing requests to Pacemaker.(不知道如何翻譯會比較合適,就引用原文吧)

ccs -f /etc/cluster/cluster.conf --addfencedev pcmk agent=fence_pcmk
ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect server01
ccs -f /etc/cluster/cluster.conf --addmethod pcmk-redirect server02
ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk server01 pcmk-redirect port=server01
ccs -f /etc/cluster/cluster.conf --addfenceinst pcmk server02 pcmk-redirect port=server02

&#216;拷貝配置文件至server02節點:

scp /etc/cluster/cluster.conf server02:/etc/cluster/

備註:若是配置錯誤或者更改,能夠中止cman服務並在各節點刪除主配置文件/etc/cluster/cluster.conf後從新配置。

/etc/init.d/cman stop
rm -f /etc/cluster/cluster.conf
/etc/init.d/cman start


7.4 啓動集羣

&#216;配置集羣不須要法定人數能夠開啓:

echo "CMAN_QUORUM_TIMEOUT=0" >> /etc/sysconfig/cman

&#216;修改/etc/hosts不然集羣將沒法啓動:

vi /etc/hosts

註銷如下內容:

127.0.0.1      localhost.localdomain   localhost.localdomain   localhost4      localhost4.localdomain4 localhost       server02
::1    localhost.localdomain   localhost.localdomain   localhost6      localhost6.localdomain6 localhost       server02

&#216;配置cmanpacemaker隨系統啓動:

chkconfig cman on
chkconfig pacemaker on

&#216;啓動cmanpacemaker

/etc/init.d/cman start
/etc/init.d/pacemaker start


7.5 配置pcs

&#216;禁用stonith

pcs property set stonith-enabled=false

&#216;添加ClusterIPapachezabbix server

pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=192.168.8.89 cidr_netmask=24 op monitor interval=20s
pcs resource create WebSite lsb:httpd op monitor interval=20s
pcs resource create Zabbix-HA lsb:zabbix_server op monitor interval=20s

備註:以上是採用lsb的方式來管理apache,即/etc/init.d/httpd啓動腳本。如需使用ocf來管理,則進行以下配置,開 Apachestatus URL

vi /etc/httpd/conf/httpd.conf

162920895.png

在以上內容後追加:

<Location /server-status>
   SetHandler server-status
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
</Location>

添加apache資源的命令則爲:

pcs resource create WebSite ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=20s

&#216;忽略節點的法定人數策略:

pcs property set no-quorum-policy=ignore

&#216;設置apachezabbix servervirtual ip爲一個group

pcs resource group add certusGroup ClusterIP WebSite Zabbix-HA

備註:certusGroup是自定義的組名idClusterIP WebSiteZabbix-HA則是要放到certusGroup組中的資源,這裏是有序的,三者依次執行。ClusterIP將優先於WebSiteZabbix-HA執行。

&#216;強制保證資源啓動中止順序:

pcs constraint order ClusterIP then WebSite

&#216;,缺省爲0

pcs resource rsc defaults resource-stickiness=100

&#216;查詢狀態:

pcs status

162939136.png

&#216;驗證配置文件是否正確:

crm_verify -L -V

&#216;以上內容只須要在一個節點進行配置,若是配置錯誤能夠參考pcs命令修改。也能夠中止pacemaker服務,刪除/var/lib/pacemaker/cib/目錄下的全部文件後從新配置:

/etc/init.d/pacemaker stop
rm -f /var/lib/pacemaker/cib/*
/etc/init.d/pacemaker start


官方參考文檔:

http://clusterlabs.org/quickstart-redhat.html

http://clusterlabs.org/doc/zh-CN/Pacemaker/1.1-pcs/html/Clusters_from_Scratch/index.html


7.5.1 附錄1、pcs經常使用命令參考

&#216;查詢 crm 狀態:

pcs status

&#216;移動資源:

pcs resource move

備註:server02 上將資源從server01 中移動過來。適合的場景:server01 需下線維護等相似的狀況。

示例:

pcs resource move WebSite server02

&#216;取消資源移動:

pcs resource unmove WebSite

&#216;參考完整配置:

pcs config

&#216;修改某個配置:

pcs resource update WebSite

&#216;啓動、中止資源:

pcs resource start WebSite
pcs resource stop WebSite

&#216;刪除資源:

pcs resource delete WebSite

&#216;更多內容請使用 help 命令或參考官方文檔:

pcs help


7.6 故障模擬

&#216;方案1

l經過命令中止server01網卡或者中止pacemakercman服務:

ifdown eth0

or

/etc/init.d/pacemaker stop
/etc/init.d/cman stop

l觀察server02的系統日誌確認server01節點已經丟失:

163009531.png

lserver02接替並啓動相關應用:

163028938.png

l檢查server02pcs的狀態:

163042681.png

lserver02已成功接替應用。

&#216;方案2:關閉server01服務器,略等幾秒,檢查server02pcs的狀態。


7.7 防火牆設置

iptables -A INPUT -p udp --dport 5404 -j ACCEPT
iptables -A INPUT -p udp --dport 5405 -j ACCEPT


8. 防火牆設置

&#216;清除全部規則:

iptables -F

&#216;接納屬於現存及相關鏈接的壓縮:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

&#216;設置INPUTFORWARD、及OUTPUT鏈的缺省策略:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

&#216;設置localhost的訪問權:

iptables -A INPUT -i lo -j ACCEPT

&#216;traceroute探測解決:

iptables -A INPUT -p icmp --icmp-type 11 -j DROP

&#216;ICMP timestamp請求響應漏洞解決:

iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP

&#216;容許ping

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT

&#216;ssh端口:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

&#216;dns

iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

&#216;heartbeat

iptables -A INPUT -p udp --dport 694 -j ACCEPT

備註:此爲heartbeat的健康檢查通信端口,cman不用添加

&#216;ntp

iptables -A INPUT -p udp --sport 123 -j ACCEPT

&#216;apache

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

&#216;mysql

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

&#216;cman

iptables -A INPUT -p udp --dport 5404 -j ACCEPT
iptables -A INPUT -p udp --dport 5405 -j ACCEPT

備註:此爲cman的健康檢查通信端口,heartbeat不用添加

&#216;zabbix server

iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
iptables -A INPUT -p udp --dport 10050 -j ACCEPT
iptables -A INPUT -p udp --dport 10051 -j ACCEPT

&#216;保存防火牆設置:

/etc/init.d/iptables save


9. 腳本安裝和卸載zabbix

9.1 腳本安裝zabbix server

說明:

&#216;腳本執行前請根據實際環境修改變量;

&#216;zabbix_install目錄及目錄中epel-release-5-4.noarch.rpmepel-release-6-8.noarch.rpmmsyh.ttfzabbix_server_install(ha).sh一併上傳至主備節點服務器的/root目錄中;

163109635.png

&#216;腳本執行過程當中會自動判斷操做系統版本是RHEL5.x6.xCentOS5.x6.x、主/備服務器、以及是32位或是64位系統,並安裝相應的軟件包和修改配置。

&#216;腳本安裝完畢後打開瀏覽器,輸入http://IP/zabbix/,就會出現WEB界面安裝嚮導,按嚮導提示完成zabbix安裝。請參考4.6.9節中截圖的相關內容。注意:在節點1完成配置後進行一次主備替換在節點2完成相同配置

腳本下載地址:http://down.51cto.com/data/834358


9.2 腳本卸載zabbix server

   腳本下載地址:http://down.51cto.com/data/834358


因篇幅關係,後篇的連接爲:

http://lan2003.blog.51cto.com/252098/1221314

zabbix 安裝使用手冊(HA)-2

全文下載地址:http://down.51cto.com/data/834358

相關文章
相關標籤/搜索