Zabbix服務安裝部署及監控配置

 

Zabbix服務安裝部署及監控配置php

1.1 Zabbix服務介紹

官方網站:http://www.zabbix.com/html

The Enterprise-class Monitoring Solution for Everyone前端

企業級監控解決方案mysql

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

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

1.1 Zabbix主要特色

安裝與配置簡單,學習成本地,支持多語言(包括中文)免費開源自動發現服務器與網絡設備分佈式監視以及web集中管理功能,能夠無agent監視用戶安全認證和柔軟的受權方式經過web界面設置或查看監控結果email等通知功能git

1.2 Zabbix主要功能

監控CPU負載、內存使用、磁盤使用、網絡狀態、端口監視、日誌監視、插件開發自定義github

1.3 Zabbix運行機制

Zabbix Server 和Zabbix Agentweb

Zabbix server 能夠經過SNMP,Zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集功能,能夠在運行Linux,Solaris,HP-UX,FreeBSD,OpenBSD,OXX,Windows多平臺。sql

Zabbix Agent安裝在須要被監控的目標服務器上,主要完整對硬件信息與操做系統有關的內存,CPU等信息收集。

Zabbix Server能夠單獨監視遠程服務器的服務狀態,同時也能夠與Zabbix Agent結合。能夠與輪詢Zabbix Agent主動接受監視數據(trapping傳遞方式),同時還能夠被動接受Zabbix Agent發送的數據。

Zabbix運行過程圖

 

Zabbix支持多種網絡方式下的監控,能夠經過分佈式的部署和安裝監控代理Zabbix,經過C/S模式採集數據,經過B/S模式在Web端展現和配置!Agent監控端口10050

服務端安裝Zabbix Server和Zabbix Agent兩個服務,客戶端只安裝Zabbix Agent一個服務,監控原理就是Zabbix Agent服務將從系統中獲取的相關數據傳送給Zabbix Server,而後Zabbix Server服務獎數據分析以後以PHP頁面展現出來!

1.2 Zabbix Server安裝部署

整個環境所需安裝的軟件包

php-5.6.13

libmcrypt-2.5.8

mysql-5.6.26

nginx-1.8.0

zabbix-3.4.3

咱們須要先構建LNMP的環境,由於Zabbix經過PHP頁面展現(也可使用LAMP環境)

搭建LNMP的環境,若是有這個環境能夠忽略

1.2.1 建立導入zabbix數據庫

Zabbix須要數據庫的支持,而Zabbix已經自帶了數據庫結構,images數據庫和表數據等相關內容

建立Zabbix使用的數據庫

[root@centos21 ~]# mysql -uroot -p123456

mysql> create database zabbix;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix.* to zabbix@ '%' identified by 'zabbix'; #受權zabbix用戶

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[root@centos21 ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/

[root@centos21 ~]# cd /usr/local/src/zabbix-3.4.3/

[root@centos21 zabbix-3.4.3]# ls

aclocal.m4  compile       configure.ac  include      Makefile.in  README

AUTHORS     conf          COPYING       INSTALL      man          sass

bin         config.guess  database      install-sh   misc         src

build       config.sub    depcomp       m4           missing      upgrades

ChangeLog   configure     frontends     Makefile.am  NEWS

導入數據庫,注意順序,不然會報錯

[root@centos21 zabbix-3.4.3]# ls database/mysql/

data.sql  images.sql  schema.sql

[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

Warning: Using a password on the command line interface can be insecure.

[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

Warning: Using a password on the command line interface can be insecure.

[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

Warning: Using a password on the command line interface can be insecure.

(警告:在命令行界面上使用密碼多是不安全的。)

若是在作分佈式的環境中,Proxy服務器只須要一個數據庫schema,代理着agent不須要數據庫!Server必須三個數據庫同時擁有

Zabbix同時支持不少類型數據庫,能夠經過查閱幫助:

https://www.zabbix.com/documentation/2.4/manual/appendix/install/db_scripts

1.2.2 編譯安裝zabbix

[root@centos21 zabbix-3.4.3]# groupadd zabbix

[root@centos21 zabbix-3.4.3]# useradd -s /sbin/nologin -g zabbix zabbix          #建立用戶

[root@centos21 zabbix-3.4.3]# yum -y install net-snmp-devel  libevent libevent-devel      #解決依賴關係

[root@centos21 zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

參數說明:

--prefix=  制定路徑

--enable-server    #Server支持

--enable-agent     #支持Zabbix客戶端

--with-mysql       #指定MySQL庫能夠選擇自定義路徑mysql_config,mysql_config是命令,用於編譯mysql客戶端程序

--with-net-snmp    #支持snmp協議,須要安裝net-snmp-devel包

--with-libcurl #支持CURL功能,libcurl主要功能就是用不一樣的協議鏈接不一樣的服務器

libcurl    #當前支持的協議有http,https,ftp,gopher,telent,dict,file,和ldap協議

其餘參數:

--enable-proxy     #指的是支持zabbix代理服務器,zabbix proxy是一個監控代理服務器,它收集到監控數據,選存放在緩衝區,保存的時間能夠經過配置文件設定,而後在傳送的zabbix server。監控代理服務器須要一個獨立的數據庫。

用zabbix proxy的好處:進程監控,當監控文件遏制通信不方便的時候,當通信上千臺設備的時候,使用zabbix_proxy能夠簡化維護分佈式監控,下降zabbix server的負載

 

看到以下信息,預編譯就沒有什麼問題

***********************************************************

*            Now run 'make install'                          *

*                                                                *

*            Thank you for using Zabbix!                     *

*              <http://www.zabbix.com>                        *

***********************************************************

 

[root@centos21 zabbix-3.4.3]# echo $?

0

[root@centos21 zabbix-3.4.3]# make install

#按上面的提示,沒有make步驟,直接make install

[root@centos21 zabbix-3.4.3]# echo $?    

0

[root@centos21 zabbix-3.4.3]# ls /usr/local/zabbix/   #編譯成功後,產生以下目錄

bin  etc  lib  sbin  share

1.2.3 配置zabbix Server

[root@centos21 ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

DBHost=localhost       #默認註釋掉了,直接取消註釋便可

DBName=zabbix         #數據庫用戶,咱們受權的用戶也是zabbix

DBUser=zabbix         #默認是root,咱們受權的用戶是zabbix

DBPassword=zabbix      #密碼咱們受權的也是zabbix

監控Zabbix Server自己

監控自己,意思是自己做爲服務器以外,本身作本身的客戶端,也要使用agentd這個代理者配置文件中,有agentd和agent兩個配置文件,前者是守護進程,後者依賴xinetd

[root@centos21 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

Server=127.0.0.1          #默認監控服務器本身,這三行不用改

ServerActive=127.0.0.1

Hostname=Zabbix server

UnsafeUserParameters=1     #容許全部的字符是在用戶定義的參數,參數傳遞,也就是支持自定義腳本。

DBSocket=/tmp/mysql.sock   #這一行也要啓用,要否則查看不到端口號

其中 Server和ServerActive都制定zabbix server的IP地址,不一樣的是,前者是被動後者是主動。也就是說前者容許127.0.0.1這個IP來我這取數據。而ServerActive的127.0.0.1的意思是,客戶端主動提交數據給他。

1.2.4 啓動服務

若是zabbix用戶不存在,將以root運行,新建以後,若是zabbix存在,那麼直接能夠用zabbix運行。

直接運行

[root@centos21 ~]# /usr/local/zabbix/sbin/zabbix_server    #本實驗啓動正常

 

sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory  #若是啓動報錯解決

[root@centos21 zabbix]# vim /etc/ld.so.conf        #解決庫文件找不到

include ld.so.conf.d/*.conf

/usr/local/mysql/lib/                 #根據實際路徑添加此行

[root@centos21 zabbix]# ldconfig       #使庫文件生效

[root@centos21 ~]# echo  /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local    #開機啓動

[root@centos21 ~]# netstat -antup|grep zabbix

tcp      0    0 0.0.0.0:10051     0.0.0.0:*     LISTEN     81259/zabbix_server

或者經過啓動腳本啓動zabbix

zabbix默認有部分啓動腳本,若是你本身也能夠經過腳本的方式來實現,可使用他的模板來實現,腳本在源碼目錄的misc/init.d/下面(使用 fedora 下面的core便可,也可使用fedroa core5的腳本都可)

[root@centos21 ~]# cd /usr/local/src/zabbix-3.4.3/misc/init.d/

[root@centos21 init.d]# ls

aix  debian  fedora  freebsd  gentoo  README  suse  tru64  ubuntu

[root@centos21 init.d]# cp fedora/core/* /etc/init.d/

[root@centos21 init.d]# vim /etc/init.d/zabbix_server

        BASEDIR=/usr/local/zabbix      #找到此行,修改路徑

[root@centos21 init.d]# vim /etc/init.d/zabbix_agentd

        BASEDIR=/usr/local/zabbix      #找到此行,修改路徑

[root@centos21 ~]# chkconfig --add zabbix_server

[root@centos21 ~]# chkconfig zabbix_server on

[root@centos21 ~]# chkconfig --add zabbix_agentd

[root@centos21 ~]# chkconfig zabbix_agentd on

1.2.5 編輯PHP頁面控制文件

配置默認文件沒有寫入到咱們的Nagios的配置文件中,也就是不能加載到咱們的zabbix頁面目錄

[root@centos21 ~]# cp -r /usr/local/src/zabbix-3.4.3/frontends/php/* /usr/local/nginx/html/

[root@centos21 ~]# vim /usr/local/nginx/conf/nginx.conf

location / {

root   html;

index  index.php index.html index.htm;   #找到此行內容,添加index.php必須放在前面

    }

重啓nginx服務和php-fpm服務

[root@centos21 ~]# nginx -s reload

[root@centos21 ~]# /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm  done

 

開始檢查環境,如圖發現不少環境不符合條件

 

編輯修改php.ini文件,修改環境

[root@centos21 ~]# vim /usr/local/php/php.ini     #根據上面提示信息修改

post_max_size = 16M           #修改

max_execution_time = 300       #修改

max_input_time = 300          #修改

date.timezone = Asia/Shanghai  #去掉此行註釋,修改成亞洲上海

always_populate_raw_post_data = -1       #此行內容沒有

mysqli.default_socket = /tmp/mysql.sock    #指定php鏈接mysql的sock路徑

 

[root@centos21 ~]# /etc/init.d/php-fpm restart     #重啓php-fpm刷新頁面

Gracefully shutting down php-fpm . done

Starting php-fpm  done

提示沒有安裝LDAP模塊,爲了避免影響後面的功能,如今把這個模塊從新編譯安裝進去:

能夠單獨把這個模塊編譯安裝出來:   #這個方法有問題

如下的解決方法,在公司機器上使用能夠

[root@centos21 ~]# cd /usr/local/src/php-7.0.18/ext/ldap/

[root@centos21 ldap]# ls

config.m4  config.w32  CREDITS  gettext.c  gettext.lo  gettext.o  php_gettext.h  tests

[root@centos21 ldap]# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version:         20151012

Zend Module Api No:      20151012

Zend Extension Api No:   320151012

[root@centos21 ldap]# yum -y install openldap-devel openldap

[root@centos21 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap

[root@centos21 ldap]# cp -frp /usr/lib64/libldap* /usr/lib/

[root@centos21 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap   

[root@centos21 ldap]# echo $?

0

[root@centos21 ldap]# make && make install

[root@centos21 ldap]# echo $?

0

[root@centos21 ldap]# vim /usr/local/php/php.ini

extension="ldap.so"                                              添加到最後便可

[root@centos21 ldap]# /etc/init.d/php-fpm restart      #啓動成功

Gracefully shutting down php-fpm . done

Gracefully shutting down php-fpm . done

Starting php-fpm  done

若是寫入失敗,直接download這個配置文件,而後上傳上去

[root@centos21 ~]# cd /usr/local/nginx/html/conf/

[root@centos21 conf]# ls

maintenance.inc.php  zabbix.conf.php.example   #這個文件默認存在,只須要重命名

[root@centos21 conf]# mv /root/zabbix.conf.php .  #這裏使用下載的文件

 

用戶名:admin密碼:zabbix

 

 

[root@centos21 ~]# /etc/init.d/zabbix_agentd start

Starting zabbix_agentd (via systemctl):                    [  OK  ]

[root@centos21 ~]# chkconfig --add zabbix_agentd

[root@centos21 ~]# chkconfig zabbix_agentd on

1.2.6 圖表字符亂碼的解決方法

 

在window下面找一個ttf的字體文件C:\windows\Fonts

[root@centos21 ~]# mv msyh.ttf DejaVuSans.ttf         #上傳重命名

[root@centos21 ~]# cd /usr/local/nginx/html/fonts/

[root@centos21 fonts]# ls

DejaVuSans.ttf

[root@centos21 fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak

[root@centos21 fonts]# mv /root/DejaVuSans.ttf .

[root@centos21 fonts]# ls

DejaVuSans.ttf  DejaVuSans.ttf.bak

 

1.2.7 Zabbix啓動服務總結

Nginx 服務啓動

Php-fpm 服務啓動

MySQL  服務器啓動

測試LNMP環境正常

導入數據庫、受權、源碼安裝zabbix

Zabbix_server 服務啓動

1.3 配置監控遠程主機

1.3.1 安裝Agent

[root@centos26 ~]# cd /etc/yum.repos.d/

[root@centos26 yum.repos.d]# ls

back  CentOS-Media.repo

[root@centos26 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@centos26 yum.repos.d]# wget http://mirrors.aliyun.com/repo/epel.repo

[root@centos26 yum.repos.d]# ls

back  Centos-7.repo  CentOS-Media.repo  epel.repo

#這裏使用阿里的基本源和epel源,也可使用下面的epel源

yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

[root@centos26 yum.repos.d]# yum clean all;yum makecache

[root@centos26 ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI        #解決依賴關係

[root@centos26 ~]# useradd -M -s /sbin/nologin zabbix     #建立用戶

[root@centos26 ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/

[root@centos26 ~]# cd /usr/local/src/zabbix-3.4.3/

[root@centos26 zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-agent

***********************************************************

*            Now run 'make install'                          *

*                                                                *

*            Thank you for using Zabbix!                    *

*              <http://www.zabbix.com>                          *

***********************************************************

[root@centos26 zabbix-3.4.3]# make install

[root@centos26 zabbix-3.4.3]# echo $?

0

[root@centos26 zabbix-3.4.3]# cd

[root@centos26 ~]# grep zabbix /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

1.3.2 啓動agent

[root@centos26 ~]# /usr/local/zabbix/sbin/zabbix_agentd    #啓動agent

[root@centos26 ~]# netstat -antup|grep zabbix

tcp     0    0 0.0.0.0:10050      0.0.0.0:*      LISTEN    22038/zabbix_agentd

也可使用系統啓動腳原本啓動

配置Agent開機啓動

[root@centos26 ~]# cp /usr/local/src/zabbix-3.4.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/  #複製腳本到/etc/init.d/下

[root@centos26 ~]# vim /etc/init.d/zabbix_agentd      #編輯腳本路徑

ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"     #修改此行

[root@centos26 ~]# chkconfig --add zabbix_agentd

[root@centos26 ~]# chkconfig zabbix_agentd on

拓展:core和core5裏面的文件均可以實現zabbix代理啓動,core裏面是測試版本,core5是穩定版本

1.3.3 修改Agentd的配置文件

[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf    #客戶端操做

Server=192.168.3.21           #zabbix server地址,能夠多個,用,隔開

ServerActive=192.168.3.21      #主動檢查的意思,主動檢查主機數據的數據發送給zabbix server

Hostname=centos26.cn

UnsafeUserParameters=1        #啓用

1.3.4 重啓服務

[root@centos26 ~]# /etc/init.d/zabbix_agentd restart

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

[root@centos26 ~]# netstat -antup|grep zabbix

tcp     0    0 0.0.0.0:10050     0.0.0.0:*       LISTEN    22038/zabbix_agentd

1.3.5 Server端測試通信

[root@centos21 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.26 -p10050 -k system.uname

zabbix_get [94964]: Check access restrictions in Zabbix agent configuration

[root@centos26 ~]# /etc/init.d/zabbix_agentd restart      #再次重啓服務

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

能夠獲取對方系統版本則證實沒有問題

[root@centos21 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.26 -p10050 -k system.uname

Linux centos26.cn 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64

1.3.6 服務端配置管理腳本

[root@centos21 ~]# ls /etc/init.d/zabbix_*

/etc/init.d/zabbix_agentd  /etc/init.d/zabbix_server   #這個文件以前已經複製過來,若是沒有能夠以下從新複製,並修改配置文件

[root@centos21 ~]# cp /usr/local/src/zabbix-3.4.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

[root@centos21 ~]# vim /etc/init.d/zabbix_agentd

        BASEDIR=/usr/local/zabbix  #修改成zabbix的安裝位置

[root@centos21 ~]# chkconfig --add zabbix_agentd

[root@centos21 ~]# chkconfig zabbix_agentd on

[root@centos21 ~]# /etc/init.d/zabbix_agentd restart      #重啓服務

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

[root@centos21 ~]# netstat -antup|grep zabbix     #二者之間端口不同

tcp     0    0 0.0.0.0:10050      0.0.0.0:*       LISTEN   95839/zabbix_agentd

tcp     0    0 0.0.0.0:10051      0.0.0.0:*       LISTEN   81259/zabbix_server

監控本身使用10050端口,監控對方使用的是10051端口

1.3.7 添加Host主機

選擇模板

刷新頁面

 

============經過以上步驟成功添加一臺遠程監控主機===========

1.3.8 添加監控選項

經過比較zabbix servers羣組和Linux servers羣組,能夠發現,默認的配置中Linux servers監控項比較少,下面手動添加監控:

篩選無觸發器,出來不少監控項,默認都是啓用狀態,咱們無需再次啓動,下面修改自動發現的時間

再次返回首頁,而能夠看到

1.3.9 設置Triger觸發器值

更改一下自動發現更新時間,將原來的1h改爲10(秒)

更新數據

===================以上是觸發器值的設置===================

自定義繪圖顏色:

找到主機對應的模塊-----修改模板對應的圖形顏色

根據須要修改每一項的顯示顏色

1.3.10 總結zabbix的文件

zabbix_agent.conf  是用超級服務(xinetd)的方式來啓動的,被動檢查,只有Server說檢查的時候才檢查

zabbix_agentd.conf 是以獨立進程的方式來啓動的,通常使用這個作配置,自動檢查,自動提交 zabbix_server.conf Server

啓動配置文件,只有一個

zabbix_get是zabbix中的一個程序,用於Zabbix-Server到Zabbix-Agent的數據獲取,一般能夠用來檢測驗證Agent的配置是否正確。它的使用方法以下

zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>

-h:遠程Zabbix-Agent的IP地址或者是主機名

-p:遠程Zabbix-Agent的端口。

-I:本機出去的IP地址,用於一臺機器中有多個網卡的狀況。

-k:獲取遠程Zabbix-Agent數據所使用的Key。

[expmple@~]# zabbix_get -s 192.168.0.64 -k system.uname

zabbix_sender與get相反,用來發送Zabbix服務器處理性能數據。該工具一般用戶長時間運行的用戶腳本,用於頂起發送可用性和性能數據。使用方法以下

zabbix_sender [-Vhv] {[-zpsI] -ko | [-apI] -T -I <file> -r} [-c <file>]

參數說明:

-c --config <file> 配置文件絕對路徑

-z --zabbix-server <server> zabbix server 的IP地址

-p --port <server port> zabbix server 端口.默認 10051

-s --host <hostname> 主機名, zabbix裏面配置的主機名(不是服務器的hostname),不能使用

IP地址

-I --source-address <IP address> 源IP

-k --key <key> 監控項的key

-o --value <key value> key值

-i --input-file <input file> 從文件裏面讀取hostname、key、value一行爲一條數據,使用空格做爲分割符,若是主機名帶空格,那麼請使用雙引號括起來

-T --with-timestamps 一行一條數據,空格做爲分隔符:<hostname><key><timestamp> <value>,配合 --input-file option,timestamp爲nuix時間戳

-r --real-time 將數據實時提交給服務器

-v --verbose詳細模式,-vv更詳細

1.4 配置Zabbix監控Apache服務

http://www.zabbix.org/wiki/Main_Page

https://github.com/zabbix/zabbix-community-repos        #各類模板

http://www.douglas.wiki.br/doku.php?id=en:installing_and_configuring_zabbix

下載腳本wget https://github.com/lorf/zapache/archive/master.zip

 

[root@centos26 ~]# yum -y install httpd

[root@centos26 ~]# systemctl start httpd

1.4.1 啓用apache服務器狀態,開啓apache的server-status

[root@centos26 ~]# vim /etc/httpd/conf/httpd.conf

ExtendedStatus On

<location /server-status>

        SetHandler server-status

        Order allow,deny

        Allow from 127.0.0.1 192.168.3.0/24

</location>

[root@centos26 ~]# systemctl restart httpd         #重啓後測試

1.4.2 解壓壓縮包

[root@centos26 ~]# unzip master.zip        #解壓壓縮包

Archive:  master.zip

24a764b2e224f9b8d0a6bc94dcadd7568b2fe650

   creating: zapache-master/

  inflating: zapache-master/README.md 

  inflating: zapache-master/httpd-server-status.conf.sample 

  inflating: zapache-master/userparameter_zapache.conf.sample 

  inflating: zapache-master/zapache 

  inflating: zapache-master/zapache-template-active.xml 

  inflating: zapache-master/zapache-template.xml 

[root@centos26 zapache-master]# ls

httpd-server-status.conf.sample    zapache

README.md                          zapache-template-active.xml

userparameter_zapache.conf.sample  zapache-template.xml

說明:

httpd-server-status.conf.sample #是用於配置server-status的上一步驟已經驗證過了

zapache-template-active.xml zapache-template.xml   #模板

userparameter_zapache.conf.sample  zapache        #關鍵的文件

將解壓的幾個文件放到相應的目錄

[root@centos26 zapache-master]# cp zapache /usr/local/bin/

[root@centos26 zapache-master]# cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@centos26 zapache-master]# cd !$

cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@centos26 zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf

[root@centos26 zabbix_agentd.conf.d]# vim userparameter_zapache.conf

#

# This is a sample zabbix_agentd config file.

# Put it to /etc/zabbix_agentd.conf.d or otherwise integrate into agent config.

# Edit to your needs.

#

UserParameter=zapache[*],/var/lib/zabbixsrv/externalscripts/zapache \$1 

#修改成UserParameter=zapache[*],/usr/local/bin/zapache \$1   

查看是否有執行權限

[root@centos26 zabbix_agentd.conf.d]# ll /usr/local/bin/zapache

-rwxr-xr-x 1 root root 6110 May 28 05:29 /usr/local/bin/zapache

若是沒有執行權限添加執行權限

修改zabbix-agentd.conf

[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

1.4.3 前端頁面操做

導入模板

關聯模板

配置-主機(選擇apache客戶端)

模板-選擇(選擇上面導入的模板-添加-更新

查看最新數據,篩選Apache

 

能夠選擇生產圖形

 

1.5 配置zabbix監控MySQL

和監控咱們的apache同樣,尋找合適的腳本,不過,腳本不是那麼容易就能夠找到的!要麼本身動手去寫,要麼本身找到的拿來修改,都是須要花費代價的!ZABBIX默認提供了MySQL的監控模板

數據庫用戶受權

[root@centos26 ~]# mysql -uroot -p123456

mysql> grant usage on *.* to zabbix@'%' identified by '123456';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec

mysql> quit

Bye

[root@centos26 ~]# cp /usr/local/src/zabbix-3.4.3/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

# Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/     #將這一行註釋

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf  #去掉註釋,修改路徑同時開啓會報錯

創建數據庫和zabbix的連接信息

[root@centos26 ~]# ls /var/lib/mysql/mysql.sock

/var/lib/mysql/mysql.sock

[root@centos26 ~]# vim /usr/local/zabbix/etc/.my.cnf

#Zabbix Agent

[mysql]

host=localhost

user=zabbix

password=123456

socket= /var/lib/mysql/mysql.sock  #這個路徑根據本身的實際狀況填寫,下面也同樣

[mysqladmin]

host=localhost

user=zabbix

password=123456

socket= /var/lib/mysql/mysql.sock

[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf

將 HOME=/var/lib/zabbix 所有改爲 HOME=/usr/local/zabbix/etc/

 

# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.(提示目錄下必須有.my.cnf)

 

[root@centos26 ~]# /etc/init.d/zabbix_agentd restart

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

模板應用主機:

1.6 Zabbix郵件報警配置:

郵件服務可使用系統自帶的郵件服務來發送郵件或者使用其餘郵件服務調用第三方郵件來發送警告郵件

這裏演示如何調用第三方郵件服務來發送郵件:

第一步:首先安裝mailx組件並配置好可以經過三方郵件發送郵件

[root@centos26 ~]# yum -y install mailx

而後編輯mailx的配置文件

[root@centos21 ~]# vim /etc/mail.rc

set from=xxxxxxxxx@sina.com

set smtp=smtp.sina.com

set smtp-auth-user=xxxxxxxx@sina.com   #郵箱用戶

set smtp-auth-password=密碼   

set smtp-auth=login

本實驗中使用的是新浪郵箱,新浪不須要受權碼,直接使用密碼登錄

保存退出後測試郵件是否可以正常發送出去

echo "zabbix test mail" |mailx -s "zabbix" xxxxxxx@qq.com

在zabbix服務端寫郵件發送腳本:

在zabbix服務端寫郵件發送腳本:

[root@centos21 ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/

[root@centos21 alertscripts]# vim sendmail.sh

#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

[root@centos21 alertscripts]# chown zabbix.zabbix sendmail.sh

[root@centos21 alertscripts]# chmod +x sendmail.sh

 

修改主配置文件,讓服務器讀取到這個腳本:

[root@centos21 alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf

# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/usr/local/zabbix/alertscripts       #複製上面一行修改路徑

測試發送腳本

[root@centos21 ~]# /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh xxxxxxxx@qq.com "測試郵標題" "測試郵件內容"

[root@centos21 ~]# chmod 777 /tmp/sendmail.log

頁面添加:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

不少人安裝zabbix 3.0以後,寫的腳本一直髮信不成功,手動執行時能夠的。

這是由於zabbix3.0以後,能夠自定義參數了。因此不寫參數,它是不會傳參數的。

在2.x版本不存在這個問題,默認會傳3個參數。

內容以下

動做

名稱:auto-Email

 

操做

默認接收人:故障{TRIGGER.STATUS},服務器:{HOSTNAME1}發生:    {TRIGGER.NAME}故障!

 

默認信息:

告警主機:{HOSTNAME1}

告警時間:{EVENT.DATE} {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

 

恢復操做

默認接收人:已恢復!{TRIGGER.STATUS}, 服務器:{HOSTNAME1}: {TRIGGER.NAME}

恢復信息:

告警主機:{HOSTNAME1}

告警時間:{EVENT.DATE} {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警項目:{TRIGGER.KEY1}

問題詳情:{ITEM.NAME}:{ITEM.VALUE}

當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

確認信息:

默認接收人:Acknowledged: {TRIGGER.NAME}

默認信息:

{USER.FULLNAME} acknowledged problem at {ACK.DATE} {ACK.TIME} with the following message:

{ACK.MESSAGE}

 

Current problem status is {EVENT.STATUS}

 

 

測試,關閉 zabbix 客戶端服務 zabbix_agentd    

 

[root@centos26 ~]# systemctl stop httpd       #關閉服務

[root@centos26 ~]# systemctl start httpd       #重啓服務

 

1.7 配置zabbix自動發現並監控(Windows爲案例)

首先下載安裝Windows端agent

必定要以管理員身份來運行CMD,不然安裝不了

 

C:\Windows\system32>cd C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64    #切換到這個目錄也就是文件存在目錄

 

C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>zabbix_agentd.exe -c

 C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -i          #開始安裝

zabbix_agentd.exe [2920]: service [Zabbix Agent] installed successfully

zabbix_agentd.exe [2920]: event source [Zabbix Agent] installed successfully

 

C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>zabbix_agentd.exe -c C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -s           #啓動

zabbix_agentd.exe [2264]: service [Zabbix Agent] started successfully

 

C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>

 

找到conf下的配置文件 zabbix_agentd.win.conf ,修改LogFile、Server、、ServerActive、Hostname這四個參數。具體配置以下:
LogFile=c:\zabbix_agentd.log
Server=10.10.10.71
Hostname=download
ServerActive=10.10.10.71   #zabbix server地址
其中logfile是zabbix日誌存放地址。Server 是zabbix服務端ip地址。Hostname是本機機器名。

 

建立自動發現

 

默認接收人:

自動發現主機: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}

默認信息:

發現規則: {DISCOVERY.RULE.NAME}

 

設備IP:{DISCOVERY.DEVICE.IPADDRESS}

設備DNS: {DISCOVERY.DEVICE.DNS}

設備狀態: {DISCOVERY.DEVICE.STATUS}

設備運行時間: {DISCOVERY.DEVICE.UPTIME}

設備服務端口: {DISCOVERY.SERVICE.NAME}

相關文章
相關標籤/搜索