1、zabbix簡介
zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案。
zabbix由zabbix server與可選組件zabbix agent兩部門組成廊蜒。
zabbix server可以通過SNMP,zabbix agent奶卓,ping活尊,端口監(jiān)視等方法提供對遠(yuǎn)程服務(wù)器/網(wǎng)絡(luò)狀態(tài)的監(jiān)視。
zabbix agent需要安裝在被監(jiān)視的目標(biāo)服務(wù)器上仔涩,它主要完成對硬件信息或與操作系統(tǒng)有關(guān)的內(nèi)存,CPU等信息的收集粘舟。
zabbix的主要特點(diǎn):
- 安裝與配置簡單熔脂,學(xué)習(xí)成本低
- 支持多語言(包括中文)
- 免費(fèi)開源
- 自動(dòng)發(fā)現(xiàn)服務(wù)器與網(wǎng)絡(luò)設(shè)備
- 分布式監(jiān)視以及WEB集中管理功能
- 可以無agent監(jiān)視
- 用戶安全認(rèn)證和柔軟的授權(quán)方式
- 通過WEB界面設(shè)置或查看監(jiān)視結(jié)果
- email等通知功能
等等
Zabbix主要功能:
- CPU負(fù)荷
- 內(nèi)存使用
- 磁盤使用
- 網(wǎng)絡(luò)狀況
- 端口監(jiān)視
- 日志監(jiān)視
官方也提供了安裝資料:http://www.zabbix.com/wiki/howto/monitor
Zabbix的架構(gòu)
2、zabbix 安裝
系統(tǒng):CentOS release 6.5
內(nèi)核:Linux agent 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
zabbix版本:zabbix-2.2.3
zabbix是有php語言開發(fā)柑肴,需要lnmp環(huán)境或者lamp
1.yum安裝LAMP環(huán)境
yum -y install gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstringphp-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel OpenIPMI-devel ja va-devel
2霞揉、配置LAMP使用環(huán)境, 編輯/etc/php.ini文件,修改以下內(nèi)容
date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 32M
max_input_time = 300
memory_limit = 128M
mbstring.func_overload = 2
啟動(dòng)httpd晰骑、mysqld服務(wù)
# chkconfig mysqld on
# chkconfig httpd on
# service mysqld start
# service httpd start
3.下載并安裝zabbix服務(wù)端
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz
創(chuàng)建zabbix用戶
# groupadd zabbix
# useradd zabbix -g zabbix
安裝zabbix
# tar xf zabbix-2.2.3.tar.gz
# cd zabbix-2.2.3
# ./configure --prefix=/usr --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --enable-ipv6 --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-ssh2 --enable-java
報(bào)錯(cuò)如下:
checking for SSH2 support... no
configure: error: SSH2 library not found
解決辦法:
yum -y install libssh2-devel
上面一個(gè)報(bào)錯(cuò)解決了适秩,繼續(xù)./configure,又出現(xiàn)如下錯(cuò)誤:
checking for LDAP support... no
configure: error: Invalid LDAP directory - unable to find ldap.h
解決辦法:
yum -y install openldap openldap-devel
make
make install
4.添加zabbix 到系統(tǒng)服務(wù)文件
# vi /etc/services(在rhel/centos系列中硕舆,下面的服務(wù)參數(shù)可以不用添加秽荞,默認(rèn)已經(jīng)有了)
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
5.導(dǎo)入zabbix數(shù)據(jù)庫
[root@zabbix zabbix-2.2.3]# mysqladmin -uroot password 'abc123,'
[root@zabbix zabbix-2.2.3]# mysqladmin -uroot password 'abc123,'
[root@zabbix zabbix-2.2.3]# mysql -uroot -p
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> flush privileges;
測試下連接是否正常
[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, 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>
導(dǎo)入數(shù)據(jù)庫文件
[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/schema.sql
[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/images.sql
[root@zabbix zabbix-2.2.3]# mysql -uzabbix -pzabbix zabbix < ./database/mysql/data.sql
6.創(chuàng)建zabbix日志目錄
# mkdir /var/log/zabbix
# chown zabbix.zabbix /var/log/zabbix
7.設(shè)置zabbix啟動(dòng)腳本
[root@zabbix zabbix-2.2.3]# cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
[root@zabbix zabbix-2.2.3]# chmod 755 /etc/init.d/zabbix_*
[root@zabbix zabbix-2.2.3]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#" /etc/init.d/zabbix_server
[root@zabbix zabbix-2.2.3]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#" /etc/init.d/zabbix_agentd
8.編輯/etc/zabbix/zabbix_server.conf文件,修改以下參數(shù)
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
StartPollers=160 (測試環(huán)境默認(rèn)值即可)
StartTrappers=20 (測試環(huán)境默認(rèn)值即可)
StartPingers=100 (測試環(huán)境默認(rèn)值即可)
StartDiscoverers=120 (測試環(huán)境默認(rèn)值即可)
MaxHousekeeperDelete=5000 (測試環(huán)境默認(rèn)值即可)
CacheSize=1024M (測試環(huán)境默認(rèn)值即可)
StartDBSyncers=16 (測試環(huán)境默認(rèn)值即可)
HistoryCacheSize=1024M (測試環(huán)境默認(rèn)值即可)
TrendCacheSize=1024M (測試環(huán)境默認(rèn)值即可)
HistoryTextCacheSize=512M (測試環(huán)境默認(rèn)值即可)
AlertScriptsPath=/etc/zabbix/alertscripts
LogSlowQueries=1000
修改完成后可通過以下命令進(jìn)行查看:
grep -Ev "(#|^$)" /etc/zabbix/zabbix_server.conf
9.編輯/etc/zabbix/zabbix_agentd.conf文件抚官,修改以下參數(shù)
LogFile=/var/log/zabbix/zabbix_agentd.log
EnableRemoteCommands=0
Server=127.0.0.1,172.16.10.72 #zabbix服務(wù)端IP
StartAgents=8
ServerActive=172.16.10.72:10051
Hostname=Zabbix server
Timeout=30
Include=/etc/zabbix/zabbix_agentd.conf.d/
UnsafeUserParameters=1
修改完成后可通過以下命令進(jìn)行查看:
grep -Ev "(#|^$)" /etc/zabbix/zabbix_agentd.conf
10.拷貝zabbix網(wǎng)頁文件到apache目錄
[root@zabbix zabbix-2.2.3]# cp -r ./frontends/php/ /var/www/html/zabbix
[root@zabbix zabbix-2.2.3]# chown -R apache.apache /var/www/html/zabbix
11.開啟zabbix服務(wù)
root@zabbix zabbix-2.2.3]# chkconfig zabbix_server on
[root@zabbix zabbix-2.2.3]# chkconfig zabbix_agentd on
[root@zabbix zabbix-2.2.3]# service zabbix_server start
Starting zabbix_server: [ OK ]
[root@zabbix zabbix-2.2.3]# service zabbix_agentd start
Starting zabbix_agentd: [ OK ]
#查看zabbix服務(wù)是否啟動(dòng)
[root@zabbix zabbix-2.2.3]# netstat -antpl|grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 22542/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 22473/zabbix_server
tcp 0 0 :::10050 :::* LISTEN 22542/zabbix_agentd
tcp 0 0 :::10051 :::* LISTEN 22473/zabbix_server
12.通過web頁面配置zabbix
service iptables stop #暫時(shí)關(guān)閉防火墻
打開瀏覽器扬跋,訪問:http://172.16.100.16/zabbix,不出意外凌节,會(huì)看到如下頁面
點(diǎn)擊next钦听,進(jìn)入下一步
解決方法:
yum install php-mbstring
service httpd restart
到此web頁面配置完畢,已經(jīng)到了登陸界面倍奢,zabbix的默認(rèn)登陸賬號(hào)是admin弟蚀,密碼是zabbix
登錄后發(fā)現(xiàn)一個(gè)報(bào)錯(cuò):zabbbix server is not running:the information displayed may not be current
經(jīng)過排查乡括,發(fā)現(xiàn)是selinux惹的禍
解決辦法:關(guān)閉selinux
setenforce 0
查看10051端口是否開啟,如未啟動(dòng)
/etc/init.d/zabbix_server start
開啟后10051端口又自動(dòng)關(guān)閉,查看日志
cat /var/log/zabbix/zabbix_server.log
報(bào)錯(cuò)連接數(shù)據(jù)庫失敗
是由于連接到數(shù)據(jù)庫的數(shù)量比較多贪绘,mysql 默認(rèn)的連接數(shù)是100,一般設(shè)置到500~1000比較合適倦蚪,我們可以調(diào)大這個(gè)值:修改/etc/my.cnf這個(gè)文件隘擎,在[mysqld]中新增max_connections=1000
然后重啟mysql和zabbix_server zabbix_agent
刷新頁面
添加中文支持,默認(rèn)是沒有中文選項(xiàng)
原來zabbix默認(rèn)把對中文的支持給關(guān)閉了柴钻,我們需要修改zabbix的php源文件. 修改站點(diǎn)根目錄下include/locales.inc.php文件.
更改為
重啟zabbix服務(wù)
監(jiān)控圖形出現(xiàn)亂碼
1.從windows下控制面板->字體->選擇一種中文字庫例如“楷體” 【復(fù)制-粘貼出來淮韭,然后拷貝到zabbix服務(wù)器上】
將這個(gè)文件拷貝到zabbix的數(shù)據(jù)目錄的fonts目錄下
之前部署的zabbix數(shù)據(jù)目錄是/var/www/html/zabbix/fonts
[root@Zabbix-server fonts]# pwd /var/www/html/zabbix/fonts
[root@Zabbix-server fonts]#ls
將上面從windows的“控制面板”----“字體”里下載下來的simkai.ttf文件拷貝到這里。并且將之前的字體文件DejaVuSans.ttf移動(dòng)到別處
[root@Zabbix-server fonts]# ls simkai.ttf
然后贴届,接著修改代碼include/defines.inc.php文件中的字體配置靠粪,將里面關(guān)于字體設(shè)置從DejaVuSans替換成simkai
———————————————分割線—————————————————
本文參考:http://www.cnblogs.com/Eivll0m/p/3807604.html
常見報(bào)錯(cuò) :https://www.iyunv.com/thread-25966-1-1.html
在linux系統(tǒng)中蜡吧,幾乎所有運(yùn)行的服務(wù)都會(huì)產(chǎn)生相對就的日志(log),所運(yùn)行的程序在出錯(cuò)時(shí)都會(huì)有錯(cuò)誤提示占键,即使沒有任何提示也可以通過“echo $”來查看運(yùn)行是否成功昔善。使用zabbix已經(jīng)有一段時(shí)間了,整理一下遇到過的問題和解決的方法以畔乙。
zabbix的日志存放在/tmp下君仆,服務(wù)器端對應(yīng)的日志是zabbix_server.log,被監(jiān)控端對應(yīng)的日志是zabbix_agentd.log.
一牲距,zabbix服務(wù)是否已經(jīng)開啟成功
查看系統(tǒng)是否已經(jīng)有zabbix進(jìn)程正在運(yùn)行 # ps aux |grep zabbix 查看系統(tǒng)是否已監(jiān)聽zabbix server和zabbix agent所使用的10050返咱、10051端口 # netstat -nplut |grep zabbix 如果沒有,則開啟:#/etc/init.d/zabbix_server_ctl start #/etc/init.d/zabbix_agent_ctl start特別需要注意的是:每次修改完配置文件之后都需要重新啟動(dòng)對應(yīng)的zabbix server或者zabbix agentd牍鞠。
部分運(yùn)行腳本在做restart時(shí)無法關(guān)閉zabbix導(dǎo)致服務(wù)無法重新啟動(dòng)咖摹,可用kill的命令把zabbix相關(guān)的進(jìn)程殺掉再啟動(dòng)。
二难述、zabbix_server.log出現(xiàn)的提示
2009:20121023:193549.354 Sending list of active checks to [192.168.30.3] failed: host [CentOS-3] not found
這是因?yàn)閦abbix_agentd.conf配置文件中的Hostname與web中的主機(jī)名對應(yīng)萤晴。
三、網(wǎng)頁中了出現(xiàn)的錯(cuò)誤
(1)
Get value from agent failed: cannot connect to [[192.168.30.2]:10050]: [111] Connection refused
192.168.30.2是我的zabbix server服務(wù)器胁后,本身也有監(jiān)控自己本身的agent功能店读。出現(xiàn)這種錯(cuò)誤是因?yàn)橥浽趜abbix服務(wù)器開戶zabbix_agentd。在Last 20 issues中也有提示
Last 20 issues
Host
Issue
Last change
Age
Ack
Actions
Zabbix server
Server Zabbix server is unreachable
23 Oct 2012 18:42:14
6m 57s
No
解決方法:開啟zabbix_agentd即可择同。
(2)
Get value from agent failed: cannot connect to [[192.168.30.3]:10050]: [113] No route to host
看提示“No route to host”两入,與網(wǎng)絡(luò)連接有關(guān)。排除的方法如下:
a)查看192.168.30.3這臺(tái)機(jī)器是否已開機(jī)
b)在zabbix server端向這臺(tái)機(jī)器ping敲才,看網(wǎng)絡(luò)是否通
c)用telnet 登錄10050和10051端口裹纳,看該主機(jī)是否允許這兩個(gè)端口通訊
d)查看iptables防火墻規(guī)則是否攔截10050、10051端口
(3)
網(wǎng)頁中不停地有以下紅色提示:
zabbix server is not running: the information displayed may not be current.
zabbix 遇到上面的問題
可以從以下幾個(gè)方面入手檢查紧武,當(dāng)然先查日志剃氧,如果不想查日志,先檢查下面幾項(xiàng)是否正常
selinux是否關(guān)閉阻星。
zabbix web目錄下面 $ZBX_SERVER 是否為ip朋鞍,如果是localhost,ping下localhost是否能解析妥箕。
3.查看php的fsockopen模塊是否啟用滥酥。
zabbix server is running | No.
查看/tmp/zabbix_server.log和/tmp/zabbix_agent.log無任何異常∑璐保看zabbix_server和zabbix_agent進(jìn)程坎吻、端口都正常……幾翻google以后并嘗試宇葱,終于得到了解決瘦真!
http://www.zabbix.com/forum/showthread.php?t=23878&page=3 這里面有說到zabbix受selinux的影響而已有這種錯(cuò)誤提示刊头。
http://www.zabbix.com/forum/showthread.php?t=25321 這里面說到了修改hostname為IP的做法。
我具體的做法是:
①查看selinux產(chǎn)生的log诸尽,確實(shí)有錯(cuò)誤提示:
tail -f /var/log/audit/audit.log
type=AVC msg=audit(1351863204.990:32): avc: denied { name_connect } for pid=1575 comm="httpd" dest=10051 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket
type=SYSCALL msg=audit(1351863204.990:32): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfd494b0 a2=b76b0ad8 a3=d items=0 ppid=1434 pid=1575 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)
②然后讓selinux允許它通過
setsebool -P httpd_can_network_connect on③編輯zabbix.conf.php文件原杂,把$ZBX_SERVER的值改為本機(jī)的IP地址
$ZBX_SERVER = '192.168.30.2'; #######用IP代替hostname
④OK
四、
tail /tmp/zabbix_server.log 顯示
50952:20141012:195519.884 One child process died (PID:51233,exitcode/signal:255). Exiting ...
表示一個(gè)子進(jìn)程死掉您机,是一個(gè)zabbix內(nèi)存溢出錯(cuò)誤 (此錯(cuò)誤同樣會(huì)造成上面紅色的閃爍)
更正:
vim /etc/zabbix/zabbix_server.conf
CacheSize=512M
修改此值后OK
五穿肄、 tail /tmp/zabbix_server.log 顯示
2552:20141012:211700.552 [Z3001] connection to database 'zabbix' failed: [1040] Too many connections
是由于連接到數(shù)據(jù)庫的數(shù)量比較多,mysql 默認(rèn)的連接數(shù)是100际看,一般設(shè)置到500~1000比較合適被碗,我們可以調(diào)大這個(gè)值:修改/etc/my.cnf這個(gè)文件,在[mysqld]中新增max_connections=1000
然后重啟mysql和zabbix_server zabbix_agent
用戶自定義腳本監(jiān)控:
a)
有時(shí)候用戶自定義的腳本運(yùn)行的時(shí)間可能比較長仿村,如超過10秒的20秒的。這時(shí)在執(zhí)行zabbix_agentd -p 或者zabbix_agentd -t時(shí)就可能出現(xiàn)“Alarm clock”兴喂,從而得不到想要的結(jié)果蔼囊。這是因?yàn)閦abbix agentd配置文件中定義Timeout時(shí)間默認(rèn)為3秒,腳本運(yùn)行取結(jié)果的時(shí)間超過了3秒就會(huì)出現(xiàn)這種情況衣迷。
解決方法:編輯配置文件/etc/zabbix/zabbix_agentd.conf畏鼓,找到"Timeout"把它定義為30秒或小于30秒。
b)
對a中的情況還需要注意對zabbix服務(wù)器端的配置壶谒,如我自己定義的腳本
UserParameter=ping.avgtime,ping 192.168.30.2 -c 10 -w 29 |grep 'avg' |awk -F "/" '{print $5}' 對192.168.30.2 ping 10取平均值云矫,-w參數(shù)是對ping限定時(shí)間為29秒這個(gè)腳本運(yùn)行的大概時(shí)間為10秒左右,此時(shí)在agent端雖然可以用zabbix_agentd -t得到結(jié)果汗菜,但是在zabbix服務(wù)器端日志會(huì)不斷的出現(xiàn)
1762:20121023:191941.360 resuming Zabbix agent checks on host [Zabbix server]: connection restored
1761:20121023:191952.149 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: first network error, wait for 15 seconds
1762:20121023:192010.610 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds
1762:20121023:192028.628 Zabbix agent item [ping.avgtime] on host [CentOS-3] failed: another network error, wait for 15 seconds
這樣的錯(cuò)誤日志让禀,并且在web端也沒有畫出圖來。
解決方法:
①編輯zabbix服務(wù)器端的配置文件/etc/zabbix/zabbix_server.conf找到"Timeout"把它定義為30秒或小于30秒陨界。
②如果還有類似提示則應(yīng)該是zabbix服務(wù)器的內(nèi)存設(shè)置得太小了巡揍,加大服務(wù)器內(nèi)存便可。