Zabbix分佈式監控

一、Zabbix簡介


  • Zabbix是一個用於網絡,操作系統和應用程序的開源監控軟件,由拉脫維亞的Alexei Vladishev創建。它旨在監視和跟蹤各種網絡服務,服務器和其他網絡硬件的狀態。

  • Zabbix可以使用MySQL,MariaDB,PostgreSQL,SQLite,Oracle或IBM DB2來存儲數據。它的後端用C語言編寫,Web前端用PHP編寫。Zabbix提供多種監控選項:
  • 簡單檢查可以驗證標準服務(如SMTP或HTTP)的可用性和響應性,而無需在受監視主機上安裝任何軟件。
  • 還可以在UNIX和Windows主機上安裝Zabbix 代理,以監視CPU負載,網絡利用率,磁盤空間等統計信息。
  • 作爲在主機上安裝代理的替代方法,Zabbix支持通過SNMP,TCP和ICMP檢查以及IPMI,JMX,SSH,Telnet和使用自定義參數進行監控。Zabbix支持各種近實時通知機制,包括XMPP。
  • 根據GNU通用公共許可證版本2的條款發佈,Zabbix是免費軟件。
  • Zabbix官網:http://www.zabbix.com/
  • zabbix由2部分構成,zabbix server與可選組件zabbix agent。

    Zabbix 通過 C/S 模式採集數據,通過 B/S 模式在 web 端展示和配置。
    >被監控端:主機通過安裝 agent 方式採集數據,網絡設備通過 SNMP 方式採集數據
    Server 端:通過收集 SNMP 和 agent 發送的數據,寫入數據庫(MySQL,ORACLE 等),再通過 php+apache 在 web 前端展示。

  • Zabbix 運行條件

    Server:Zabbix Server 需運行在 LAMP(Linux+Apache+Mysql+PHP)環境下(或者
    LNMP),對硬件要求低
    Agent:目前已有的 agent 基本支持市面常見的 OS,包含 Linux、HPUX、Solaris、Sun、
    windows
    SNMP協議:支持各類常見的網絡設備

Zabbix分佈式監控

二、Zabbix功能


  • 支持自動發現網絡設備和服務器(可以通過配置自動發現服務器規則來實現)
  • 高性能,高容量(能夠監控數十萬臺設備)。
  • 支持低級發現(low discovery)key 實現動態監控項的批量監控(需寫腳本)
  • 集中式Web管理的分佈式監控。分能集中展示、管理分佈式的監控點
  • 擴展性強,server 提供通用接口(api 功能),可以自己開發完善各類監控(根據相關接口編寫程序實現)
  • 本機高性能代理,支持監控多種服務和跨平臺系統監控(適用於Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OS X,Tru64 / OSF1,Windows 2000,Windows Server 2003,Windows XP,Windows Vista,Windows Server 2008,Windows 7的客戶端軟件)
  • 編寫插件容易,可以自定義監控項,報警級別的設置。

總體結構

  • 無代理監控。
  • 基於Web的界面。
  • 支持輪詢和陷阱機制。

數據收集

  • 可用和性能檢測
  • 支持 snmp(包括 trapping and polling),IPMI,JMX,SSH,TELNET
  • 自定義的檢測
  • 自定義收集數據的頻率
  • 服務器/代理和客戶端模式
  • 靈活的觸發器
  • 您可以定義非常靈活的問題閾值,稱爲觸發器,從後端數據庫的參考值
    高可定製的報警

通知功能

  • 發送有關預定義事件的靈活電子郵件通知,定製的報警升級,收件人,媒體類型
  • 近實時通知機制,例如使用包括XMPP協議

安全和身份驗證

  • 審覈日誌。
  • 安全用戶認證。
  • 靈活的用戶權限。
  • 通過用戶定義的可視控制檯屏幕和儀表板對受監視資源進行高級(業務)視圖。
  • 自2017年8月起通過Zabbix代理執行遠程命令,直至Zabbix 3.4

三、案例:部署Zabbix


環境準備

兩臺服務器,一臺Server、一臺Client,Server兩塊網卡,第一塊vmnet1,第二塊橋接,client爲vmnet1網卡

role OS IP PG
Server、proxy CentOS6.7_64bit 192.168.1.10 zabbix-2.0.12.tar,zapache-master
Client、agent CentOS6.7_64bit 192.168.1.100 zabbix-2.0.12.tar

部署LAMP平臺

1.配置IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
/etc/init.d/network restart

2.安裝LAMP平臺和Zabbix依賴包

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum -y install gcc* autoconf httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-ldap php-pear php-xmlrpc mysql-connector-odbc libdbi-dbd-mysql net-snmp-devel curl-devel unixODBC-devel java-devel openldap openldap-devel php-pdo ncurses-devel httpd mysql-server mysql mysql-devel php php-mysql OpenIPMI OpenIPMI-libs OpenIPMI-devel php-mbstring php-bcmath

3.配置php

vim /etc/php.ini
440 max_execution_time = 300
449 max_input_time = 300
729 post_max_size = 32M
946 date.timezone = Asia/Shanghai           //更改時區爲亞洲上海
1586 mbstring.func_overload = 2
useradd -M -s /sbin/nologin zabbix
mkdir /var/log/zabbix
mkdir /etc/zabbix
chown zabbix:zabbix /var/log/zabbix/

部署Zabbix

1.編譯安裝Zabbix_Server

tar -zxvf zabbix-2.0.12.tar.gz -C /usr/src/
cd /usr/src/zabbix-2.0.12
./configure --prefix=/usr/local/ --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --enable--unixodbc --enable-java
make && make install

2.Zabbix服務配置

cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
vim /etc/zabbix/zabbix_server.conf
39 LogFile=/var/log/zabbix/zabbix_server.log        //定義server服務日誌文件位置
77 DBHost=192.168.1.10                  //定義數據庫主機
87 DBName=zabbix                    //定義數據庫名
103 DBUser=zabbix                   //定義連接數據庫用戶名
111 DBPassword=zabbix                   //定義連接數據庫密碼
vim /etc/zabbix/zabbix_agentd.conf
21 LogFile=/var/log/zabbix/zabbix_agentd.log        //定義agentd服務日誌文件位置
82 Server=192.168.1.10                  //定義server端服務IP
123 ServerActive=192.168.1.10:10051         //定義server端服務IP
213 Include= /etc/zabbix/zabbix_agentd.conf.d/
228 UnsafeUserParameters=1              //啓用自定義腳本功能

3.新建數據庫

/etc/init.d/mysqld start && chkconfig --level 35 mysqld on
mysqladmin -u root password "123"
mysql -u root -p
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@'192.168.1.10' identified  by 'zabbix';
mysql> flush privileges;
mysql -u zabbix -p -h 192.168.1.10 zabbix </usr/src/zabbix-2.0.12/database/mysql/schema.sql
mysql -u zabbix -p -h 192.168.1.10 zabbix </usr/src/zabbix-2.0.12/database/mysql/images.sql
mysql -u zabbix -p -h 192.168.1.10 zabbix </usr/src/zabbix-2.0.12/database/mysql/data.sql

4.部署Zabbix訪問頁面

cp -rf /usr/src/zabbix-2.0.12/frontends/php/ /var/www/html/zabbix
chown -R apache:apache /var/www/html/zabbix/

5.訪問Zabbix頁面

/etc/init.d/httpd start && chkconfig --level 35 httpd on
IE--> 192.168.1.10/zabbix
用戶名:admin、密碼:zabbix

6.啓動Zabbix相關服務

mv /var/www/html/zabbix/setup.php  /var/www/html/zabbix/setup.php.lock
chmod 600 /var/www/html/zabbix/setup.php.lock
/etc/init.d/zabbix_server start && chkconfig --level 35  zabbix_server on
/etc/init.d/zabbix_agentd start && chkconfig --level 35 zabbix_agentd on

部署被監控端(Linux)

1.配置IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
/etc/init.d/network restart

2.定義服務端口

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

3.安裝Agent代理軟件

useradd -M -s /sbin/nologin zabbix
mkdir /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix/
tar -zxvf zabbix-2.0.12.tar.gz -C /usr/src/
cd /usr/src/zabbix-2.0.12
./configure --prefix=/usr/local/ --sysconfdir=/etc/zabbix --enable-agent
make && make install

4.配置Agent

cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
vim /etc/zabbix/zabbix_agentd.conf
21 LogFile=/var/log/zabbix/zabbix_agentd.log
82 Server=192.168.1.10
123 ServerActive=192.168.1.10:10051
chkconfig --add zabbix_agentd
/etc/init.d/zabbix_agentd start

5.Web界面添加主機

Zabbix分佈式監控
Zabbix分佈式監控
Zabbix分佈式監控
Zabbix分佈式監控

部署被監控端(Web)

1.安裝apache(192.168.1.100做以下操作)

yum -y install httpd
vim /etc/httpd/conf/httpd.conf
ExtendedStatus On
<location /server-status>
 SetHandler server-status
 Order Allow,Deny
 Allow from all
</location>

2.apache模版部署(192.168.1.10做以下操作)

unzip zapache-master.zip
cd zapache-master
cp userparameter_zapache.conf.sample /etc/zabbix/zabbix_agent.conf.d/
cd /etc/zabbix/zabbix_agent.conf.d/
mv userparameter_zapache.conf.sample userparameter_zapache.conf
vim userparameter_zapache.conf 
UserParameter=zapache[*],/usr/local/bin/zapache \$1
cd /root/zapache-master
cp zapache /usr/local/bin/
/etc/init.d/zabbix_agentd restart

3.模版導入(192.168.1.10 Web訪問),並應用給192.168.1.100主機
Zabbix分佈式監控
Zabbix分佈式監控

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章