zabbix系列之服務端的安裝部署(一)

zabbix

1、zabbix的定義

zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。

zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

zabbix由2部分構成,zabbix server與可選組件zabbix agent。zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。

 

2、zabbix的主要特點:

(1)、安裝與配置簡單,學習成本低

(2)、支持多語言(包括中文)

(3)、免費開源

(4)、自動發現服務器與網絡設備

(5)、分佈式監視以及WEB集中管理功能

(6)、可以無agent監視

(7)、用戶安全認證和柔軟的授權方式

(8)、通過WEB界面設置或查看監視結果

(9)、email等通知功能等等

 

3、Zabbix的主要功能:

(1)、CPU負荷

(2)、內存使用

(3)、磁盤使用

(4)、網絡狀況

(5)、端口監視

(6)、日誌監視

(7)、服務監控

 

4、zabbix工作的原理

Zabbix支持四種工作方式分別是Snmp 、 zabbix(server/agent)、JMX、IPMI(基於硬件提供的專用接口)。

Snmp 協議介紹

Agent:代理在UDP的161端口接收NMS的讀寫請求消息,agent:161,被監控端

Manger:管理站在UDP的162端口接收代理的事件通告消息 ,NMS:162,監控端

工作原理圖如圖1所示

blob.png

                                  圖1

5、zabbix的協議

Zabbix 是基於zabbix協議工作的,其底層是依賴於snmp的工作方式來工作的,它的模型是Server/agent 方式。Service : 10051 :由三部分組成(zabbix-web gui[依賴lamp平臺、配置接口、展示數據]、zabbix-server[週期性去agent端採集數據]、service database[負責存儲數據])。Agent: 10050:收集本機數據、暫時存儲、監聽等待server端來採集數據部署應用場景。如圖2所示

blob.png

                                         圖2

6、zabbix一次監控的全過程原理圖

定義監控主機,主機添加到主機組,定義item(監控主機的監控項,[監控資源]),graphs繪圖[不是必須、套用用模板就不用],teiggers:定義觸發器,action:定義觸發器觸發後要執行的動作,比如服務重啓,發郵件給管理員,動作升級,發郵件給部門主管。如圖3所示

blob.png

                                    圖3

7、zabbix一次全監控的工作流程

數據採集、數據存儲、數據展示、服務報警與升級。如圖4所示

blob.png

                                   圖4


開始配置

環境:CentOS 7(最小化安裝)


1、搭建LNMP環境

[root@localhost ~]# yum install make httpd php mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml unixODBC-devel OpenIPMI-devel libxml2-devel mariadb mariadb-server -y

注:我這裏是使用之前編譯安裝的LNMP環境,如果不想那麼麻煩,就直接按照上面的命令搭建LNMP環境


2、創建用戶

[root@localhost ~]# useradd zabbix -s /sbin/nologin


3、創建zabbix數據庫,並授權

[root@localhost ~]# mysql -uroot -p
Enter password: 

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.04 sec)
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


4、下載zabbix,解壓,並將zabbix導入數據庫

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz
[root@localhost src]# tar -xf zabbix-3.2.7.tar.gz 
[root@localhost src]# cd zabbix-3.2.7
[root@localhost zabbix-3.2.7]#  cd database/mysql/
[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql          
[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < data.sql


5、編譯安裝zabbix


[root@localhost ~]# cd /usr/local/src/zabbix-3.2.7
[root@localhost zabbix-3.2.7]# ./configure --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --prefix=/usr/local/zabbix
[root@localhost zabbix-3.2.7]# make && make install

注:可能會遇到的問題

問題一:configure: error: unixODBC library not found
解決方法:yum install unixODBC-devel -y

問題二:configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解決方法:yum install net-snmp-devel -y

問題三:configure: error: Invalid OPENIPMI directory - unable to find ipmiif.h 
解決方法:yum -y install OpenIPMI-devel

問題四:configure: error: Curl library not found
解決方法: yum install curl-devel -y


6、修改Nginx.conf使其支持index.php

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
            index  index.html index.htm index.php;


7、修改zabbix對應的數據庫賬號和密碼

[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix


8、配置啓動腳本,並修改相關選項

[root@localhost ~]# cd /usr/local/src/zabbix-3.2.7
[root@localhost zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
[root@localhost zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/ 
[root@localhost zabbix-3.2.7]# sed -i 's\ZABBIX_BIN="/usr/local/sbin/zabbix_agentd"\ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"\g' /etc/init.d/zabbix_agentd 
[root@localhost zabbix-3.2.7]# sed -i 's\ZABBIX_BIN="/usr/local/sbin/zabbix_server"\ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"\g' /etc/init.d/zabbix_server


9、啓動服務

[root@localhost ~]# /etc/init.d/zabbix_server start
Reloading systemd:                                         [  OK  ]
Starting zabbix_server (via systemctl):                    [  OK  ]
[root@localhost ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl):                    [  OK  ]
[root@localhost ~]# chkconfig zabbix_server on
[root@localhost ~]# chkconfig zabbix_agentd on

注:

當啓動zabbix服務端出現下面的問題時
[root@localhost zabbix-3.2.7]# /usr/local/zabbix/sbin/zabbix_server start
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object 
file: No such file or directory
解決方法:
[root@localhost zabbix-3.2.7]# find / -name libmysqlclient.so.20
/usr/local/src/mysql-5.7.20/libmysql/libmysqlclient.so.20
/usr/local/mysql/lib/libmysqlclient.so.20
[root@localhost zabbix-3.2.7]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
[root@localhost zabbix-3.2.7]# ldconfig
[root@localhost zabbix-3.2.7]# /etc/init.d/zabbix_server start
Starting zabbix_server (via systemctl):                    [  OK  ]


10、需要修改php.ini支持的大小,不然web界面會報錯

[root@localhost ~]# vim /usr/local/php/lib/php.ini
max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
post_max_size = 32M

##重啓服務
[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# service php-fpm restart


11、複製zabbix的PHP目錄到Nginx的目錄下


[root@localhost ~]# cd /usr/local/src/zabbix-3.2.7/frontends/
[root@localhost frontends]# cp -rf php /usr/local/nginx/html/zabbix
[root@localhost ~]# chown -R nginx:nginx /usr/local/nginx/html/zabbix


12、訪問web界面(http://192.168.15.11/zabbix),如圖5所示,一直默認下一步

blob.png

圖5


13、下面的選項全部都要爲OK,如圖6所示

blob.png

圖6

注:如果是yum安裝的則缺少什麼就直接使用yum安裝什麼,我的是編譯安裝的,所以解決方法如下

PHP LDAP      off      Warning
PHP gettext   off      Warning
ldap的解決方法:
首先查看源碼安裝的php模塊中是否有ldap.so
[root@localhost ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
如果有就直接在php.ini文件裏添加extension=ldap.so,如果沒有,則
[root@localhost ~]# cd /usr/local/src/php-5.5.38/ext/ldap
[root@localhost ldap]# /usr/local/php/bin/phpize
[root@localhost ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
如果出現configure: error: Cannot find ldap.h的報錯,則執行yum install openldap-devel openldap -y
如果出現configure: error: Cannot find ldap libraries in /usr/lib.的報錯,則執行cp -frp /usr/lib64/libldap* /usr/lib/
[root@localhost ldap]# make && make install
[root@localhost ldap]# make test
[root@localhost ldap]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ ##查看有沒有模塊
[root@localhost ldap]# vim /usr/local/php/lib/php.ini
extension=ldap.so
然後重啓服務

gettext的解決方法:
首先查看源碼安裝的php模塊中是否有gettext.so
[root@localhost ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

如果有就直接在php.ini文件裏添加extension=gettext.so,如果沒有,則
[root@localhost ~]# cd /usr/local/src/php-5.5.38/ext/gettext/
[root@localhost gettext]# /usr/local/php/bin/phpize
[root@localhost gettext]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@localhost gettext]# make && make install
[root@localhost gettext]# make test
[root@localhost gettext]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ ##查看有沒有模塊
[root@localhost gettext]# vim /usr/local/php/lib/php.ini
extension=gettext.so
然後重啓服務


14、連接數據庫的相關配置如圖7所示

blob.png

圖7

注:

(1)、在配置數據庫連接時,如果出現如圖8所示的問題,解決方法如下

捕獲.PNG

                                                  圖8

解決方法:


[root@localhost zabbix]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBSocket=/usr/local/mysql/mysql.sock
[root@localhost ~]# vim /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock

然後重啓服務即可


(2)、在下一步時,如果遇到如圖9所示的問題時,由於它提供瞭解決方法,所以我們按照它提供的解決方法來做就好了,把配置文件下載下來,然後上傳並保存爲/usr/local/nginx/html/zabbix/conf/zabbix.conf.php,最後刷新頁面,如圖10所示,則表示我們已經成功安裝好zabbix了。

1.PNG

                                                   圖9

2.PNG

                                                   圖10

15、登錄zabbix監控頁面,如圖11和圖12所示,用戶名默認爲Admin,密碼默認爲zabbix。

blob.png

圖11

blob.png

圖12


16、修改相關選項,使zabbix頁面支持中文

在我們的Windows電腦(C:\Windows\Fonts)裏,如圖13所示,隨便找一種字體上傳到網站目錄裏(/usr/local/nginx/html/zabbix/fonts/),並把原來的字體刪除掉,把剛上傳的字體名改爲原本字體的名字(即DejaVuSans.ttf),如圖14所示,即可支持中文。然後修改用戶的屬性,把語言改爲中文,如圖15所示,查看中文狀態下的頁面,如圖16所示。

blob.png

圖13

3.PNG

                               圖14

4.PNG

圖15

blob.png

圖16


至此,zabbix服務端就已經搭建完成了。

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