1、zabbix是什麼
php
Zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。
zabbix server能夠經過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它能夠運行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平臺上。
zabbix agent須要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操做系統有關的內存,CPU等信息的收集。zabbix agent能夠運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系統之上。
zabbix server能夠單獨監視遠程服務器的服務狀態;同時也能夠與zabbix agent配合,能夠輪詢zabbix agent主動接收監視數據(agent方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。另外zabbix server還支持SNMP (v1,v2),能夠與SNMP軟件(例如:net-snmp)等配合使用。
相比較Cacti,Zabbix具備不亞於Cacti的圖形表現效果,同時還支持監控報警功能。而且內置的監控模板比Cacti要豐富的多得多。
相比較Nagios,Zabbix安裝配置要簡單的多,利於實現。同時學習成本也要低得多。在監控性能方面也不亞於Nagios。所以,目前愈來愈多的公司開始使用Zabbix做爲監控的最佳解決方案。
++++++++++++++++++++++++++++++++++++++++++++++
2、 zabbix的優缺點
**優勢**
* 開源,無軟件成本投入
* Server 對設備性能要求低
* 支持設備多,自帶多種監控模板
* 支持分佈式集中管理,有自動發現功能,能夠實現自動化監控
* 開放式接口,擴展性強,插件編寫容易
* 當監控的item 比較多服務器隊列比較大時能夠採用被動狀態,被監控客戶端主動從server 端去下載須要監控的item 而後取數據上傳到server 端。這種方式對服務器的負載比較小。
**缺點**
* 需在被監控主機上安裝agent,全部數據都存在數據庫裏,產生的數據據很大,瓶頸主要在數據庫。
+++++++++++++++++++++++++++++++++
3、zabbix基於agent採集數據的方式
一、被動模式
Zabbix服務器端按照監控配置項目制定的時間間隔,按期鏈接到agent上的守護進程,獲取agent組件採集到的數據。
二、主動模式
Agent端從server端獲取採集數據的監控項目列表及其配置信息。而agent端肯定所須要的鏈接zabbix服務器代理的方法是,從agent的配置文件中讀取serveractive該配置項的內容。讀取頻率RefreshActiveChecks指定,默認120s。
主動模式的好處:當被監控設備代理組件所封裝的監控項目種類不能知足須要的時候,徹底可使用咱們擅長的任何一種高級語言來開發小的工具或者腳本模擬一個組件,從而實現個性化需求。然而經過小工具或者腳本模擬組件時,通常來講使用主動模式會比較方便。緣由就是:使用主動模式時,這類小工具不須要以守護進程的方式運行,更不須要在被監控設備上開額外的服務端口,只需這類小工具或腳本能定時將所採集到的數據發送至zabbix服務器或其代理指定的端口上。mysql
++++++++++++++++++++++++++++++++++++++
ios
4、zabbix基本組件的安裝配置
zabbix的安裝包括四個部分:server服務端、agent數據收集端、web配置管理端、數據保存數據庫端。
架構以下:
| 設備 | 應用端 |
| ------- | -------- |
| servera | agent |
| serverb | server |
| serverc | web |
| serverd | database |
先保證咱們全部服務器的時區都是Asia/shanghai,分別在每臺服務器上執行如下命令
[root@servera ~]# timedatectl set-timezone Asia/Shanghai
一、Server端的安裝
軟件安裝,這裏server端經過源碼編譯的方式,將服務主目錄放置/usr/local/zabbix目錄下:
c++
[root@serverb ~]# setenforce 0 [root@serverb zabbix]# cp zabbix-2.4.6.tar.gz /tmp [root@serverb zabbix]# cd /tmp [root@serverb tmp]# tar -xf zabbix-2.4.6.tar.gz # 這裏採用源碼編譯的方式來安裝 [root@serverb tmp]# yum install gcc gcc-c++ mariadb-devel libxml2-devel net-snmp-devel libcurl-devel -y # 安裝源碼編譯須要的依賴包 [root@serverb tmp]# cd zabbix-2.4.6/ [root@serverb zabbix-2.4.6]# ./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-agent --enable-ipv6 [root@serverb zabbix-2.4.6]# make [root@serverb zabbix-2.4.6]# make install [root@serverb zabbix-2.4.6]# useradd zabbix # 添加zabbix用戶用以服務zabbix server端的正常運行 服務端的數據庫鏈接配置: [root@serverb zabbix-2.4.6]# cd /usr/local/zabbix/ [root@serverb zabbix]# ls bin etc lib sbin share [root@serverb zabbix]# cd etc [root@serverb etc]# vim zabbix_server.conf # 該文件爲服務端的主配置文件,變動以下參數 DBHost=172.25.0.13 DBName=zabbix DBUser=zabbix DBPassword=123456
二、Database端的安裝
安裝mariadb-server軟件:
web
[root@serverd ~]# setenforce 0 [root@serverd ~]# yum -y install mariadb-server [root@serverd ~]# systemctl start mariadb 登陸上serverb這臺服務器,將sql語句遠程複製到數據庫服務器上: [root@serverb database]# cd /tmp/zabbix-2.4.6/database/mysql/ # 注意:須要導入的數據在server端。 [root@serverb mysql]# scp * 172.25.0.13:/tmp mysql服務器將對應的sql語句進行導入的操做,三個sql文件的導入順序不能出錯: [root@serverd ~]# mysql MariaDB [(none)]> create database zabbix; MariaDB [(none)]> Bye [root@serverd ~]# mysql zabbix < /tmp/schema.sql [root@serverd ~]# mysql zabbix < /tmp/p_w_picpaths.sql [root@serverd ~]# mysql zabbix < /tmp/data.sql mysql受權,受權給server端及web端: [root@serverd ~]# mysql MariaDB [(none)]> grant all on zabbix.* to zabbix@'172.25.0.11' identified by '123456'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to zabbix@'172.25.0.12' identified by '123456'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to zabbix@'serverb.example.com' identified by '123456'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to zabbix@'serverc.example.com' identified by '123456'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
三、 Web端的安裝
安裝web端所須要的軟件:
sql
[root@serverc ~]# setenforce 0 [root@serverc ~]# yum -y install httpd php php-mysql # 安裝lamp環境須要的軟件包 [root@serverc zabbix]# yum -y localinstall zabbix-web-2.4.6-1.el7.noarch.rpm zabbix-web-mysql-2.4.6-1.el7.noarch.rpm php-mbstring-5.4.16-23.el7_0.3.x86_64.rpm php-bcmath-5.4.16-23.el7_0.3.x86_64.rpm # 安裝依賴包及web包 變動web端相關配置文件,指定時區。 [root@serverc zabbix]# vim /etc/httpd/conf.d/zabbix.conf php_value date.timezone Asia/Shanghai 啓動全部相關服務軟件 server端的啓動 [root@serverb sbin]# cd /usr/local/zabbix/sbin/ [root@serverb sbin]# ./zabbix_server [root@serverb sbin]# ps -ef | grep zabbix zabbix 3218 1 0 22:20 ? 00:00:00 ./zabbix_server zabbix 3220 3218 0 22:20 ? 00:00:00 ./zabbix_server: configuration syncer [waiting 60 sec for processes] zabbix 3221 3218 0 22:20 ? 00:00:00 ./zabbix_server: db watchdog [synced alerts config in 0.014155 sec, idle 60 sec] ........... web端的啓動 [root@serverc zabbix]# systemctl restart httpd
四、Agent端的安裝
數據庫
[root@servera zabbix]# rpm -ivh zabbix-2.4.6-1.el7.x86_64.rpm zabbix-agent-2.4.6-1.el7.x86_64.rpm warning: zabbix-2.4.6-1.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-2.4.6-1.el7 ################################# [ 50%] 2:zabbix-agent-2.4.6-1.el7 ################################# [100%] [root@servera zabbix]# yum -y install net-snmp net-snmp-utils 配置agent端相關參數 [root@servera zabbix]# vim /etc/zabbix/zabbix_agentd.conf Server=172.25.0.11 ServerActive=172.25.0.11 Hostname=servera.example.com UnsafeUserParameters=1 [root@servera zabbix]# systemctl restart zabbix-agent
+++++++++++++++++++++++++++++++++++++vim
經過圖形化界面初始化web端:
打開瀏覽器訪問http://172.25.0.12/zabbix/瀏覽器
保證php環境知足需求
安全
填寫數據庫相關配置
填寫server端相關信息
安裝完成,登陸,默認用戶名爲admin,密碼爲zabbix。
5、zabbix變動中文環境
點擊右上角profile參數,能夠看到以下界面,Language這裏選擇chinese(zh_CN)便可
可是會有一些問題,並非全部的語言都被順利翻譯成了中文,好比這裏出現的問號。
主要緣由是因爲mysql數據庫的字符集格式,咱們默認使用的字符集爲utf8,而mysql裏的字符集爲latin1。
MariaDB [(none)]> show create database zabbix;
+----------+-------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------+
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>
這裏採用如下操做來變動字符集
[root@serverd ~]# mysqldump zabbix > /tmp/zabbix.sql
[root@serverd ~]# sed -i 's/latin1/utf8/' /tmp/zabbix.sql
[root@serverd ~]# mysqladmin drop zabbix
[root@serverd ~]# mysql
MariaDB [(none)]> create database zabbix DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
[root@serverd ~]# mysql zabbix < /tmp/zabbix.sql
變動完成後,對應問號部分會顯示中文,表明中文環境切換正常。