Server:php
zabbix server需運行在LAMP(Linux+Apache+Mysql+PHP)環境下,對硬件要求低。html
Agent:java
目前已有的agent基本支持市面常見的OS,包含Linux、HPUX、Solaris、Sun、windows。node
SNMP:mysql
支持各種常見的網絡設備。linux
具有常見的商業監控軟件所具有的功能(主機的性能監控、網絡設備性能監控、數據庫性能監控、FTP等通用協議監控、多種告警方式、詳細的報表圖表繪製)web
支持自動發現網絡設備和服務器,支持分佈式,能集中展現、管理分佈式的監控點,擴展性強,server提供通用接口,能夠本身開發完善各種監控sql
優勢:shell
Ø開源,無軟件成本投入數據庫
ØServer對設備性能要求低
Ø支持設備多
Ø支持分佈式集中管理
Ø開放式接口,擴展性強
缺點:
Ø出現問題如需原廠支持需支付費用
Ø需在被監控主機上安裝agent
Server:指安裝zabbix服務的服務器(如下簡稱服務器端),是最重要的部份,主要安裝在linux系統上(支持多種操做系統),採用mysql存儲監控數據並使用apache+php的方式呈現。
Agent:指安裝在被監控設備上的zabbix代理(如下簡稱代理),被監控設備上的數據由代理收集後統一上傳到服務器端由服務器端收集、整理並呈現。
SNMP:也是agent的一種,指支持SNMP協議的設備(也能夠是服務器),經過設定SNMP的參數將相關監控數據傳送至服務器端(大部份的交換機、防火牆等網絡設備都支持SNMP協議)。
IPMI:Agent的另外一種方式,主要應用於設備的物理性能監控,例如設備的溫度、風扇的轉速等。
zabbix支持多種網絡方式下的監控,可經過分佈式的方式部署和安裝監控代理,整個架構如圖所示。
Ø系統環境:CentOS5.6 32bit、RHEL6.2 64bit
Ø每一個節點服務器都有兩塊網卡,一塊用做鏈接公用網絡,另外一塊經過以太網交叉線鏈接兩個節點,做爲心跳監控,網絡以及IP地址規劃如表所示:
節點類型 |
IP地址規劃 |
主機名 |
類型 |
主用節點 |
eth0:192.168.8.73/24 |
server01 |
Public IP |
eth1:10.1.1.1/24 |
private01 |
private IP |
|
eth0:0:192.168.8.89 |
無 |
Virtual IP |
|
備用節點 |
eth0:192.168.8.74/24 |
server02 |
Public IP |
eth1:10.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
Ø系統拓撲:
Øzabbix版本:2.0.6
Ø同步授時中心的時間,強制把系統時間寫入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
查詢一下用戶root的cron的配置狀況:
crontab -u root -l
Ø注意:linux下防火牆規則若是極嚴格的話可能會影響 ntpd 對時,打開 sport 123 便可(假設 OUTPUT鏈全 ACCEPT):
iptables -A INPUT -p udp --sport 123 -j ACCEPT
Ø中止NetworkManager服務,這樣網卡就不受NetworkManage的控制。
/etc/init.d/NetworkManager stop chkconfig NetworkManager off
Ø安裝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.0,epel源的版本爲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啓動。
Ø使用安裝光盤創建本地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
Ø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啓動。
setenforce 0
修改/etc/selinux/config文件中設置SELINUX=disabled
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
備註:
設置SELinux 成爲enforcing模式
setenforce 1
設置SELinux 成爲permissive模式
setenforce 0
/usr/sbin/groupadd zabbix /usr/sbin/useradd -g zabbix zabbix
Ø下載解壓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-devel,yum安裝該軟件包,解決該問題。
解決辦法二:
在配置時,咱們加上了--with-net-snmp這個選項,所以須要檢查系統環境是否有該軟件包支持。所以,在配置時,不要加上--with-net-snmp這個選項即不會報以下錯誤configure:error: Invalid NET-SNMP directory - unable to find net-snmp-config。
參考文獻:zabbix中文文檔http://www.linuxmr.com/zabbix2/
Ø開啓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 server和mysql server還在同一臺物理機中。
注意:本例爲heartbeat的VIP地址。(請按實際環境設置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
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/
Ø修改zabbix_server.conf配置文件數據庫(mysql)相關部分:
vim /usr/local/zabbix/etc/zabbix_server.conf
修改如下內容:
DBUser=zabbix DBPassword=123456
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
chown -R zabbix.zabbix /usr/local/zabbix/
Ø爲 zabbix 命令行操做文件作連接,方便系統能夠找獲得。
ln -s /usr/local/zabbix/bin/* /usr/bin/ ln -s /usr/local/zabbix/sbin/* /usr/sbin/
Ø拷貝zabbix啓動腳本到/etc/init.d/下。
cp /root/zabbix-2.0.6/misc/init.d/fedora/core/zabbix_* /etc/init.d/
Ø修改zabbix啓動腳本中程序目錄的位置。
vim /etc/init.d/zabbix_server
修改:
BASEDIR=/usr/local/zabbix vim /etc/init.d/zabbix_agentd
修改:
BASEDIR=/usr/local/zabbix
Ø添加可執行權限。
chmod +x /etc/init.d/zabbix_server chmod +x /etc/init.d/zabbix_agentd
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
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/
Ø對php配置文件作相應的調整(實際使用環境中可按需求更改,zabbix2.0.6運行的最低環境要求請參考下圖):
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
Ø啓動zabbixserver和agent。
/etc/init.d/zabbix_agentd start /etc/init.d/zabbix_server start
Ø打開瀏覽器,輸入http://IP/zabbix/,就會出現WEB界面安裝嚮導,按嚮導提示完成zabbix安裝。
默認:Next
默認:Next
輸入Mysql數據庫端口:3306,用戶名:zabbix,密碼:123456
注意:
l將localhost改成VIP地址。
l此處是zabbix鏈接mysql數據庫時用到的用戶名和密碼,切勿混淆。
測試鏈接經過後→Next
默認:Next(實際使用環境中可按需求更改)
默認:Next
注意:若是出現提示文件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
點擊「Finish」完成安裝
輸入用戶名:admin,密碼:zabbix
Ø設置zabbix的語言爲中文時,圖中的中文會變成方塊,以下圖所示:
這個問題是因爲zabbix的web端沒有中文字庫,須要把中文字庫加上便可。
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了。
Ø監控項(items)默認爲被動式,因雙主配置使用vip,server端發起的請求包沒法回到vip地址,故臨時可用主動式的方式解決此問題。
Øntp:
iptables -A INPUT -p udp --sport 123 -j ACCEPT
Øapache和mysql:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Ø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
服務器A:10.1.1.1
服務器B:10.1.1.2
mysqldump -h localhost -u root -p123456 zabbix >zabbix.sql
Ø設置數據庫同步賬戶:
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;
Ø查看已創建的同步帳戶:
use mysql; select user,host from user;
Ø服務器A的my.cnf配置:
注意:server-id默認爲1,通常主從同步中,主服務器server-id爲1,雙主同步原則上兩臺同步服務器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-db和replicate-ignore-db表示不須要同步的數據庫,能夠不設置(不設置時,mysql也只會同步binlog-do-db中設置的數據庫),可是爲了安全起見,建議設置該參數。yum安裝的mysql實際只須要不一樣步mysql和test庫便可,若是從官網下載rpm包安裝mysql5.5則不一樣。
注意:不少案例會將同步帳戶設置在此配置文件中,我的不建議這樣作。
Ø服務器B的my.cnf配置與服務器A同樣,只須要將server-id改成2。
Ø重啓服務器A和服務器B的mysql:
/etc/init.d/mysqld restart
Ø服務器A:進入數據庫
mysql -u root -p123456
查看服務器A做爲主服務器的狀態:
show master status;
Ø服務器B:進入數據庫
mysql -u root -p123456
查看服務器B做爲主服務器的狀態:
show master status;
Ø服務器A:進入數據庫設置slave參數,其中master_user和master_password爲在服務器B上面設置的同步帳號的名稱和密碼;master_host爲服務器B的IP地址;master_log_file和master_log_pos爲服務器B中查看做爲主服務器狀態時顯示的File和Position;
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;
Ø啓動slave進程:
start slave;
Ø服務器B上的slave設置與服務器A相同,只是change master命令中的master屬性均爲服務器A。
Ø查看slave狀態,其中Slave_IO_Running和Slave_SQL_Running均爲Yes即說明同步啓動成功。
show slave status\G;
Ø在服務器B上查看slave進程,檢查其狀態,看到Slave_IO_Running和Slave_SQL_Running均爲Yes,至此雙主同步配置成功。在兩臺服務器的zabbix庫中任意添加數據,均可以同步到對端服務器上。
Ø注意:
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的錯誤,請檢查防火牆配置。
Ø在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;
Ø系統環境:CentOS5.6 32bit
注意:CentOS6.x和RHEL6.x請使用cman&pacemaker的模式建立集羣。
ØHeartbeat是Linux-HA項目中的一個組件,也是目前開源HA項目中最成功的一個例子, Linux-HA的全稱是High-Availability Linux,這個開源項目的目標是:經過社區開發者的共同努力,提供一個加強linux可靠性(reliability)、可用性(availability)和可服務性(serviceability)(RAS)的羣集解決方案。
ØHeartbeat提供了全部 HA 軟件所須要的基本功能,好比心跳檢測和資源接管、監測羣集中的系統服務、在羣集中的節點間轉移共享 IP 地址的全部者等。
ØLinux-HA的官方網站: http://www.linux-ha.org
(1)節點(node)
運行heartbeat進程的一個獨立主機,稱爲節點,節點是HA的核心組成部分,每一個節點上運行着操做系統和heartbeat軟件服務,在heartbeat集羣中,節點有主次之分,分別稱爲主節點和備用/備份節點,每一個節點擁有惟一的主機名,而且擁有屬於本身的一組資源,主節點上通常運行着一個或多個應用服務。而備用節點通常處於監控狀態。
(2)資源(resource)
資源是一個節點能夠控制的實體,而且當節點發生故障時,這些資源可以被其它節點接管,heartbeat中,能夠當作資源的實體有:
磁盤分區、文件系統、IP地址、應用程序服務、NFS文件系統
(3)事件(event)
也就是集羣中可能發生的事情,例如節點系統故障、網絡連通故障、網卡故障、應用程序故障等。這些事件都會致使節點的資源發生轉移,HA的測試也是基於這些事件來進行的。
(4)動做(action)
事件發生時HA的響應方式,動做是由shell腳步控制的,例如,當某個節點發生故障後,備份節點將經過事先設定好的執行腳本進行服務的關閉或啓動。進而接管故障節點的資源。
(1) Heartbeat的結構
Heartbeat1.x和2.0.x版本的結構十分簡單,各個模塊都集中在heartbeat中,到了3.0版本後,整個heartbeat項目進行了拆分,分爲不一樣的項目來分別進行開發。
Heartbeat2.0.x以前的版本具備的模塊:
 heartbeat: 節點間通訊檢測模塊
 ha-logd: 集羣事件日誌服務
 CCM(Consensus ClusterMembership):集羣成員一致性管理模塊
 LRM (Local ResourceManager):本地資源管理模塊
 Stonith Daemon: 使出現問題的節點從集羣環境中脫離
 CRM(Cluster resourcemanagement):集羣資源管理模塊
 Cluster policy engine: 集羣策略引擎
 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內部組成及與各模塊之間關係
(3) Heartbeat3.x內部組成及之間關係
(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集羣的通常拓撲圖
參考文獻:http://ixdba.blog.51cto.com/2895551/745228
Ø卸載rpmforge-release-0.5.3-1.el5.rf
rpm -e rpmforge-release-0.5.3-1.el5.rf
備註:清除rpmforge源後纔可安裝heartbeat,不然會有衝突。
Ø安裝epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm
Ø導入key:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Ø添加Cluster Labs repo:
wget -O /etc/yum.repos.d/pacemaker.repo http://clusterlabs.org/rpm/epel-5/clusterlabs.repo
Ø清除yum緩存:
yum clean all
Ø安裝heartbeat:
yum install -y pacemaker corosync heartbeat
Ø注意: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/
Ø配置主配置文件:
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
Ø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/目錄下找到相應腳本進行啓動或關閉操做。
Ø下面對配置方法進行具體說明:
vi /etc/ha.d/haresources
末尾添加:
server01 IPaddr::192.168.8.89/24/eth0 httpd zabbix_server
其中,zabbix是HA集羣的主節點,heartbeat首先將執行/etc/ha.d/resource.d/192.168.8.89/24 start的操做,也就是虛擬出一個子網掩碼爲255.255.255.0,IP爲192.168.8.89的地址,此IP爲heartbeat對外提供服務的網絡地址,同時指定此IP使用的網絡接口爲eth0,接着啓動apache和zabbix_server服務。
注意:主節點和備份節點中資源文件haresources要徹底同樣。
Øauthkeys文件用於設定heartbeat的認證方式,共有三種可用的認證方式:crc、md5和sha1,三種認證方式的安全性依次提升,可是佔用的系統資源也依次增長。若是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
Ø在備用節點上也須要安裝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
Ø修改heartbeat目錄權限,能夠用如下命令:
find / -type d -name "heartbeat" -exec chown -R hacluster {} \; find / -type d -name "heartbeat" -exec chgrp -R haclient {} \;
Ø設置環境變量,增長在/etc/profile最後:
vi /etc/profile
添加:
export OCF_ROOT=/usr/lib/ocf
執行source命令:
source /etc/profile
Ø啓動heartbeat:
/etc/init.d/heartbeat start
Ø禁用stonith:
crm configure property stonith-enabled=false
Ø添加ClusterIP、apache和zabbix 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
Ø忽略節點的法定人數策略:
crm configure property no-quorum-policy=ignore
Ø防止資源在節點恢復後移動,缺省爲0:
crm configure rsc_defaults resource-stickiness=100
Ø設置apache,zabbix server,virtual ip爲一個group:
crm configure group certusGroup ClusterIP WebSite Zabbix-HA
備註:certusGroup是自定義的組名id,ClusterIP WebSiteZabbix-HA則是要放到certusGroup組中的資源,這裏是有序的,三者依次執行。ClusterIP將優先於WebSiteZabbix-HA執行。
Ø強制保證資源啓動中止順序:
crm configure order apache-after-ip mandatory: ClusterIP WebSite
Ø添加新資源pingd:(ping 192.168.8.1,用於代替ipfail)
crm configure primitive clusterPingd ocf:heartbeat:pingd params host_list=192.168.8.1 multiplier=100
Ø添加pingd的clone:
crm configure clone clusterPingdclone clusterPingd meta globally-unique=false
Ø與ClusterIP綁定:(ClusterIP運行的節點必定要有pingd運行)
crm configure location my_app_on_connected_node ClusterIP rule -inf: not_defined pingd or pingd lte 0
Ø查詢狀態:
Ø驗證配置文件是否正確:
crm_verify -L -V
Ø以上內容在二個節點作相同配置,若是配置錯誤能夠參考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
Ø查詢crm狀態:
crm status
Ø移動資源:
crm resource move
備註:在server02上將資源從server01中移動過來。適合的場景:server01需下線維護等相似的狀況。
示例:
crm resource move WebSite server02
Ø取消資源移動:
crm resource unmove WebSite
Ø參考完整配置:
crm configure show
Ø修改某個配置:
crm configure edit WebSite
Ø啓動、中止資源:
crm resource start WebSite crm resource stop WebSite
Ø刪除資源:
crm configure delete WebSite
Ø更多內容請使用help命令或參考官方文檔:
crm help
Øcrm configure show 可能報告出錯,需強制升級crm。
cibadmin --upgrade --force
Ø方案1:
l經過命令中止server01網卡或者中止heartbeat
ifdown eth1
or:
/etc/init.d/heartbeat stop
l觀察server02的系統日誌確認server01節點已經丟失:
lserver02接替並啓動相關應用:
l檢查server02上crm的狀態:
lserver02已成功接替應用。
Ø方案2:關閉server01服務器,略等幾秒,檢查server02上crm的狀態。
iptables -A INPUT -p udp --dport 694 -j ACCEPT
Ø系統環境:RHEL6.2 64bit
注意:CentOS5.x和RHEL5.x請使用heartbeat&pacemaker的模式建立集羣。
Ø參考了較多國內外文獻了解到,從CentOS6.x和RHEL6.x起,yum安裝pacemaker的版本爲1.1.8或以上,且移除了crm(即crmsh,集羣資源管理)。pacemaker與rhcs(紅帽的集羣系統)的組件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
Ø若是不習慣使用pcs對pacemaker進行管理,能夠從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
Ø若是不習慣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
Ø安裝cman和相關依賴包:
yum install -y pacemaker cman ccs resource-agents pcs
備註:至此RHEL6.x已能夠刪除CentOS6源
rm -f /etc/yum.repos.d/CentOS6-Base-163.repo
Ø安裝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和相關依賴包」以前。
Ø建立集羣名稱和節點:
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
Ø驗證配置文件是否正確:
ccs_config_validate -f /etc/cluster/cluster.conf
Ø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
Ø拷貝配置文件至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
Ø配置集羣不須要法定人數能夠開啓:
echo "CMAN_QUORUM_TIMEOUT=0" >> /etc/sysconfig/cman
Ø修改/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
Ø配置cman和pacemaker隨系統啓動:
chkconfig cman on chkconfig pacemaker on
Ø啓動cman和pacemaker:
/etc/init.d/cman start /etc/init.d/pacemaker start
Ø禁用stonith:
pcs property set stonith-enabled=false
Ø添加ClusterIP、apache和zabbix 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
在以上內容後追加:
<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
Ø忽略節點的法定人數策略:
pcs property set no-quorum-policy=ignore
Ø設置apache,zabbix server,virtual ip爲一個group:
pcs resource group add certusGroup ClusterIP WebSite Zabbix-HA
備註:certusGroup是自定義的組名id,ClusterIP WebSiteZabbix-HA則是要放到certusGroup組中的資源,這裏是有序的,三者依次執行。ClusterIP將優先於WebSiteZabbix-HA執行。
Ø強制保證資源啓動中止順序:
pcs constraint order ClusterIP then WebSite
Ø防止資源在節點恢復後移動,缺省爲0:
pcs resource rsc defaults resource-stickiness=100
Ø查詢狀態:
pcs status
Ø驗證配置文件是否正確:
crm_verify -L -V
Ø以上內容只須要在一個節點進行配置,若是配置錯誤能夠參考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
Ø查詢 crm 狀態:
pcs status
Ø移動資源:
pcs resource move
備註:在server02 上將資源從server01 中移動過來。適合的場景:server01 需下線維護等相似的狀況。
示例:
pcs resource move WebSite server02
Ø取消資源移動:
pcs resource unmove WebSite
Ø參考完整配置:
pcs config
Ø修改某個配置:
pcs resource update WebSite
Ø啓動、中止資源:
pcs resource start WebSite pcs resource stop WebSite
Ø刪除資源:
pcs resource delete WebSite
Ø更多內容請使用 help 命令或參考官方文檔:
pcs help
Ø方案1:
l經過命令中止server01網卡或者中止pacemaker和cman服務:
ifdown eth0
or:
/etc/init.d/pacemaker stop /etc/init.d/cman stop
l觀察server02的系統日誌確認server01節點已經丟失:
lserver02接替並啓動相關應用:
l檢查server02上pcs的狀態:
lserver02已成功接替應用。
Ø方案2:關閉server01服務器,略等幾秒,檢查server02上pcs的狀態。
iptables -A INPUT -p udp --dport 5404 -j ACCEPT iptables -A INPUT -p udp --dport 5405 -j ACCEPT
Ø清除全部規則:
iptables -F
Ø接納屬於現存及相關鏈接的壓縮:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Ø設置INPUT、FORWARD、及OUTPUT鏈的缺省策略:
iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT
Ø設置localhost的訪問權:
iptables -A INPUT -i lo -j ACCEPT
Øtraceroute探測解決:
iptables -A INPUT -p icmp --icmp-type 11 -j DROP
ØICMP timestamp請求響應漏洞解決:
iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP
Ø容許ping:
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
Øssh端口:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Ødns:
iptables -A INPUT -p tcp --sport 53 -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT
Øheartbeat:
iptables -A INPUT -p udp --dport 694 -j ACCEPT
備註:此爲heartbeat的健康檢查通信端口,cman不用添加
Øntp:
iptables -A INPUT -p udp --sport 123 -j ACCEPT
Øapache:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Ømysql:
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Øcman:
iptables -A INPUT -p udp --dport 5404 -j ACCEPT iptables -A INPUT -p udp --dport 5405 -j ACCEPT
備註:此爲cman的健康檢查通信端口,heartbeat不用添加
Ø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
Ø保存防火牆設置:
/etc/init.d/iptables save
說明:
Ø腳本執行前請根據實際環境修改變量;
Ø將zabbix_install目錄及目錄中epel-release-5-4.noarch.rpm、epel-release-6-8.noarch.rpm、msyh.ttf和zabbix_server_install(ha).sh一併上傳至主備節點服務器的/root目錄中;
Ø腳本執行過程當中會自動判斷操做系統版本是RHEL5.x或6.x、CentOS5.x或6.x、主/備服務器、以及是32位或是64位系統,並安裝相應的軟件包和修改配置。
Ø腳本安裝完畢後打開瀏覽器,輸入http://IP/zabbix/,就會出現WEB界面安裝嚮導,按嚮導提示完成zabbix安裝。請參考4.6.9節中截圖的相關內容。注意:在節點1完成配置後進行一次主備替換在節點2完成相同配置
腳本下載地址:http://down.51cto.com/data/834358
腳本下載地址:http://down.51cto.com/data/834358
因篇幅關係,後篇的連接爲:
http://lan2003.blog.51cto.com/252098/1221314
zabbix 安裝使用手冊(HA)-2