注意:此篇是在安裝好lnmp環境後才能部署的操做,因此,作以前準備好lnmp環境,或者能夠參考我作的lnmp環境,以後接着此篇開始安裝php
監控系統Zabbix-3.2.1的安裝 html
zabbix-server端的操做java
zabbix服務器端要提早安裝好LNMP環境(mysql,nginx,php5的安裝目錄均是/usr/local)mysql
建立Zabbix運行的用戶:nginx
# userd -g zabbix zabbix # useradd -g zabbix zabbix
安裝libcurl和net-snmp:web
# yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel
注:OpenIPMI-devel 和libssh2-devel軟件包使用centos在線yum軟件源安裝sql
安裝Fping:數據庫
# tar -xvf fping-3.12.tar.gz # cd fping-3.12/ # ./configure && make && make install # chown -R root:zabbix /usr/local/sbin/fping # chmod 4710 /usr/local/sbin/fping # ll /usr/local/sbin/fping -rws--x---. 1 root zabbix 93506 4月 27 09:26 /usr/local/sbin/fping
安裝Zabbix Server:json
# tar -xvf zabbix-3.2.1.tar.gz # cd zabbix-3.2.1/ # ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi
注意:編譯時最好帶上--enable-java這個參數,方便後續監控tomcat程序所用。vim
--with-ssh2 是不須要在客戶端服務器上面安裝Zabbix agent,若是須要使用ssh檢查,須要在編譯的時候加上這項,最低須要libssh2 1.0.0版本,須要安裝ssh開發包
--with-openipmi用戶能夠利用 IPMI 監視服務器的物理特徵,如溫度、電壓、電扇工做狀態、電源供應等。
若是添加了--enable-proxy, 那麼會生成get和sender兩條命令. 以下, 用於接收agent發生過來的信息, 同時發送給server.
# make && make install # ln -s /usr/local/zabbix/bin/* /usr/local/bin/ # ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
Zabbix Server配置與啓動
建立Zabbix數據庫和MySQL用戶:
mysql> create database zabbix character set utf8; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
導入Zabbix初始數據:
切換到zabbix的解壓目錄下
[root@localhost zabbix-3.2.1]# cd database/mysql/ [root@localhost mysql]# pwd /data/src/zabbix/zabbix-3.2.1/database/mysql [root@localhost mysql]# ls data.sql images.sql schema.sql
進行zabbix初始數據導入
[root@localhost mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < images.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@localhost mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < data.sql mysql: [Warning] Using a password on the command line interface can be insecure.
編輯/usr/local/zabbix/etc/zabbix_server.conf:
# vim /usr/local/zabbix/etc/zabbix_server.conf LogFile=/usr/local/zabbix/logs/zabbix_server.log PidFile=/usr/local/zabbix/logs/zabbix_server.pid DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix DBPort=3306 FpingLocation=/usr/local/sbin/fping
建立日誌目錄並設置屬主屬組
# mkdir -p /usr/local/zabbix/logs # chown -R zabbix:zabbix /usr/local/zabbix
啓動Zabbix Server:
# /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf /usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
解決方法:
在ld.so.conf中加入/usr/local/mysql/lib
# vim /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/local/mysql/lib /usr/local/lib
# ldconfig
再次執行zabbix_server啓動
# /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf # ps -ef f|grep zabbix_server root 23511 13356 0 10:04 pts/0 S+ 0:00 \_ grep --color=auto zabbix_server zabbix 23456 1 0 10:03 ? S 0:00 /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf zabbix 23457 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes] zabbix 23458 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: db watchdog [synced alerts config in 0.013618 sec, idle 60 sec] zabbix 23459 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: poller #1 [got 0 values in 0.000012 sec, idle 5 sec] zabbix 23460 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: poller #2 [got 0 values in 0.000009 sec, idle 5 sec] zabbix 23461 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: poller #3 [got 0 values in 0.000018 sec, idle 5 sec] zabbix 23462 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: poller #4 [got 0 values in 0.000012 sec, idle 5 sec] zabbix 23463 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: poller #5 [got 0 values in 0.000012 sec, idle 5 sec] zabbix 23464 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000012 sec, idle 5 sec] zabbix 23465 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection] zabbix 23466 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection] zabbix 23467 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection] zabbix 23468 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection] zabbix 23469 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection] zabbix 23470 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000003 sec, idle 5 sec] zabbix 23471 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.001350 sec, idle 30 sec] zabbix 23472 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: housekeeper [startup idle for 30 minutes] zabbix 23473 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000168 sec, 0 maintenances in 0.004566 sec, idle 30 sec] zabbix 23474 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: http poller #1 [got 0 values in 0.001100 sec, idle 5 sec] zabbix 23475 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.002285 sec, idle 60 sec] zabbix 23476 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000002 sec, idle 1 sec] zabbix 23477 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000001 sec, idle 1 sec] zabbix 23478 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000002 sec, idle 1 sec] zabbix 23479 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000002 sec, idle 1 sec] zabbix 23480 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.001507 sec, idle 3 sec] zabbix 23481 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000003 sec, idle 5 sec] zabbix 23482 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: self-monitoring [processed data in 0.000009 sec, idle 1 sec] zabbix 23483 23456 0 10:03 ? S 0:00 \_ /usr/local/zabbix/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000433 sec, idle 5 sec] [root@localhost mysql]#
添加開機啓動腳本
[root@localhost zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server [root@localhost zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd chmod +x /etc/rc.d/init.d/zabbix_server chmod +x /etc/rc.d/init.d/zabbix_agentd # chkconfig --add zabbix_server # chkconfig --add zabbix_agentd # chkconfig zabbix_server on chkconfig zabbix_agentd on
修改zabbix開機啓動腳本中的zabbix安裝目錄
vim /etc/rc.d/init.d/zabbix_server #編輯服務端配置文件
# vim /etc/rc.d/init.d/zabbix_server
修改下面兩項
BASEDIR=/usr/local/zabbix
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #pid文件路徑
vim /etc/rc.d/init.d/zabbix_agentd #編輯客戶端配置文件
# vim /etc/rc.d/init.d/zabbix_agentd 修改下面兩項 BASEDIR=/usr/local/zabbix PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid
# systemctl daemon-reload # /etc/init.d/zabbix_server stop Stopping zabbix_server (via systemctl): [ 肯定 ] # /etc/init.d/zabbix_server start Starting zabbix_server (via systemctl): [ 肯定 ] # netstat -tanpl |grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 27324/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 23456/zabbix_server
此時關閉防火牆或者作防火牆規則
配置zabbix web頁面
在安裝目錄將frontends拷貝到指定的web root:
# cp -r frontends/php/ /usr/local/nginx1.10/html/zabbix # chown -R www:www /usr/local/nginx1.10/html/zabbix
注:/usr/local/nginx/html爲Nginx默認站點目錄 www爲Nginx運行帳戶
注:PHP須要至少開啓擴展:
gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
以下,查看是否包括了上面所提到的擴展模塊
# /usr/local/php5.6/bin/php -m [PHP Modules] bcmath bz2 Core ctype curl date dom ereg fileinfo filter ftp gd gettext hash iconv json libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_sqlite Phar posix Reflection session shmop SimpleXML soap sockets SPL sqlite3 standard sysvsem tokenizer xml xmlreader xmlrpc xmlwriter zip zlib
安裝Web
訪問Web界面http://192.168.92.129/zabbix,進行相關web配置,配置完成後使用默認用戶admin(密碼:zabbix)登錄便可
進入ZABBIX WEB安裝畫面
進入ZABBIX檢測畫面
對數據庫進行設置,這裏若是數據庫在本地的話端口可使用0
點擊Next step 一下步進行zabbix server 細節的設置 這一步能夠默認
點擊安裝,安裝完成後 若是沒有錯誤就會進入完成畫面
完成畫面有設置文件放在服務器的位置,請記下來
點擊Finish 完成
使用Admin 用默認密碼 zabbix 登陸
登陸後畫面以下
至此 ZABBIX的基礎安裝完成
注:
在安裝數據庫時已經將zabbix庫設置了utf-8字符
首先肯定zabbix開啓了中文支持功能:
登陸到zabbix服務器的數據目錄下(前面部署的zabbix數據目錄是/usr/local/nginx1.10/html/zabbix/),打開 locales.inc.php文件
# cd /usr/local/nginx1.10/html/zabbix/include/ [root@localhost include]# ls acknow.inc.php events.inc.php js.inc.php screens.inc.php actions.inc.php forms.inc.php locales.inc.php services.inc.php audit.inc.php func.inc.php maintenances.inc.php sounds.inc.php blocks.inc.php gettextwrapper.inc.php maps.inc.php translateDefines.inc.php classes graphs.inc.php media.inc.php triggers.inc.php config.inc.php groups.inc.php menu.inc.php users.inc.php correlation.inc.php hosts.inc.php page_footer.php validate.inc.php db.inc.php html.inc.php page_header.php valuemap.inc.php debug.inc.php httptest.inc.php perm.inc.php views defines.inc.php ident.inc.php profiles.inc.php discovery.inc.php images.inc.php regexp.inc.php draw.inc.php items.inc.php schema.inc.php [root@localhost include]# vim locales.inc.php function getLocales() { return [ 'en_GB' => ['name' => _('English (en_GB)'), 'display' => true], 'en_US' => ['name' => _('English (en_US)'), 'display' => true], 'bg_BG' => ['name' => _('Bulgarian (bg_BG)'), 'display' => false], 'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true], 'zh_TW' => ['name' => _('Chinese (zh_TW)'), 'display' => false], 'cs_CZ' => ['name' => _('Czech (cs_CZ)'), 'display' => true], 'nl_NL' => ['name' => _('Dutch (nl_NL)'), 'display' => false], 'fi_FI' => ['name' => _('Finnish (fi_FI)'), 'display' => false], 'fr_FR' => ['name' => _('French (fr_FR)'), 'display' => true], 'ka_GE' => ['name' => _('Georgian (ka_GE)'), 'display' => false],
登錄zabbix後,點擊右上角的「用戶」圖標,將語言設置爲「中文」:
按照如圖選擇Chinese(zh_CN),點擊update:
以下圖,此時能夠顯示中文了
解決zabbix繪圖中出現中文亂碼問題:
a.從windows下控制面板->字體->選擇一種中文字庫例如「宋體」
b.把它拷貝到zabbix的web端的fonts目錄下例如:/usr/local/nginx1.10/html/zabbix/fonts/,而且把TTF後綴改成ttf
# cp SIMSUN.TTC /usr/local/nginx1.10/html/zabbix/fonts/ # mv SIMSUN.TTC SIMSUN.ttf # ls DejaVuSans.ttf SIMSUN.ttf # pwd /usr/local/nginx1.10/html/zabbix/fonts
而且將以前的字體文件DejaVuSans.ttf移動到別處
c.而後,接着修改代碼include/defines.inc.php文件中的字體配置,將裏面關於字體設置從DejaVuSans替換成SIMSUN
# vim /usr/local/nginx1.10/html/zabbix/include/defines.inc.php 會修改兩處 vim替換技巧 「:%s/DejaVuSans/SIMSUN」
其中:SIMSUN爲字庫名字,不包含ttf後綴
這樣,修改後,zabbix監控圖形中的中文字就不會出現亂碼了
第二部分,安裝zabbix客戶端
既然要監控咱們就要添加要監控的主機,在添加主機以前咱們首先要在被檢測主機上面安裝agent,安裝agent比較簡單,咱們也是按照安裝server的流程,下載軟件包,在編譯的時候,咱們只選擇agent
192.168.92.130做爲zabbix的被監控端,提供web和mysql應用
安裝Zabbix,配置Zabbix agent:
在192.168.92.130上配置以下:
# groupadd zabbix # useradd -g zabbix zabbix
# yum -y install gcc cc cl # yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel
# tar -xvf zabbix-3.2.1.tar.gz # cd zabbix-3.2.1/
# ./configure --prefix=/data/soft/zabbix --enable-agent
# make && make install
# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
# mkdir -p /usr/local/zabbix/logs
# chown -R zabbix:zabbix /usr/local/zabbix/
配置開機自動啓動:
# chkconfig --add zabbix_agentd # chkconfig zabbix_agentd on
修改zabbix開機啓動腳本中的zabbix安裝目錄
# vim /etc/rc.d/init.d/zabbix_agentd 修改下面兩處 BASEDIR=/usr/local/zabbix/ PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid
# systemctl daemon-reload
編輯zabbix_agentd.conf
# vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid LogFile=/usr/local/zabbix/logs/zabbix_agentd.log Server=192.168..92.129 ServerActive=192.168.92.129 Hostname=192.168.92.130 Timeout=15 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
注:
其中Server和ServerActive都指定zabbixserver的IP地址,不一樣的是,前者是被動後者是主動。也就是說Server這個配置是用來容許192.168.31.225這個ip來我這取數據。而serverActive的192.168.31.225的意思是,客戶端主動提交數據給他。
Hostname=XXX,這個定義的名字必須和web頁面裏面host的名字同樣。
啓動zabbix_agentd:
# /etc/init.d/zabbix_agentd start Starting zabbix_agentd (via systemctl): [ 肯定 ] # netstat -anpt | grep zabbix_agentd tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 60832/zabbix_agentd
zabbix客戶端要麼關閉防火牆,要麼作防火牆規則
到此,zabbix3.2.1監控系統的基本環境安裝完成。
實現zabbix添加監測項
添加對Linux主機的監控
在瀏覽器中打開:http://192.168.92.129/zabbix
登陸zabbix,先在「配置」-「主機」裏添加主機監控,監控os資源:內存,cpu,io,負載,帶寬等.
登陸zabbix,先在「配置」-「主機」裏單擊」建立主機」
注意:下圖中的「主機名稱」要和zabbix_agentd.conf文件中設置的「Hostname」後面的名稱一致!
主機名稱:192.168.92.130
羣組:Linux servers
agent代理程序接口ip:192.168.92.130
已啓用:勾選
其它選項默認便可
切換到模板
未完,待續。。。。。。。。。。。。。。。。。。。