zabbix2.2.3 Centos6.5安裝

1、zabbix簡介

zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix由zabbix server與可選組件zabbix agent兩部門組成。
zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視。
zabbix agent需要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操作系統有關的內存,CPU等信息的收集。

zabbix的主要特點:
- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源
- 自動發現服務器與網絡設備
- 分布式監視以及WEB集中管理功能
- 可以無agent監視
- 用戶安全認證和柔軟的授權方式
- 通過WEB界面設置或查看監視結果
- email等通知功能
等等

Zabbix主要功能:
- CPU負荷
- 內存使用
- 磁盤使用
- 網絡狀況
- 端口監視
- 日志監視
官方也提供了安裝資料:http://www.zabbix.com/wiki/howto/monitor

Zabbix的架構

2、zabbix 安裝

系統:CentOS release 6.5
內核: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語言開發,需要lnmp環境或者lamp

1.yum安裝LAMP環境

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使用環境, 編輯/etc/php.ini文件,修改以下內容

date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 32M
max_input_time = 300
memory_limit = 128M
mbstring.func_overload = 2

啟動httpd、mysqld服務

# chkconfig mysqld on
# chkconfig httpd on 
# service mysqld start
# service httpd start

3.下載并安裝zabbix服務端

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz

創建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

報錯如下:
checking for SSH2 support... no
configure: error: SSH2 library not found

解決辦法:
yum -y install libssh2-devel

上面一個報錯解決了,繼續./configure,又出現如下錯誤:
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 到系統服務文件

# vi /etc/services(在rhel/centos系列中,下面的服務參數可以不用添加,默認已經有了)
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.導入zabbix數據庫

[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> 

導入數據庫文件

[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.創建zabbix日志目錄

# mkdir /var/log/zabbix
# chown zabbix.zabbix /var/log/zabbix

7.設置zabbix啟動腳本

[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文件,修改以下參數

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 (測試環境默認值即可)
StartTrappers=20 (測試環境默認值即可)
StartPingers=100 (測試環境默認值即可)
StartDiscoverers=120 (測試環境默認值即可)
MaxHousekeeperDelete=5000 (測試環境默認值即可)
CacheSize=1024M (測試環境默認值即可)
StartDBSyncers=16 (測試環境默認值即可)
HistoryCacheSize=1024M (測試環境默認值即可)
TrendCacheSize=1024M (測試環境默認值即可)
HistoryTextCacheSize=512M (測試環境默認值即可)
AlertScriptsPath=/etc/zabbix/alertscripts
LogSlowQueries=1000

修改完成后可通過以下命令進行查看:
grep -Ev "(#|^$)" /etc/zabbix/zabbix_server.conf

9.編輯/etc/zabbix/zabbix_agentd.conf文件,修改以下參數

LogFile=/var/log/zabbix/zabbix_agentd.log
EnableRemoteCommands=0
Server=127.0.0.1,172.16.10.72  #zabbix服務端IP
StartAgents=8
ServerActive=172.16.10.72:10051
Hostname=Zabbix server
Timeout=30
Include=/etc/zabbix/zabbix_agentd.conf.d/
UnsafeUserParameters=1

修改完成后可通過以下命令進行查看:
grep -Ev "(#|^$)" /etc/zabbix/zabbix_agentd.conf

10.拷貝zabbix網頁文件到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服務

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服務是否啟動
[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 #暫時關閉防火墻

打開瀏覽器,訪問:http://172.16.100.16/zabbix,不出意外,會看到如下頁面

Paste_Image.png

點擊next,進入下一步

Paste_Image.png

解決方法:

yum install php-mbstring
service httpd restart
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

到此web頁面配置完畢,已經到了登陸界面,zabbix的默認登陸賬號是admin,密碼是zabbix

Paste_Image.png
Paste_Image.png

登錄后發現一個報錯:zabbbix server is not running:the information displayed may not be current

經過排查,發現是selinux惹的禍

解決辦法:關閉selinux

setenforce 0
查看10051端口是否開啟,如未啟動

/etc/init.d/zabbix_server start

開啟后10051端口又自動關閉,查看日志

cat /var/log/zabbix/zabbix_server.log 

報錯連接數據庫失敗


Paste_Image.png

是由于連接到數據庫的數量比較多,mysql 默認的連接數是100,一般設置到500~1000比較合適,我們可以調大這個值:修改/etc/my.cnf這個文件,在[mysqld]中新增max_connections=1000
然后重啟mysql和zabbix_server zabbix_agent

Paste_Image.png

刷新頁面

Paste_Image.png

添加中文支持,默認是沒有中文選項

Paste_Image.png
Paste_Image.png

原來zabbix默認把對中文的支持給關閉了,我們需要修改zabbix的php源文件. 修改站點根目錄下include/locales.inc.php文件.

Paste_Image.png
Paste_Image.png

更改為

Paste_Image.png

重啟zabbix服務

Paste_Image.png

監控圖形出現亂碼

Paste_Image.png

1.從windows下控制面板->字體->選擇一種中文字庫例如“楷體” 【復制-粘貼出來,然后拷貝到zabbix服務器上】

將這個文件拷貝到zabbix的數據目錄的fonts目錄下

之前部署的zabbix數據目錄是/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移動到別處
[root@Zabbix-server fonts]# ls simkai.ttf

然后,接著修改代碼include/defines.inc.php文件中的字體配置,將里面關于字體設置從DejaVuSans替換成simkai

Paste_Image.png

———————————————分割線—————————————————
本文參考:http://www.cnblogs.com/Eivll0m/p/3807604.html
常見報錯 :https://www.iyunv.com/thread-25966-1-1.html
在linux系統中,幾乎所有運行的服務都會產生相對就的日志(log),所運行的程序在出錯時都會有錯誤提示,即使沒有任何提示也可以通過“echo $”來查看運行是否成功。使用zabbix已經有一段時間了,整理一下遇到過的問題和解決的方法以。

zabbix的日志存放在/tmp下,服務器端對應的日志是zabbix_server.log,被監控端對應的日志是zabbix_agentd.log.

一,zabbix服務是否已經開啟成功

查看系統是否已經有zabbix進程正在運行 # ps aux |grep zabbix 查看系統是否已監聽zabbix server和zabbix agent所使用的10050、10051端口 # netstat -nplut |grep zabbix 如果沒有,則開啟:#/etc/init.d/zabbix_server_ctl start #/etc/init.d/zabbix_agent_ctl start特別需要注意的是:每次修改完配置文件之后都需要重新啟動對應的zabbix server或者zabbix agentd。

部分運行腳本在做restart時無法關閉zabbix導致服務無法重新啟動,可用kill的命令把zabbix相關的進程殺掉再啟動。

二、zabbix_server.log出現的提示

2009:20121023:193549.354 Sending list of active checks to [192.168.30.3] failed: host [CentOS-3] not found

這是因為zabbix_agentd.conf配置文件中的Hostname與web中的主機名對應。

三、網頁中了出現的錯誤

(1)

Get value from agent failed: cannot connect to [[192.168.30.2]:10050]: [111] Connection refused

192.168.30.2是我的zabbix server服務器,本身也有監控自己本身的agent功能。出現這種錯誤是因為忘記在zabbix服務器開戶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”,與網絡連接有關。排除的方法如下:

a)查看192.168.30.3這臺機器是否已開機

b)在zabbix server端向這臺機器ping,看網絡是否通

c)用telnet 登錄10050和10051端口,看該主機是否允許這兩個端口通訊

d)查看iptables防火墻規則是否攔截10050、10051端口

(3)

網頁中不停地有以下紅色提示:

zabbix server is not running: the information displayed may not be current.

zabbix 遇到上面的問題

可以從以下幾個方面入手檢查,當然先查日志,如果不想查日志,先檢查下面幾項是否正常

  1. selinux是否關閉。

  2. 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進程、端口都正常……幾翻google以后并嘗試,終于得到了解決!

http://www.zabbix.com/forum/showthread.php?t=23878&page=3 這里面有說到zabbix受selinux的影響而已有這種錯誤提示。

http://www.zabbix.com/forum/showthread.php?t=25321 這里面說到了修改hostname為IP的做法。

我具體的做法是:

①查看selinux產生的log,確實有錯誤提示:

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的值改為本機的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 ...

表示一個子進程死掉,是一個zabbix內存溢出錯誤 (此錯誤同樣會造成上面紅色的閃爍)

更正:

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

是由于連接到數據庫的數量比較多,mysql 默認的連接數是100,一般設置到500~1000比較合適,我們可以調大這個值:修改/etc/my.cnf這個文件,在[mysqld]中新增max_connections=1000

然后重啟mysql和zabbix_server zabbix_agent

用戶自定義腳本監控:

a)

有時候用戶自定義的腳本運行的時間可能比較長,如超過10秒的20秒的。這時在執行zabbix_agentd -p 或者zabbix_agentd -t時就可能出現“Alarm clock”,從而得不到想要的結果。這是因為zabbix agentd配置文件中定義Timeout時間默認為3秒,腳本運行取結果的時間超過了3秒就會出現這種情況。

解決方法:編輯配置文件/etc/zabbix/zabbix_agentd.conf,找到"Timeout"把它定義為30秒或小于30秒。

b)

對a中的情況還需要注意對zabbix服務器端的配置,如我自己定義的腳本

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參數是對ping限定時間為29秒這個腳本運行的大概時間為10秒左右,此時在agent端雖然可以用zabbix_agentd -t得到結果,但是在zabbix服務器端日志會不斷的出現

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

這樣的錯誤日志,并且在web端也沒有畫出圖來。

解決方法:

①編輯zabbix服務器端的配置文件/etc/zabbix/zabbix_server.conf找到"Timeout"把它定義為30秒或小于30秒。

②如果還有類似提示則應該是zabbix服務器的內存設置得太小了,加大服務器內存便可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,829評論 18 139
  • Zabbix簡介 Zabbix官方網站Zabbix中文文檔 本文系統環境是CentOS7x86_64, Zabbi...
    Zhang21閱讀 8,049評論 0 37
  • zabbix是什么在此就不多作介紹了,可以參考之前的文章零代碼如何打造自己的實時監控預警系統,這篇主要介紹安裝及注...
    歡醉閱讀 1,459評論 0 2
  • 萬香園,用良心拉面!用道德熬醬!萬香園炸醬面有百吃不厭的美譽。在諸多美食中,炸醬面布的地域最為廣闊。北方和中原一帶...
    只為愛你只為愛你閱讀 464評論 0 3
  • 這是個新建成的校園,細嫩的樹木零零散散,點綴其間。栽樹翻出的泥,沒來得及掃干凈,被雨水沖走,蔓延開很遠。但好在路寬...
    pata600閱讀 445評論 1 1