一、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功能
- 支持自動發現網絡設備和服務器(可以通過配置自動發現服務器規則來實現)
- 高性能,高容量(能夠監控數十萬臺設備)。
- 支持低級發現(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界面添加主機
部署被監控端(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主機