集中化監控工具zabbix的安裝配置(centos7)
一、zabbix是什麽
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)等系統之上。
相比較Cacti,Zabbix具有不亞於Cacti的圖形表現效果,同時還支持監控報警功能。並且內置的監控模板比Cacti要豐富的多得多。
相比較Nagios,Zabbix安裝配置要簡單的多,利於實現。同時學習成本也要低得多。在監控性能方面也不亞於Nagios。因此,目前越來越多的公司開始使用Zabbix作為監控的最佳解決方案。
二、 zabbix的優缺點
**優點**
* 開源,無軟件成本投入
* Server 對設備性能要求低
* 支持設備多,自帶多種監控模板
* 支持分布式集中管理,有自動發現功能,可以實現自動化監控
* 開放式接口,擴展性強,插件編寫容易
* 當監控的item 比較多服務器隊列比較大時可以采用被動狀態,被監控客戶端主動從server 端去下載需要監控的item 然後取數據上傳到server 端。這種方式對服務器的負載比較小。
**缺點**
* 需在被監控主機上安裝agent,所有數據都存在數據庫裏,產生的數據據很大,瓶頸主要在數據庫。
三、zabbix基於agent采集數據的方式
1、被動模式
Zabbix服務器端按照監控配置項目制定的時間間隔,定期連接到agent上的守護進程,獲取agent組件采集到的數據。
2、主動模式
Agent端從server端獲取采集數據的監控項目列表及其配置信息。而agent端確定所需要的連接zabbix服務器代理的方法是,從agent的配置文件中讀取serveractive該配置項的內容。讀取頻率RefreshActiveChecks指定,默認120s。
主動模式的好處:當被監控設備代理組件所封裝的監控項目種類不能滿足需要的時候,完全可以使用我們擅長的任何一種高級語言來開發小的工具或者腳本模擬一個組件,從而實現個性化需求。然而通過小工具或者腳本模擬組件時,一般來說使用主動模式會比較方便。原因就是:使用主動模式時,這類小工具不需要以守護進程的方式運行,更不需要在被監控設備上開額外的服務端口,只需這類小工具或腳本能定時將所采集到的數據發送至zabbix服務器或其代理指定的端口上。
++++++++++++++++++++++++++++++++++++++
四、zabbix基本組件的安裝配置
zabbix的安裝包括四個部分:server服務端、agent數據收集端、web配置管理端、數據保存數據庫端。
架構如下:
| 設備 | 應用端 |
| ------- | -------- |
| servera | agent |
| serverb | server |
| serverc | web |
| serverd | database |
先保證我們所有服務器的時區都是Asia/shanghai,分別在每臺服務器上執行以下命令
[root@servera ~]# timedatectl set-timezone Asia/Shanghai
1、Server端的安裝
軟件安裝,這裏server端通過源碼編譯的方式,將服務主目錄放置/usr/local/zabbix目錄下:
[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
2、Database端的安裝
安裝mariadb-server軟件:
[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/images.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)
3、 Web端的安裝
安裝web端所需要的軟件:
[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
4、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
+++++++++++++++++++++++++++++++++++++
通過圖形化界面初始化web端:
打開瀏覽器訪問http://172.25.0.12/zabbix/
保證php環境滿足需求
填寫數據庫相關配置
填寫server端相關信息
安裝完成,登錄,默認用戶名為admin,密碼為zabbix。
五、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
變更完成後,對應問號部分會顯示中文,代表中文環境切換正常。
本文出自 “Linux學習之路” 博客,請務必保留此出處http://zzclinux.blog.51cto.com/13401541/1979046
集中化監控工具zabbix的安裝配置(centos7)