Zabbix簡介:php
zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。mysql
zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。ios
zabbix由2部分構成,zabbix server與可選組件zabbix agent。web
zabbix server能夠經過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能sql
工做原理:數據庫
zabbix由幾個主要的軟件組件構成:apache
server: zabbix server是一個核心組件,agent能夠向它報告可用性和完整性信息和統計數據。該server全部的配置,數據和業務數據都存在數據庫中。json
數據庫存儲:全部的配置信息包括採集的數據都被zabbix存儲在數據庫中。vim
Web界面: 經過一個基於web的平臺,咱們能夠從任何一個地方訪問zabbix。這個web是zabbix server的一部分,一般跟server運行在同一臺物理機上。(SQLite必須得配置在同一臺物理機上)api
Proxy: proxy能夠代替server收集性能和可用性的數據。proxy是一個可選的部分,但它對於減弱zabbix server的負載很是有用。
agent: zabbix agent被部署在監控的目標上,主機監控本地的資源和應用並彙報數據給zabbix server。
Zabbix的幾個定義組件:
host: 你要監控的網絡設備,使用ip/域名.
host group: 主機的邏輯分組,可能包含主機和模板。主機組內的主機和模板是不以任何方式彼此鏈接。爲不一樣的用戶分配權限時,使用主機組。
item: 你想從監控主機獲取到的某些數據
trigger: 定義一個閥值來看看從item中接收的數據是否有問題,使用邏輯表達式。當接收一個超過比閥值的,trigger從ok變成problem。當接收的數據低於閥值,trigger變成ok狀態。
event:一些值得關注的例如trigger狀態變化或者發現機制,agent自動註冊發生了。
action: 基於事件一個預約義的裝置.一個action包含條件和操做(發送一個郵件)。
escalation: 在action的操做中自定義,發送通知/遠程執行命令
media: 發送通知的一種手段。
notification: 一個事件經由選擇的媒體發送給用戶.
remote command: 當一些條件觸發時,預約義的遠程命令執行.
template: 準備被應用到一臺或多臺主機的實體(items, triggers, graphs, screens,applications, low-level discovery rules, web scenarios),模板加快了監控的部署。大規模的更改應用到監測任務。模板直接關聯到主機。
application: item的邏輯分組
web scenario: 一個或多個HTTP請求來檢查網站的可用性
frontend: zabbix提供的web界面
zabbix api: Zabbix API容許你使用json rpc協議來建立,更新和獲取zabbix對象(likehosts, items, graphs and others) 或執行其它自定義任務.
zabbix server: zabbix軟件的中心,用來執行監控,跟proxy和agent交互,計算trigger,發送通知,中央數據存儲。
zabbix agent:一個進程部署在監控主機上,主動監控本地資源和應用。
zabbix proxy:代替zabbix server採集數據,代替server承受些壓力。
Zabbix安裝:
服務器上面:
yum install -y gcc*
yum -y install httpd mysql mysql-server mysql-devel php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate php-bcmath
同步服務器時間:
服務器端:
yum install -y ntp*
service ntpd start
chkconfig ntpd on
客戶端同步時間:
yum install -y ntp*
service ntpd start
chkconfig ntpd on
chkconfig ntpdate on
服務器上:
添加Zabbix運行所須要的用戶和組
useradd zabbix
啓動mysql並進行密碼設置及用戶受權
#service mysqld start
#mysqladmin –uroot password ‘123456’
#mysql –uroot –p
#create database zabbix;
#grant all on zabbix.* to zabbix@'%' identified by '123456';
編譯安裝Zabbix:
這次使用的軟件包是Zabbix.iso
編譯安裝Zabbix:
./configure --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql
若報錯:Not found mysqlclient library
則:cd /usr/lib64/mysql
ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so
ln -s libmysqlclient.so.16.0.0 libmysqlclient.so
make && make install
#此處指定sysconfdir配置文件的路徑就在/etc/zabbix/目錄下了,若是不指定默認在/usr/local/etc下
複製 zabbixserver端跟agent端的啓動腳本,並設置執行權限:
將zabbix的頁面文件copy到指定目錄(跟apache配置的相同便可):
配置php配置文件:(/etc/php.ini)
date.timezone = Asia/Shanghai
max_execution_time = 300
max_input_time = 300
post_max_size = 32M
memory_limit = 128M
mbstring.func_overload = 2
配置zabbix-server端配置文件(定義數據庫的IP、用戶名、密碼):
選項較多,根據須要進行開啓,主要針對zabbix任務處理優化
啓動zabbix和apache
service zabbix_server start
service httpd start
瀏覽器訪問Zabbix:
檢查web程序的config文件,若是沒問題會顯示OK,直接點擊finish便可完成安裝(若是此處有問題通常是zabbix虛擬主機目錄文件的權限問題,上面已經有設置的過程通常不會出現問題)
客戶端:
安裝gcc環境
yum –y install gcc*
同步時間
ntpdate –u 192.168.88.10
建立運行用戶
useradd zabbix
解壓安裝zabbix-agent
#tar xf zabbix-2.2.2.tar.gz
#cd zabbix-2.2.2
#./configure --sysconfdir=/etc/zabbix --enable-agent
#make && make install
複製agent端運行所須要的腳本
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
配置agent端配置文件
vim /etc/zabbix/zabbix_agentd.conf
#此處千萬別寫成zabbix_agent.conf,不然配置了不生效
Server=192.168.88.10 #填寫Server的IP地址
ServerActive=192.168.88.10 #修改成Server的IP地址
Hostname=Centos-2
#填寫本機的HostName,注意Server端要能解
UnsafeUserParameters=1
#是否容許自定義的key,1爲容許,0爲不容許
Include= etc/zabbix/zabbix_agentd.conf.d/
#自定義的agentd配置文件(key)能夠在這裏面寫;
不自定義能夠不開啓這兩個選項!不然會有報錯!
啓動zabbix agent端
service zabbix_agentd start
web端添加新的主機: