Zabbix

運行Zabbix須要LAMP環境,php

在centsos 6中安裝lamp:  yum install -y httpd httpd-devel php php-devel php-nysql php-commonhtml

 在centsos 7  中安裝lamp:  yum install -y httpd httpd-devel php php-devel php-nysql php-common  mariadb mariadb-server mariadb-devel前端

注意:centsos 7  中的數據庫是mariadbmysql

  1. 企業Centos6.x通常用於部署承載各個應用,例如Nginx、MYSQL、Redis、MQ等;
  2. 企業Centos7.x通常用於部署承載各個應用,例如Docker、openstack、ELK等;

常見監控軟件:NagiosCactiMrtgGangliaZabbixlinux

 

分析Zabbix監控平臺概念和應用場景;

  1. Zabbix一款開源、免費的基於WEB界面的實時分佈式監控系統;
  2. Zabbix開源監控的內容很是普遍,分爲四大類:硬件、網絡、系統、軟件;
  3. Zabbix監控服務器硬件設備的狀態,例如監控CPU溫度、風扇的轉速、監控服務器電源使用狀況、機箱被入侵;
  4. Zabbix監控平臺還開源監控網絡狀況、交換機的流量、服務器網卡流量;
  5. Zabbix監控平臺能夠監控操做系統CPU、內存、硬盤容量、登陸用戶數、文件是否被修改、權限,還能夠監控各類軟件運行狀況、Nginx、MYSQL、Docker虛擬機、Apache、ZK服務等;
  6. Zabbix監控最核心的價值:能夠7x24x365實時監控整個公司各類設備、系統、網絡、軟件運行的狀況,有故障能夠第一時間通知(短信、郵件、微信、QQ)SA,SA收到報警信息,馬上去處理;
  7. Zabbix監控屬於C/S模式,客戶端和服務器端,服務器端負責數據彙總、處理,客戶端負責數據的採集和監控。
  8. 一個完整的ZABBIX平臺包括:Zabbix-WEBDatabaseZabbix-Server、Agent客戶端;
  9. Zabbix監控客戶端的方式有三種,基於Agent插件方式、SNMP協議、IPMI智能接口;
  10. Agentd安裝在被監控的主機上,Agent負責按期收集客戶端本地各項數據,併發送到Zabbix Server端,Zabbix Server收到數據,將數據存儲到數據庫中,用戶基於Zabbix WEB能夠看到數據在前端展示圖像。

 

Zabbix監控流程圖ios

  1. Zabbix_server負責彙總客戶端發送的監控數據,進行處理,存儲到MYSQL(關係型)數據庫中;
  2. Zabbix_WEB,以PHP語言編寫代碼,讀取、調用MYSQL中監控數據在WEB界面進行展現。
  3. Zabbix_server要監控200臺服務器,忽然發現壓力比較大,此時100臺server用proxy去監控。
  4. Zabbix_server,服務器端主程序,daemon進程,負責收集和彙總客戶端返回的監控數據,而且將數據存儲database中;
  5. Zabbix_database,獨立的數據庫,主要負責存儲zabbix具體監控項目的數據和基礎應用數據及權限信息;
  6. Zabbix_WEB,基於PHP語言開發的一套WEB前端網頁,主要用於用戶SA去查看監控數據,web頁面展現,更加的形象,各類配置和操做,經過WEB更加的方便。
  7. Zabbix_agent,被監控端,WEB頁面、網絡設備、服務器硬件、Linux或者windows OS;;;Agent安裝在被監控端,負責收集本地的監控數據;
  8. Zabbix_Proxy,是屬於Zabbix_server的克隆,爲了分擔Zabbix_server的壓力,分佈式節點,proxy能夠直接去監控agent客戶端,同時定時將數據發到Server,稱爲集中式WEB管理;
  9. 假設如今Zabbix監控平臺須要監控1000臺,server監控200臺,2個proxy監控800臺。
  10. Zabbix_server監控客戶端,經過不少方式,SNMP、IPMI、Agent、HTTP協議;
  11. C/S模式:server端(Zabbix_server、DB、php WEB)、client端(安裝Zabbix_Agent),c++

 

Zabbix監控平臺組件概念

  1. 完整的Zabbix監控平臺組件如圖所示,整個監控平臺包括:Zabbix-web、Zabbix-database、Zabbix-server、Zabbix-proxy、Zabbix-Client等;
  2. Zabbix-web基於PHP語言編寫的WEB界面,當作Zabbix WEB管理平臺,方便運維人員經過WEB方式操做整個監控,包括查看和配置監控項、數據圖形;
  3. Zabbix-database關係型數據庫系統,數據存儲在二維表格中,行和列組成的,表明有MYSQL、MariaDB、Oracle、DB2等,用於存儲用戶權限、密碼,客戶端各項監控數據、配置數據;
  4. Zabbix-server是整個監控平臺的核心,老大,負責監控和收集、彙總客戶端的各項監控數據,而後進行統一的分配和存儲至Database中;
  5. Zabbix-proxy給Server分擔壓力的,代替Server去監控客戶端,而且能夠收集客戶端的數據,最終統一上報給老大,當作是分佈式的節點,proxy收集的全部的數據,統一上報給Server;
  6. Zabbix-Client被監控端,是被Server或者Porxy所監控的對象,統稱爲客戶端,Zabbix屬於C/S模式(Client/Server模式);

 

 

Zabbix分佈式監控微信報警實戰

  1. Zabbix分佈式監控系統安裝部署(功能應用場景)
  1. Zabbix應用場景:

企業服務器對用戶提供服務,做爲運維工程師最重要的事情就是保證該網站正常穩定的運行,須要實時監控網站、服務器的運行狀態,而且有故障及時去處理。web

監控網站無需人工時刻去訪問WEB網站或者登錄服務器去檢查,能夠藉助開源監控軟件例如Zabbix、Cacti、Nagios、Ganglia等來實現對網站的7x24小時的監控,而且作到有故障及時報警通知SA解決。sql

 

Zabbix分佈式監控系統(微信報警實戰)數據庫

  1. 主要用於監控WEB網站、數據庫、服務器運行狀態;
  2. 監控網絡設備、交換機、路由器、防火牆設備;
  3. 監控物理機服務器、CPU溫度、機箱是否被入侵;
  4. 監控各類應用,Nginx、MYSQL、PHP、CPU、內存、硬盤資源狀況;

 

一個完整的ZABBIX平臺包括:Zabbix-WEBDatabaseZabbix-Server、Agent客戶端;

  1. Zabbix工做原理:

分佈式特色:分散管理、分擔壓力、分開存儲,緩解Zabbix_Server壓力;

  1. Zabbix web UI,須要部署WEB平臺,PHP代碼,存儲在zabbix源碼目錄中;
  2. 構建一個能夠發佈PHP的架構,常見LAMP、LNMP、LEMP等;

 

  1. Zabbix監控實戰(CentOS7.3
  1. zabbix_server,獨立的服務,須要單獨安裝,後臺啓動服務;

checking for mysql_config... no

configure: error: MySQL library not found

解決方法:yum install mysql-devel -y

  1. Zabbix_web,PHP代碼,須要LAMP、LNMP環境;
  2. zabbix_database,關係型數據庫系統,能夠是mysql、orache、db二、postgresql等;

yum install mariadb mariadb-server mariadb-devel -y

  1. zabbix_agent,客戶端軟件,部署在客戶端服務器,Linux或者Windows;
  2. 若是想zabbix監控網絡設備,須要基於SNMP協議,在交換機網絡設備開啓snmp,基於團體名認證;

WEB網站鏈接數據庫

  1. WEB網站須要鏈接數據庫,必備條件是什麼呢?
  2. 確認WEB網站代碼類型,是PHP、ASP、JSP代碼;
  3. WEB網站鏈接數據庫,須要鏈接的驅動,例如JDBC鏈接驅動;
  4. 數據庫中須要建立庫,create database jfedu;
  5. WEB網站的數據通常存儲到MYSQL庫裏面的表中,程序自動建立表,提早導入DBA寫好表結構;
  6. 須要對WEB網站服務器進行受權,在數據庫服務器受權WEB來訪問、權限包括insert、create、update、drop、select、delete等;

 

 

從0開始Zabbix監控平臺實戰

  1. 至少準備1臺服務器,配置沒有要求,生產環境推薦配置:8C16G300G,若是是虛擬機,配置最低:1C1G40GB;
  2. 安裝Zabbix服務端的操做系統,只能選擇Linux服務器,推薦CentOS7.x,CentOS7.3!Windows操做系統能夠安裝客戶端。
  3. 安裝Zabbix監控平臺必備的組件:Zabbix-WEB、Zabbix-Server、Zabbix-Database(生產環境獨立部署)、Zabbix-Client;
  1. 配置Zabbix-Server,進行源碼編譯,安裝Server模塊,解壓源代碼包,進入源碼目錄,如圖所示:

./configure --prefix=/usr/local/zabbix/ --enable-server --with-mysql --enable-ipv6 --with-net-snmp  --with-libcurl

 

yum install -y curl-devel net-snmp  gcc gcc-c++ -

  1. Zabbix分佈式監控平臺安裝:

(1)、Zabbix監控平臺部署,至少須要安裝四個組件,分別是ZabbixServer,Zabbix Web,Databases,Zabbix Agent,以下爲Zabbix監控平臺安裝配置詳細步驟:

系統環境

Server端:192.168.168.163

Agent端:192.168.68.1

(2)、下載zabbix版本,各個版本之間安裝方法相差不大,能夠根據實際狀況選擇安裝版本,本文版本爲Zabbix-3.2.6.tar.gz

 

Zabbix server端安裝配置,源代碼包,官網下載穩定的版本3.2.6;

wget -c http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download

或者

連接:https://pan.baidu.com/s/1vwpBCUI3H3Y-5-w1dovNhQ 密碼:hqey

tar xzf zabbix-3.2.6.tar.gz

安裝插件

yum -y  install  curl  curl-devel net-snmp net-snmp-devel perl-DBI

cd zabbix-3.2.6

./configure --prefix=/usr/local/zabbix/ --enable-server --with-mysql --enable-ipv6 --with-net-snmp  --with-libcurl

make

make install

 

groupadd zabbix

useradd -g zabbix zabbix

usermod -s /sbin/nologin zabbix

 

(3)、Zabbix Server端和Zabbix Agent執行以下代碼:

yum  -y  install  curl  curl-devel  net-snmp  net-snmp-devel  perl-DBI

groupadd  zabbix

useradd  -g  zabbix  zabbix

usermod  -s  /sbin/nologin  zabbix

 

Zabbix Server端配置

(4)、建立zabbix數據庫,執行受權命令:

mysql > create database zabbix charaset=utf8;

mysql > create zabbix;                                 #

 

mysql >grant all on zabbix.* to zabbix@localhost identified by '123456'

mysql >flush privileges;

 

     解壓zabbix軟件包並將zabbix基礎SQL文件導入數據至zabbix數據庫:

tar -zxvf zabbix-3.2.6.tar.gz

cd zabbix-3.2.6

mysql -uzabbix -p 123456 zabbix <database/mysql/schema.sql

mysql -uzabbix -p 123456 zabbix <database/mysql/images.sql

mysql -uzabbix -p 123456 zabbix <database/mysql/data.sql

 

      切換至Zabbix解壓目錄,執行以下代碼,安裝Zabbix_server:

./configure --prefix=/usr/local/zabbix/  --enable-agent --enable-server --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

 注意:--enable-server          #開啓服務端

make 

make install 

ln -s /usr/local/zabbix/sbin/zabbix* /usr/local/sbin/

          Zabbix server安裝完畢,cd /usr/local/zabbix/etc/目錄,如圖13-3所示:

 

                 備份Zabbix server配置文件,代碼:

cp zabbix_server.conf zabbix_server.conf.bak

                 將zabbix_server.conf配置文件中代碼設置爲以下:

LogFile=/tmp/zabbix_server.log

DBHost=localhost      

DBName=zabbix

DBUsr=zabbix

DBPassword=123456

               同時cp zabbix_server啓動腳本至/etc/init.d/目錄,啓動zabbix_server,Zabbix_server默認監控的端口爲10051.

cd zabbix-3.2.6

cp misc/init.d/tru64/zabbix_server  /etc/init.d/zabbix_server

chmod o+x /etc/init.d/zabbix_server

 

     配置Zabbix   interface Web頁面,安裝HTTP WEB 服務器,將Zabbix WEB代碼發佈至Apache默認發佈目錄,因爲Zabbix3.2+PHP版本須要使用PHP5.4.0版本,請將本機PHP版本升級至5.4.0+,PHP版本須要使用PHP5.4.0版本,請將本機PHP版本升級至5.4.0+,PHP5.3升級至PHP5.6,代碼以下:

rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

yum remove php*

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64  -y

yum   install  httpd  httpd-devel  httpd-tools  -y

cp -a   /root/zabbix-3.2.6/frontends/php/*    /var/www/html/

sed    -i   '/date.timezone/i date.timezone = PRC'   /etc/php.ini

              從新啓動Zabbix Server、HTTP、MYSQL服務,代碼以下:

/etc/init.d/zabbix_server  restart

/etc/init.d/httpd     restart

/etc/init.d/mysqld   restart

  1. Zabbix WEB GUI安裝配置

                經過瀏覽器Zabbix_WEB驗證,經過瀏覽器訪問http://192.168.149.128/,如圖13-4所示:

               單擊下一步,出現如圖13-5所示,若是有錯誤提示,須要把錯誤依賴解決完,方可進行下一步操做。

                如上異常錯誤解決方法代碼以下,安裝缺失的軟包,並修改php.ini對應參數的值便可,如圖13-6所示:

yum  install  php56w-mbstring  php56w-bcmath  php56w-gd  php56w-xml  -y

yum  install  gd  gd-devel  -y

sed   -i '/post_max_size/s/8/16/g;/max_execution_time/s/30/300/g;/max_input_time/s/60/300/g;s/\;date.timezone.*/date.timezone \= PRC/g;s/\;always_populate_raw_post_data/always_populate_raw_post_data/g'  /etc/php.ini

/etc/init.d/httpd  restart

圖13-6 Zabbix WEB測試安裝環境

        單擊下一步,如圖13-7所示,配置數據庫鏈接,輸入數據庫名、用戶、密碼,單擊Test connection,顯示OK,單擊下一步便可

圖13-7 Zabbix WEB數據庫配置

      繼續單擊下一步出現如圖13-8所示,填寫Zabbix Title顯示,能夠爲空,能夠輸入自定義的名稱。

登陸Zabbix WEB界面,默認用戶名和密碼爲:admin/zabbix,如圖13-10(a)、13-10(b)所示:

        單擊下一步,如圖13-9所示,需修建立zabbix.conf.php文件,執行以下命令,或者單擊「Download the configuration file」下載zabbix.conf.php文件,並將該文件上傳至/var/www/html/conf/,並設置可寫權限,刷新WEB頁面,zabbix.conf.php內容代碼以下,最後單擊Finish便可:

<?php

// Zabbix GUI configuration file.

global $DB;

$DB['TYPE']     = 'MYSQL';

$DB['SERVER']   = 'localhost';

$DB['PORT']     = '0';

$DB['DATABASE'] = 'zabbix';

$DB['USER']     = 'zabbix';

$DB['PASSWORD'] = '123456';

// Schema name. Used for IBM DB2 and PostgreSQL.

$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'localhost';

$ZBX_SERVER_PORT = '10051';

$ZBX_SERVER_NAME = '京峯教育-分佈式監控系統';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

圖13-9 Zabbix WEB配置文件測試

登陸Zabbix WEB界面,默認用戶名和密碼爲:admin/zabbix,如圖13-10(a)、13-10(b)所示:

圖13-10(a) Zabbix WEB登陸界面

圖13-10(b) Zabbix WEB後臺界面

  1. Agent客戶端安裝配置

解壓zabbix-3.2.6.tar.gz源碼文件,切換至解壓目錄,編譯安裝Zabbix,命令以下:

./configure  --prefix=/usr/local/zabbix  --enable-agent

make

make install

ln  -s  /usr/local/zabbix/sbin/zabbix_*  /usr/local/sbin/

修改zabbix_agentd.conf客戶端配置文件,執行以下命令,zabbix_agentd.conf內容,指定server IP,同時設置本地Hostname爲本地IP地址或者DNS名稱:

CPU、內存、負載、網卡、磁盤、IO、應用服務、端口、登陸用戶、

LogFile=/tmp/zabbix_agentd.log

Server=192.168.149.128

ServerActive=192.168.149.128

Hostname = 192.168.149.129

同時cp zabbix_agentd啓動腳本至/etc/init.d/目錄,啓動zabbix_agentd服務便可, Zabbix_agentd默認監聽端口爲10050。

cd zabbix-3.2.6

cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd

chmod o+x /etc/init.d/zabbix_agentd

/etc/init.d/zabbix_agentd  start

  1. Zabbix監控客戶端

Zabbix服務端和客戶端安裝完畢以後,需經過Zabbix Server添加客戶端監控,Zabbix WEB界面添加客戶端監控的操做步驟以下,如圖13-11所示:

Zabbix-WEB ---configuration ---hosts ---Create host ---Host name和Agent interfaces,同時選擇添加templates模板 ---選擇Add -------勾選Template OS Linux-選擇Add提交;

注*此處Host name名稱與Agentd.conf配置文件中Hostname保持一致,不然會報錯。

圖13-11 Zabbix 添加客戶端監控

將客戶端主機連接至「Template OS Linux」,啓用模板完成主機默認監控,單擊Add

,繼續單擊Update便可,如圖13-12所示:

圖13-12 Zabbix 爲客戶端監控添加模板

單擊Zabbix WEB---Monitoring---Graphs----Group----Host---Graph,監控圖像如圖13-13(a)、13-13(b)所示:

圖13-13(a) Zabbix客戶端監控圖像

圖13-13(b) Zabbix客戶端監控圖像

若是沒法監控到客戶端,能夠在Zabbix Server端,執行命令獲取Agent的items KEY值是否有返回,例如system.uname爲返回客戶端的uname信息,監測命令以下:

/usr/local/zabbix/bin/zabbix_get  -s  192.168.149.130   -k  system.uname

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

常見問題:

一、編譯Zabbix,報錯以下:

二、編譯Zabbix,報錯信息以下:

checking size of void *... 8

checking for mysql_config... no

configure: error: MySQL library not found

解決方法:yum  install  curl  curl-devel net-snmp mysql-devel mariadb-devel -y

onfigure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

解決方法:yum  install  curl  curl-devel net-snmp net-snmp-devel perl-DBI mysql-devel mariadb-devel -y

三、

預編譯Zabbix報錯信息一以下:

checking for mysql_config... no

configure: error: MySQL library not found

解決方法:

yum install mariadb-devel -y

預編譯Zabbix報錯信息二以下:

checking for curl-config... no

configure: error: Curl library not found

解決方法:

yum install curl-devel -y

 

四、

checking for the linux kernel version... unknown family (3.10.0-327.el7.x86_64)

checking size of void *... 8

checking for mysql_config... no

configure: error: MySQL library not found

解決方案:yum install mariadb mariadb-server mariadb-devel –y

MYSQL(商業版、社區版)、Mariadb(開源免費,徹底兼容MYSQL指令)都是屬於SQL數據庫、RDBMS關係型數據庫。

checking for the linux kernel version... unknown family (3.10.0-327.el7.x86_64)

checking size of void *... 8

checking for mysql_config... no

configure: error: MySQL library not found

解決方案:yum install mariadb mariadb-server mariadb-devel –y

MYSQL(商業版、社區版)、Mariadb(開源免費,徹底兼容MYSQL指令)都是屬於SQL數據庫、RDBMS關係型數據庫。

相關文章
相關標籤/搜索