Zabbix 監控

介紹
企業級監控解決方案官方網站
zabbix 是一個基於 WEB 界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案
zabbix 能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位解決存在的各類問題。php

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

Zabbix主要功能:前端

監控CPU負載、內存使用、磁盤使用、網絡狀態、端口監視、日誌監視、插件開發自定義
Zabbix 由 Zabbix Server 和 Zabbix agent組成java

Zabbix Server 能夠經過 SNMP,Zabbix agent,Ping,端口監視等你方法提供對遠程服務器/網絡狀態的 監視,數據收集功能,能夠在運行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows 多 平臺。
Zabbix Agent 安裝在須要被監控的目標服務器上,主要完成對硬件信息與操做系統有關的內存,CPU 等你 信息收集。
Zabbix Server 能夠單獨監視遠程服務器的服務狀態,同時也能夠與 Zabbix Agent 結合。能夠輪詢 Zabbix Agent 主動接收監視數據(trapping 傳遞 方式),同時還能夠被動接收 Zabbix Agent 發送的數據。python

Zabbix 運行機制mysql

Zabbix 支持多種網絡方式下的監控,能夠經過分佈式的部署和安裝監控代理 Zabbix,經過 C/S 模式採集數 據,經過 B/S 模式在 Web 端展現和配置!Agent 監控端口 10050
服務端安裝 Zabbix Server 和 Zabbix Agent 兩個服務,客戶端只安裝 Zabbix Agent 一個服務,監控原理 就是 Zabbix Agent 服務將從系統中獲取的相關數據傳送給 Zabbix Server,而後 Zabbix Server 服務獎數據分 析以後以 PHP 頁面展現出來!nginx

整個環境所須要的軟件包git

php-5.6.13  
libmcrypt-2.5.8 
mysql-5.6.26
nginx-1.8.0 
zabbix-3.0.5

咱們須要先構建 LNMP 的環境,由於 Zabbix 經過 PHP 頁面展現
搭建 LNMP 的環境,能夠參考上篇博客 LNMP源碼編譯安裝
安裝 Zabbix
下載地址:http://www.zabbix.com/download
Zabbix 須要數據庫的支持,而卻 Zabbix 已經自帶了數據庫結構,images 數據庫和表數據等相關內容
建立 Zabbix 使用數據庫github

mysql -uroot -p
mysql> create database zabbix;
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';    //zabbix 用戶受權
mysql> flush privileges;
mysql> exit

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

// 解壓進入zabbix目錄
mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
 mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql 
 mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

若是在作分佈式的環境中,Proxy 服務器只須要一個數據庫 schema,代理者 agent 不須要數據庫!Server 必須 三個數據庫同時擁有
Zabbix 同時支持不少類型數據庫,能夠經過查閱幫助: https://www.zabbix.com/documentation/2.4/manual/appendix/install/db_scripts

編譯安裝 zabbix

yum install -y net-snmp-devel  //net-snmp-config 依賴

 ./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 的負負載,
看到以下信息,預編譯就沒有什麼問題
……


make install    //上面的提示,沒有 make 步驟,直接 install
 ls /usr/local/zabbix/  //編譯成功,產生以下目錄 // bin etc lib sbin share

配置 zabbix Server

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
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1    #默認監控服務器本身,這三行不用改
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1  
#容許全部的字符是在用戶定義的參數,參數傳遞,也就是支持自定義腳本
#其中 Server 和 ServerActive 都指定 zabbixserver 的 IP 地址,不一樣的是,前者是被動後者是主動。也就#是說前者容許 127.0.0.1 這個 ip 來我這取數據。而 serverActive 的 127.0.0.1 的意思是,客戶端主動提#交數據給 他。啓動服務
useradd -u 8005 -M -s /sbin/nologin zabbix 
//若是 zabbix 用戶不存在, 將以 root 運行,新建以後,若是 zabbix 存在,那麼久直接能夠用 zabbix 運行
/usr/local/zabbix/sbin/zabbix_server        //直接運行
 echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local //開機啓動 
 netstat -antup | grep zabbix   //zabbix server 運行端口 10051
  tcp   0   0 0.0.0.0:10051 0.0.0.0:*   LISTEN
  37568/zabbix_server

若是這裏沒有端口顯示,則須要註冊端口

vim /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

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

cp -r /usr/local/src/zabbix-3.0.5/frontends/php/*   /usr/local/nginx/html/ vim /usr/local/nginx/conf/nginx.conf
location / {
root    html;
index   index.php index.html index.htm; #找到此行內容,添加 index.php
}

重啓服務

/usr/local/nginx/sbin/nginx -s reload ; /etc/init.d/php-fpm restart

打開網頁安裝 zabbix
瀏覽器輸入:http://192.168.1.63 如圖,下一步 Next
默認用戶名: admin密碼: zabbix
//開始檢查環境,如圖,發現不少環境不符編輯 php.ini 文件,修 改

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#此行取消註釋便可

/etc/init.d/php-fpm restart  #重啓
提示示沒有安裝gettext模塊,爲了避免影響後面的功能,如今把這個模塊從新安裝進去:
能夠單獨把這個模塊編譯安裝進來:
cd /usr/local/src/php-5.6.13/ext/
cd gettext/

/usr/local/php/bin/phpize 

./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
vim /usr/local/php/php.ini
// 添加:extension = "gettext.so"
/etc/init.d/php-fpm restart
// 再次刷新便可

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

mv zabbix.conf.php /usr/local/nginx/html/conf/  // 而後在點擊 Retry

點擊 Finish,完成安裝!
登錄 Zabbix 並配置 登錄以後咱們修改語言 默認用戶名和密碼分別問 admin,zabbix

點擊右上角用戶,而後選擇語言

而後 Update 便可,頁面變爲中文

若是所示,可到咱們當前監控的本機(默認沒有啓動,點擊後面紅色的停用,則啓用)

把zabbix_agent 也啓動起來:

/usr/local/zabbix/sbin/zabbix_agentd

再次刷新頁面,能夠看到,agent狀態已經正常

可是發現下面顯示有問題:這個是中文字符集的問題,在英文狀態下顯示是正常的

圖形界方框的解決辦法
在 Windows 下面找一個 ttf 的字體文件

mv /root/Desktop/微軟雅黑.ttf  /usr/local/nginx/html/fonts/
  cd /usr/local/nginx/html/fonts/
  mv DejaVuSans.ttf /root/
  mv 微軟雅黑.ttf DejaVuSans.ttf

Zabbix 啓動服務總結
LNMP環境搭建好
啓動nginx服務、啓動MySQL服務、啓動php-fpm服務、測試環境是否正常
上傳zabbix 3.0.5 壓縮包
解壓
建立數據庫,建立用戶,受權
導入zabbix自帶的數據庫
安裝zabbix,預編譯, 直接 make install 安裝完成
修改server、agent配置文件
複製啓動腳本,啓動服務,查看端口
也沒初始化zabbix:
複製源碼目錄PHP目錄下的全部內容到nginx 發佈目錄下
重啓nginx、php-fpm 服務
經過IP地址,直接初始化安裝zabbix,
須要修改php.ini 配置文件。按照頁面說明來修改對應的數值和選項
若是提示缺乏模塊,能夠從新打模塊進去,知足條件,繼續安裝
安裝的時候,輸入建立的DB和password
安裝完,默認的帳戶是admin,密碼zabbix
登錄進來,啓動zabbix server ,稍等幾分鐘,能夠看到agent端已經變成綠色便可監控本機數據狀態
經過查看配置圖形,便可看到監控項的出圖狀況
最下面的字體表示有問題,能夠複製windows字體來替換原來的字體,刷新頁面便可顯示正常

配置監控遠程主機:
安裝 Agent

yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI   // 解決 依賴
 useradd -u 8001 -M -s /sbin/nologin    zabbix

cd /usr/local/src/ zabbix-3.0.5/

 ./configure --prefix=/usr/local/zabbix --enable-agent
 //被監控端只須要部署 agnet
 make install
cat /etc/services|grep zabbix
    zabbix-agent    10050/tcp               # Zabbix Agent
    zabbix-agent    10050/udp               # Zabbix Agent
    zabbix-trapper  10051/tcp               # Zabbix Trapper
    zabbix-trapper  10051/udp               # Zabbix Trapper

# 啓動agent:
 /usr/local/zabbix/sbin/zabbix_agentd
也可使用系統啓動腳原本啓動:
# 配置 Agnet 開機啓動
grep"chkconfig" /usr/local/src/zabbix-3.0.5/ -R –color
# 查看有 chkconfig 的 文件
        /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core5/zabbix_agentd
        /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core5/zabbix_server
        /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core/zabbix_agentd
        /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core/zabbix_server

    cp /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core5/zabbix_agentd  /etc/init.d/

 vim /etc/init.d/zabbix_agentd  //上一步生成了啓動腳本,而後如今編輯腳 本
    ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"   #修改此行
    chkconfig --add zabbix_agentd chkconfig zabbix_agentd on
拓展:core 和 core5 裏面的文件均可以實現 zabbix 代理啓動,core 裏面是測試版本,core5 是穩定版本

配置 Agentd 的配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf    //客戶端操做

Server=192.168.1.63 #zabbix server 地址,能夠多個,用,隔開
ServerActive=192.168.1.63   #主動檢查的意思,主動檢查手機的數據的數據發送給 Zabbix Server
Hostname=test
UnsafeUserParameters=1

# 啓動服務
 /etc/init.d/zabbix_agentd restart
 netstat -antup | grep zabbix
    tcp 0   0 0.0.0.0:10050 0.0.0.0:*   LISTEN
    9683/zabbix_agentd

# Server 端測試通信

 /usr/local/zabbix/bin/zabbix_get -s 192.168.1.64 -p10050 -k system.uname //能夠獲取對方系統版本則證實沒有問題

服務端配置管理腳本

cp  /usr/local/src/zabbix-3.0.5/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix   #修改此行內容爲 zabbix 的安裝位置
chkconfig --add zabbix_agentd [root@XueGod63 ~]# chkconfig zabbix_agentd on
/etc/init.d/zabbix_agentd restart       //能夠監控本身,也要啓動服務 
netstat -antup | grep zabbix    //二者之間監控端口不同
    //tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN
    //51645/zabbix_agentd
    //tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
    //10786/zabbix_server
監控本身使用 10050 端口,監控對方使用的是 10051 端口

添加 Host 主機

添加主機

這裏寫圖片描述
編輯,填寫主機名,IP地址,注意,這裏寫的主機名要跟客戶端的hostname同樣

這裏寫代碼片
這裏寫圖片描述

在彈出的模塊裏選擇一個本身須要的模塊:

這裏寫圖片描述

返回以後,能夠看到已經添加進來:等到可用性變成綠色便可出圖監控

這裏寫圖片描述

這時候就能夠經過圖形功能來查看出圖狀況

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

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

文件系統探測和網絡流量探測

把原來的3600s改爲10s

修改更新數據後,再次返回圖形監控頁面,稍等幾分鐘再次查看監控項

再次返回主頁,能夠看到總體的監控狀態

設置 Triger 觸發器值

找到當前主機應用的模板:

默認的值是20%

修改爲本身設定的值

更新數據

模擬測試磁盤空間超標:

dd if=/dev/zero of=/root/a.txt bs=1M count=6000

刷新主頁查看,發現警告信息

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

自定義繪圖顏色:
找到主機對應的模塊—修改模板對應的圖形顏色

根據需求修改每個項的顯示顏色

總結 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-AgentIP 地址或者是主機名。 -p:遠程 Zabbix-Agent 的端口。 -I:本機出去的 IP 地址,用於一臺機器中有多個網卡的狀況。 -k:獲取遠程 Zabbix-Agent 數據所使用的 Key[expmple@~]# zabbix_get -s 192.168.1.64 -k system.uname
zabbix_sender 與 get 相反,用來發送 Zabbix 服務器處理性能數據。該工具一般用於長時間運行的用戶腳 本,用於按期發送可用性和性能數據。使用方法以下
zabbix_sender [-Vhv] {[-zpsI] -ko | [-zpI] -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 爲 unix 時間戳
-r --real-time 將數據實時提交給服務器 -v --verbose 詳細模式, -vv 更詳細

配置 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

尋找或者本身寫監控腳本
上面給出部分網站去尋找腳本,有能力的能夠本身寫,咱們能夠藉助別人的腳本,這些腳本大多數是遵循 GPL 的 協議

下載一個腳本以後,你要分析下腳本的運行環境,這幾腳本大多數是我的縮寫,每一個人的運行環境不同,因此 你能夠用 VIM 打開分析一下,有的是 python,有的是 ruby 寫的,腳本拿到手須要改裏面的東西! 如上圖腳本,第一個是執行腳本,咱們先對執行腳本一些必要操做,咱們使用 192.168.0.64做爲 apache Server

mv check_apache /usr/local/zabbix/bin/

 cd /usr/local/zabbix/bin/ ; chmod +x check_apache  //腳本可執行權 限
 vim check_apache   //腳本須要咱們改動的東西
 vim check_apache   //腳本須要咱們改動的東西
……
126 rval=$?;;
127 'version')
128 ApacheVersion=$(/usr/sbin/httpd -v 2> /dev/null | head -n 1 | awk '{print $3}' | cut -d '/'
-f  2 | tail -n 1)
129 echo "$ApacheVersion"
130 exit $rval;;
……
#在 128 行,咱們這裏使用 yum 安裝的 apache,因此咱們的版本獲取方式是 httpd 命令,若是你用源碼編譯,須要指定絕對路徑

改動配置文件
第二個文件就是咱們改動和添加到主 agentd 配置文件的內容

vim ../etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   #此行啓用並修改
 cd
mv conf-apache.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/ vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/conf-apache.conf // 修 改 此文件
UserParameter=apache[*],/usr/local/zabbix/bin/check_apache    \$1
 service zabbix_agentd restart
對 httpd 文件的配置
 yum install httpd -y
 vim /etc/httpd/conf/httpd.conf //末尾添加這一段
<IfModule mod_status.c>
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status

# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
#
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1  ::1
Allow from 192.168.0.0/24
</Location>
# Keep track of extended status information for each request
ExtendedStatus On
# Determine if mod_status displays the first 63 characters of a request or
# the last 63, assuming the request itself is greater than 63 chars.
# Default: Off
#SeeRequestTail On
<IfModule mod_proxy.c>
# Show Proxy LoadBalancer status in mod_status
ProxyStatus On
</IfModule>
</IfModule>
[root@XueGod64 ~]# service httpd restart 


cd /usr/local/zabbix/bin/
測試腳本是否正常
./check_apache Uptime //使用-h 或直接回車,有幫助出現

前端頁面操做
導入模板

讓主機關聯模板:

選擇剛纔導入的模板,添加,更新

查看最新數據,篩選Apache

能夠選擇生產圖形

配置 zabbix 監控 MySQL
和監控咱們的 Apache 同樣,尋找合適的腳本,不過,腳本並非那麼容易就能夠找獲得的! 要麼本身手動去寫,要麼本身找到的拿來修改,都是須要花費代價的!ZABBIX 默認提供了 MYSQL 的監控模板
數據庫用戶受權

yum install -y mysql-server ;
 service mysqld restart
 mysql_secure_installation
mysql -uroot -p123456

mysql> grant usage on *.* to "zabbix-monitor"@"%" identified by '123456'; 
mysql> flush privileges;
mysql> quit
cp /usr/local/src/zabbix- 3.0.5/conf/zabbix_agentd/userparameter_mysql.conf/usr/local/zabbix/etc/zabbix_agentd.conf.d/

vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   #啓用並修改 創建數據庫和 zabbix 的連接信息

 vim /usr/local/zabbix/etc/.my.cnf

    #Zabbix Agent 
    [mysql] 
    host=localhost 
    user=zabbix-monitor 
    password=123456
    socket= /var/lib/mysql/mysql.sock
    [mysqladmin] 
    host=localhost
     user=zabbix-monitor 
    password=123456
    socket= /var/lib/mysql/mysql.sock

  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)

 service zabbix_agentd restart

Zabbix郵件報警配置:

yum install postfix    //安裝 postfix 
  vim /etc/postfix/main.cf  //修改下面行
    myhostname = test63
    mydomain = test63
    myorigin = $myhostname
    inet_interfaces = all
    mynetworks = 127.0.0.0/8, 192.168.0.0/24
service postfix restart

點擊添完成,先測試可否收到測試郵件

mail -s "smxjphb@163.com" ******************@163.com

測試,關閉 zabbix 客戶端服務

zabbix_agentd service zabbix_agentd stop 
#結果延遲比較大,大概要5-10分鐘置 zabbix 自動發現並監控(監控Windows爲案例)

下載安裝Windows 客戶端agent

C:\Users\Administrator>Downloads\zabbix_agents_3.0.4.win\bin\win32\zabbi
.exe -c Downloads\zabbix_agents_3.0.4.win\conf\zabbix_agentd.win.conf -i  # 安裝
zabbix_agentd.exe [5008]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [5008]: event source [Zabbix Agent] installed successf

C:\Users\Administrator>Downloads\zabbix_agents_3.0.4.win\bin\win32\zabbi
.exe -c Downloads\zabbix_agents_3.0.4.win\conf\zabbix_agentd.win.conf -s #啓動
zabbix_agentd.exe [1060]: service [Zabbix Agent] started successfully

建立自動發現規則
添加關聯動做
等待一會,就能夠發現自動探測監控了
zabbix監控tomcat

zabbix是使用了一個叫作Java Gateway的應用去監控JMX的。Java Gateway集成在zabbix官方開發發佈的。
1.源碼編譯zabbix的時候須要添加參數–enable-java 或者單獨下載zabbix-java-getway http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/
2.zabbix_server端安裝jdk
3.修改zabbix_java相關選項

#進入到下面的目錄下面進行seeting.sh腳本編輯
find / -name zabbix_java
    /usr/local/zabbix/sbin/zabbix_java
    /usr/local/src/zabbix-3.2.1/src/zabbix_java
vim /usr/local/src/zabbix-3.2.1/src/zabbix_java/settings.sh 
#將註釋釋放掉
    LISTEN_IP="0.0.0.0"   #監聽地址
    LISTEN_PORT=10052    #監聽端口
    PID_FILE="/tmp/zabbix_java.pid"  
    START_POLLERS=5   # 開啓的工做線程數(必須大於等於後面zabbix_server.conf文件的StartJavaPollers參數)

4.修改zabbix_server文件

vim /usr/local/zabbix/etc/zabbix_server.conf
 JavaGateway=127.0.0.1
216 
217 ### Option: JavaGatewayPort
218 # Port that Zabbix Java gateway listens on.
219 #
220 # Mandatory: no
221 # Range: 1024-32767
222 # Default:
223  JavaGatewayPort=10052
224 
225 ### Option: StartJavaPollers
226 # Number of pre-forked instances of Java pollers.
227 #
228 # Mandatory: no
229 # Range: 0-1000
230 # Default:
231  StartJavaPollers=3

5.啓動zabbix_java

// 找到zabbix_java目錄路徑,而後執行命令./startup.sh
/usr/local/zabbix/sbin/zabbix_java/startup.sh
# 檢查端口是否監聽
netstat -anp|grep 10052
    tcp        0      0 :::10052                    :::*                        LISTEN      106420/java

6.下載tomcat, Extras:catalina-jmx-remote.jar
http://tomcat.apache.org/download-70.cgi

# 將下載好的 catalina-jmx-remote.jar存放到tomcat子目錄目錄lib錄下
mv catalina-jmx-remote.jar /usr/local/tomcat/lib/

7.修改catalina.sh文件

7 # OS specific support.  $var _must_ be set to either true or false. 108 cygwin=false 109 darwin=false 110 os400=false 111 hpux=false #增長JAVA_OPTS,添加此行 112 JAVA_OPTS="-Dcom.sun.management.jmxremote.port=12345 #定義jmx監聽端口 113 -Dcom.sun.management.jmxremote.authenticate=false 114 -Dcom.sun.management.jmxremote.ssl=false 115 -Djava.rmi.server.hostname=192.168.0.155" # 客戶端IP #或者增長 CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.155" 
# 修改 tomcat server.xml 配置文件,添加如下內容:
 vim /usr/local/zabbix/etc/zabbix_server.conf  

 <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"  rmiRegistryPortPlatform="12345"     rmiServerPortPlatform="12346"/>




#測試
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.0.155:12345 java.lang:type=Memory NonHeapMemoryUsage
12/03/2016 13:15:18 +0800 org.archive.jmx.Client NonHeapMemoryUsage: 
committed: 30474240
init: 2555904
max: -1
used: 29289904

8.重啓啓動tomcat服務和zabbix_agentd服務

相關文章
相關標籤/搜索