Zabbix服務安裝部署及監控配置
Zabbix服務安裝部署及監控配置
1.1 Zabbix服務介紹
官方網站:http://www.zabbix.com/
The Enterprise-class Monitoring Solution for Everyone
企業級監控解決方案
zabbix是一個基於Web界面提供分布式系統監控以及網絡監視功能的企業級的開源解決方案
Zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以及讓系統管理員快速定位解決存在的各種問題。
1.1 Zabbix主要特點
安裝與配置簡單,學習成本地,支持多語言(包括中文)免費開源自動發現服務器與網絡設備分布式監視以及web集中管理功能,可以無agent監視用戶安全認證和柔軟的授權方式通過web界面設置或查看監控結果email等通知功能
1.2 Zabbix主要功能
監控CPU負載、內存使用、磁盤使用、網絡狀態、端口監視、日誌監視、插件開發自定義
1.3 Zabbix運行機制
Zabbix Server 和Zabbix Agent
Zabbix server 可以通過SNMP,Zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集功能,可以在運行Linux,Solaris,HP-UX,FreeBSD,OpenBSD,OXX,Windows多平臺。
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 smtp=smtp.sina.com
set [email protected] #郵箱用戶
set smtp-auth-password=密碼
set smtp-auth=login
本實驗中使用的是新浪郵箱,新浪不需要授權碼,直接使用密碼登陸
保存退出後測試郵件是否能夠正常發送出去
echo "zabbix test mail" |mailx -s "zabbix" [email protected]
在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 [email protected] "測試郵標題" "測試郵件內容"
[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}
Zabbix服務安裝部署及監控配置