zabbix 2.2部署手冊

經過生產實踐,我把zabbix手冊整理了一下,希望對一些新人有幫助。

Ubuntu下zabbix 2.2部署
1. 安裝基礎環境
1) LAMP
sudo apt-get update
sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql 
2) 基礎庫軟件
 支持庫文件
sudo aptitude install make snmp libghc-hsql-mysql-dev  minicom libcurl4-openssl-dev fping gcc libcurl-dev libcurl4-openssl-dev libcurl4-nss-dev libcurl4-gnutls-dev libsnmp-dev  libxml2-dev unixODBC-dev openipmi libopenipmi-dev libssh2-1-dev
 iksemel
cd /tmp
tar zvxf iksemel-1.4.tar.gz
sudo mkdir /usr/local/iksemel -p
sudo chmod 777 iksemel -R
cd iksemel-1.4
./configure --prefix=/usr/local/iksemel
make && make install
 java gateway
jdk安裝
./jdk-6u24-linux-x64.bin mv到/usr/local/
Vim /etc/profile
增加:
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export ClASSPATH=.:$JAVA_HOME/jre/lib/rt.jar
變更javac
sudo ln -s /usr/local/jdk/jre/lib/amd64/jli/libjli.so /lib64
sudo ln -s /usr/local/jdk/lib/tools.jar /lib/
sudo ln -s  /usr/local/jdk/jre /jre
sudo ln  -s /usr/local/jdk/bin/javac /bin
sudo ln  -s /usr/local/jdk/bin/jar /bin
3) 離線安裝基礎環境
在一臺可以上網的電腦上執行上述安裝,將所有的軟件安裝,默認軟件下載在/var/cache/apt/archives,進行打包
tar -zcvf  ~/var_apt.tar.gz /var/cache/apt
複製到安裝服務器上進行解包
tar -zcvf  var_apt.tar.gz–C /
安裝archives下的所有軟件包
sudo dpkg -i *.deb
4) Fping配置變更
以root運行
sudo  cp /usr/bin/fping /usr/sbin/
sudo cp /usr/bin/fping6 /usr/sbin/
sudo chown root.zabbix /usr/sbin/fping
sudo chmod 710 /usr/sbin/fping
sudo chmod ug+s /usr/sbin/fping
2. 安裝zabbix
1) 配置數據庫
建立數據庫
mysql -u root -p
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
導入表結構
Cd zabbix-2.1.8
mysql -u root -p zabbix < database/mysql/schema.sql
(proxy安裝只要schema就可以了)
mysql -u root -p zabbix < database/mysql/images.sql
mysql -u root -p zabbix < database/mysql/data.sql

2) 配置編譯
tar zxf zabbix-2.8.tar.gz
cd zabbix-2.8
sudo ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --enable-java --enable-ipv6 --with-jabber=/usr/local/iksemel/ --with-libcurl --with-ldap  --with-libxml2 --with-unixodbc  --with-ssh2  --with-openipmi
sudo make install
sudo ln -s /usr/local/iksemel/lib/libiksemel.so.3 /lib
3) 服務端口定義
編輯 /etc/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) 修改配置文件
sudo vim /usr/local/zabbix/etc/zabbix_server.conf
修改內容:
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
sudo  vi /usr/local/zabbix/etc/zabbix_agentd.conf
加入如下內容:
Server=127.0.0.1
#ServerPort=11051
Hostname=zabbix
5) 配置啓動腳本
複製啓動腳本:
sudo cp misc/init.d/debian/zabbix-server  /etc/init.d/zabbix-server
sudo cp misc/init.d/debian/zabbix-agent  /etc/init.d/zabbix-agent
sudo chmod 700 /etc/init.d/zabbix-*
修改服務端啓動腳本:
sudo vi /etc/init.d/zabbix-server
DAEMON=/usr/local/sbin/${NAME} 改爲DAEMON=/usr/local/zabbix/sbin/${NAME}
修改客戶端啓動腳本:同上
啓動服務並設置開機啓動
sudo /etc/init.d/zabbix-server start
sudo /etc/init.d/zabbix-agentd start
sudo update-rc.d zabbix-server defaults 
sudo update-rc.d zabbix-agent defaults
6) 配置Web Interface
* 複製 Web Interface 到 web 目錄:
sudo mkdir /var/www/zabbix 
sudo chown -R zabbix.zabbix  /var/www/zabbix
cp -r frontends/php/*  /var/www/zabbix
編輯php.ini文件: 
sudo vi /etc/php5/apache2/php.ini 
max_execution_time = 600 
max_input_time = 600
memory_limit = 256M 
post_max_size =32M 
upload_max_filesize = 16M
;date.timezone = ==>去掉註釋在=後添加 Asia/Shanghai
sudo vi /etc/apache2/apache2.conf 
加入下列一行 ServerName 127.0.0.1 
最後重啓apache,訪問方式http://ip/zabbix,按提示進行初始化配置
7) 安裝中文語言包
Vi /var/lib/locales/supported.d/local
加入如下內容
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN GB2312
en_US.UTF-8 UTF-8
繼續用命令:
sudo dpkg-reconfigure locales
sudo /usr/share/locales/install-language-pack zh_CN
3. 分佈式部署
1) NODE配置
一個zabbix 服務器安裝完之後是沒有配置任何節點分佈式的,需要自己去更改zabbix_server.conf 文件;首先,停止zabbix_server,並確保其沒有運行;
然後,指定一個唯一的節點ID,這個值可以是0-999;之後,修改數據庫爲分佈式設置,執行命令:zabbix_server –n <node ID>
注:該命令在一個server 上只能執行一次,不能重複執行,且執行該命令之前最後先備份下數據庫
主節點和從節點執行完上面的命令之後,開始在web界面進行添加:
分別打開主從節點的web管理界面,Administration-àDM-àNodes ,之後你會看到一個本機的節點,下面在主節點的web界面添加從節點的信息,選擇Create node ,

Name : 設置要顯示的節點名字
ID : 配置文件中所寫的node 值
Type: 選擇當前節點爲的類型,可選擇Master、Child。
Ip : 填寫要與當前節點管理的IP
之後會在節點配置界面看到如下圖的結果:

接下來再在從節點的web 中添加主節點的信息。
之後我們就可以通過一個界面來管理所有的節點客戶端了,在web界面的右上角有顯示Current node , 可以通過”Select Nodes” 選擇要顯示的節點,之後對該節點進行管理。
2) Proxy配置

4. 免編譯客戶端(linux)
Linux、UX上的agent是編譯好了的,不用安裝
# mkdir /usr/local/zabbix
上傳agent包sbin目錄下面的zabbix_agentd
mkdir /etc/zabbix
上傳zabbix_agentd.conf
Useradd zabbix
修改配置文件
註解Hostname=
修改:Server=Zabbix Server IP
修改完成後,運行/usr/local/zabbix/zabbix_agentd
#ps –avx |grep zabbix
加入開機運行
vi /etc/rc.local
增加
su zabbix "-c /usr/local/zabbix/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf"
5. AIX客戶端
上傳agent包sbin目錄下面的zabbix_agentd到AIX服務器的/sbin目錄下
Mkdir /etc/zabbix
上傳zabbix_agentd.conf到AIX服務器/etc/zabbix
Useradd zabbix
修改配置文件
註解Hostname= 
修改:Server=Zabbix Server IP
修改:Server=Zabbix Server IP
修改完成後,運行/etc/zabbix/zabbix_agentd
加入進程保護
Vi  /etc/inittab
最後加入一行:
Zabbix:2:respawn:/sbin/zabbix_agentd
重新載入配置
Telinit q
6. 客戶端(windows)
Windows客戶端程序安裝文件和配置文件分別在zabbix-1.8.2.tar.gz壓縮包(使用winrar打開)的bin\win32和misc\conf下。
安裝
1.copy bin\win32\zabbix_agentd.exe misc\conf\zabbix_agentd.win.conf 到c:\下。
修改zabbix_agentd.win.conf(重命名爲zabbix_agentd.conf)
Server=192.168.1.1                             <------zabbix服務器ip地址
Hostname=sale server                         <------客戶端機器名
StartAgents=5 
DebugLevel=3 
PidFile=c:\zabbix_agentd.pid                <------保存PidFile的路徑
LogFile=c:\zabbix_agentd.log               <------保存LogFile的路徑
Timeout=3
2.使用命令安裝zabbix_agentd
cd c:\
zabbix_agentd.exe -i                            <------安裝                            
zabbix_agentd.exe -s                           <------啓動服務
7. 問題解決
1) 圖片中文顯示籌碼
增加監控主機名爲中文名時,畫出來的圖形顯示的漢字是亂碼,這是由於zabbix用的字體imagettftext的問題,可以用以下方法解決.
1.上傳本地系統的C:\WINDOWS\Fonts\simhei.ttf文件到zabbixweb目錄的zabbix/fonts下
2.vi zabbix/include/defines.inc.php把所有的DejaVuSans替換成simhei
2) Zabbix-server服務無法開機啓動
在/etc/rc.local下面加入 su zabbix “-c /etc/init.d/zabbix-server start”
8. Zabbix服務器遷移
1、 原zabbix服務器的mysql數據庫的備份
mysqldump -u root -p --default-character-set=UTF8 --opt zabbix > zabbix.sql
2、 新服務器上全新總署zabbix,zabbix服務必須在運行,web interface可在最後配置
3、 備份原zabbix的配置(不需要歷史數據)
使用工具SQLyog,備份zabbix的表(acknowledges、alerts、auditlog、auditlog_details、events、history*、trends、trends_uint)
4、 新服務器安裝好zabbix後,導入數據庫
mysql -u root -p zabbix < zabbix.sql
5、 修改服務端配置文件:
vi /etc/zabbix/zabbix_server.conf
DBUser=root #這裏改成你的mysql用戶
DBPassword=cnczabbix #這裏是密碼,明文的。如果沒有,註釋掉就可以了
修改客戶端配置文件:
Vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.101 #改成你的服務器的ip,如果是監控自己,用127.0.0.1
6、 重啓服務
完成之後重啓一下zabbix_server,zabbix_agentd
9. Zabbix 升級
升級服務端安裝程序 

03.# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --enable-java --enable-ipv6 --with-jabber=/usr/local/iksemel/ --with-libcurl --with-ldap
vi /usr/local/zabbix/etc/zabbix_server.conf
服務端配置文件如下: 
01.# cat /usr/local/zabbix/etc/zabbix_server.conf
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock

sudo ln -s /usr/local/iksemel/lib/libiksemel.so.3 /lib

2、升級數據庫 
01.# cd zabbix-2.0.1/upgrades/dbpatches/2.0/mysql/
02.# mysql -u root -p zabbix < patch.sql
備註: 升級數據庫前請備份數據庫,然後清空zabbix的歷史記錄,不然升級時間會很長;
Truncate table history
分佈式部署可在一起配置
3、升級PHP程序 
01.# mv /var/www/zabbix /var/www/zabbix_bak
02.# cp -r zabbix-2.0.1/frontends/php /var/www/zabbix
在瀏覽器輸入:http://IP/setup.php
中方支持
Vi /var/lib/locales/supported.d/local
加入如下內容
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN GB2312
en_US.UTF-8 UTF-8
繼續用命令:
sudo dpkg-reconfigure locales
sudo /usr/share/locales/install-language-pack zh_CN
10. 飛信報警
# uname -a 
Linux Crob 2.6.34-gentoo #1 SMP Mon May 31 15:45:25 CST 2010 x86_64 Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz GenuineIntel GNU/Linux
# emerge -pv zabbix 
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R   ] net-analyzer/zabbix-1.8.2   USE="agent curl frontend jabber mysql openipmi proxy server snmp -ipv6 -ldap -oracle -postgres -sqlite3" 0 kB
2、下載飛信機器人 
http://www.it-adv.net/
# wget http://www.it-adv.net/fetion/downng/fetion20091117-linux.tar.gz
3、安裝測試飛信機器人 
安裝
# tar -zxvf fetion20091117-linux.tar.gz -C /usr/local/ 
測試
# /usr/local/fx/fetion --mobile=159009XXXXX --pwd=XXXXX --to=15900959XXXXX --msg-utf8="這是一條測試消息"
檢查手機是否收到消息
4、創建sendsms.sh短信發送腳本 
#vim /usr/bin/sendsms.sh 
文件內容爲如下:
#!/bin/sh
#send sms by fetion
#$1, $2, $3 mean Recipient, Subject and Message
/usr/local/fx/fetion --mobile=138176XXXXX --pwd=risghdhdn1 --to=$1 --msg-utf8="$2, $3" 
保存後測試腳本:
# chmod +x /usr/bin/sendsms.sh 
# /usr/bin/sendsms.sh 138176XXXXX hello world 
檢查手機是否收到消息
5、新增zabbix的Media Type 
登錄到zabbix,進入“Administration" >> ”Media types",點擊右上角“Create Media Type"。
Description填"Fetion"或其它名稱,Type選擇"Script",Script填”sendsms.sh"。
點擊"Save"保存配置。
# vim /etc/zabbix/zabbix_server.conf 
找到AlertScriptsPath參數並修改成 AlertScriptsPath=/usr/bin/ 
重啓zabbix-server服務
6、新增zabbix的Actions配置 
登錄到zabbix,進入"Configation" >> "Actions",點擊右上角"Create Actions"。
輸入”Name",其它都默認
點擊右側“Action Operations"下的"New"按鈕,"Operation Type"選擇"Send message","Send Message to"選擇一個或多個要發送消息的用戶組,”Send only to"選擇我們之前新增的Fetion。
點擊"Save"保存配置。
7、zabbix用戶配置 
登錄到zabbix, 進入"Adimistration" >> "Users",在之前選定要發送消息的組裏的Members欄位裏選擇一個用戶,例如選擇Admin用戶。
在用戶信息修改界面最下方的”Media"處點擊"Add"按鈕。
Type選擇"Fetion",Send to填入收信手機號碼,其它參數按需修改,點擊Add添加。
點擊"Save"保存配置。
至此配置完成,觸發一個警報試下手機是否收到訊息。
11. 日誌文件監控
zabbbix可以用於支持/不支持翻轉的日誌文件的集中監控與分析。
當一個日誌文件包含特定的字符或者字符模式時,zabbix向用戶發送報警信息。
要進行日誌文件監控,以下是必須的
zabbix客戶端代理(Zabbix agent)
設置日誌文件監控的監控項,被監控日誌文件的大小取決於大文件支持。
配置確認客戶端代理參數
確保在客戶端代理文件中:
‘Hostname’這個參數的值跟前端定義的主機名是一樣的
‘ServerActive’ 這個參數值中的主機必須指定爲主動檢測
監控項配置
創建一個日誌文件監控的監控項:
要進行日誌監控,你必須輸入以下內容:
類型(type) 這裏選擇 Zabbix agent (active)
關鍵字(Key) 設置爲下面兩個之一
log[文件名格式:日誌文件路徑,,,,]
or
logrt[文件名個格式:日誌文件路徑,,,,]
舉個例子:
log[/var/log/syslog]
log[/var/log/syslog,error]
logrt[”/home/user/filelog_.*_[0-9]{1,3}”,”pattern_to_match”,”UTF-8”,100].
最後一個將從文件“filelog_abc_1”或者“filelog__001”中收集信息.
要獲得更多細節信息,參考log 和 logrt 全部信息,在 支持的客戶端代理監控項關鍵字
確保zabbix用戶對該文件有讀權限否則監控項狀態將被設置爲’unsupported’.
如果正則表達式存在,zabbix客戶端代理將用它來過濾整個日誌文件。
信息類型(Type of information) 這裏選擇Log。
檢查更新時間間隔,以秒計(Update interval) (in sec) 這個參數定義了zabbix客戶度代理多久檢查一次日誌文件中的變化。將它設置爲1秒確保你儘可能快的獲得日誌文件改變的新記錄。
登錄時間格式
(Log time format 支持的佔位符:
* y: 年 (0001-9999)
* M: 月 (01-12)
* d: 日 (01-31)
* h: 小時 (00-23)
* m: 分鐘 (00-59)
* s: 秒 (00-59)
如果留空時間戳不會被解析
舉個例子,分析下面一行來自zabbix客戶端代理的日誌文件:
” 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).”
以六個字符開始,作爲PID,後面更這日期,時間和其他部分。
這一行的日誌文件時間格式將是 “pppppp:yyyyMMdd:hhmmss”.
注意: “p” 和 ”:” 這兩個字符僅僅是佔位符,它可以是任何字符除“yMdhms”. 
重要提醒
服務器端和客戶端代理在兩次監控之間記錄被監控文件大小和最新修改時間(logrt支持)。
客戶端代理從它之前停止監控的地方開始監控日誌。
已經分析的字節數(大小計數器)和最新修改時間(時間計數器)被存儲在zabbix數據庫中併發送到客戶端代理以確保從該點開始讀取日誌文件。
一旦日誌文件大小小於客戶端代理的日誌文件計數器中的記錄,計數器會被清零。客戶端代理從頭讀取日誌文件,並且考慮重設計數器。
在給定的目錄中,匹配參數filename格式的所有文件,在zabbix 客戶端代理試圖從日誌文件中獲得訪問時間時都會被分析。 (logrt支持).
如果目錄下面有幾個文件明都匹配從參數中指定的並且擁有相同的最後修改時間,那麼客戶端代理將分析按字典排序排在前面的那個。
zabbix客戶端代理(Zabbix agent)在每個更新時間間隔(Update interval seconds)分析一次一個日誌文件中的新增記錄。
客戶端代理(Zabbix agent)一秒內發送的日誌條目不會超過maxlines這個參數指定的值。這個限制預防了網絡和CPU資源過載以及在客戶端代理配置文件中參數MaxLinesPerSecond提供的默認值。
特別注意路徑分隔符”\” :如果文件格式是 “file\.log”, 那麼路徑裏面不能有目錄存在, 因爲不能明確定義 ”.” 被轉義了或者是文件名的第一個字符。
logrt 的正則表達式只支持文件名,目錄的正則匹配還不支持
12. Mysql遠程訪問
Vi /etc/mysql/my.cnf   127.0.0.1 注
Use mysql;
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '111111' WITH GRANT OPTION;
13. Zabbix java gateway
14. Snmp-trap監控
1、 工作原理
(SNMP Trap) -> snmptrapd -> snmptrap.sh -> zabbix_sender -> (Zabbix)
2、 zabbix SNMP trap接收器和腳本
zabbix_trap_receiver.pl、snmptrap.sh
3、 修改配置文件
cp  misc/snmptrap/snmptrap.sh /usr/local/zabbix/sbin/snmptrap.sh
cp  misc/zabbix_trap_receiver.pl /usr/local/zabbix/etc/zabbix_trap_receiver.pl
Vim  /usr/local/zabbix/sbin/snmptrap.sh

ZABBIX_SERVER="localhost";
ZABBIX_PORT="10051";
ZABBIX_SENDER="/usr/local/zabbix/sbin/zabbix_sender"; (zabbix_sender的路徑)
KEY="cmbchina";(snmp trap Key)
HOST="snmptraps";
vim /etc/snmp/snmptrapd.conf
disableAuthorization yes
perl NetSNMP::TrapReceiver::register("trapOID", \&myfunc)
traphandle default /bin/bash /usr/local/zabbix/sbin/snmptrap.sh
perl do "/usr/local/zabbix/etc/zabbix_trap_receiver.pl
啓動服務
snmptrapd -C -c /etc/snmp/snmptrapd.conf -Lf /tmp/net-snmptrap.log
4、 Configuring Zabbix server/proxy
Vim /usr/local/zabbix/etc/zabbix_server.conf
StartSNMPTrapper=1
SNMPTrapperFile=[TRAP FILE]
重啓服務
5、 zabbix item配置
新建Host->SNMP接口(目標IP、端口162)->snmp trap->key(snmptrap[IP])
15. Jmx tomcat監控
Linux 系統
修改catalina.sh,增加如下


 CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10031 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
保存後,啓動startup.sh
Windows 系統
配置參考: 
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="9004" -Dcom.sun.management.jmxremote.authenticate="false" -Dcom.sun.management.jmxremote.ssl="false"; 
windows環境:修改catalina.bat 在:doRun和:doStart後一行添加上述配置
運行startup.bat
16. WebSphere監控
服務器——》應用服務器——》server1——》java和進程管理——》進程定義——》java虛擬機,通用JVM參數裏面填入:
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章