1. 程式人生 > >Zabbix監控平臺(一)

Zabbix監控平臺(一)

Zabbix架構

zabbix 是一個基於 WEB 介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix 能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
zabbix架構:
一臺伺服器,搭建server端,周圍有許多客戶端需要監控;在每一個客戶端上需要安裝agent端,每隔一分鐘,server端向agent端主動要資料,agent端根據server端的需求把資料取出來傳給server端,這種方式是agent的被動模式;每隔固定時間,agent端主動把監測出的資料推送給server端。這種方式是agent的主動模式。agent的被動模式對server端消耗很大。

(分散式)在企業中,公司使用ZabbixServer,周圍有幾個IDC機房,每個機房有很多機器,為減輕server的壓力,啟用server的分散式,此時在每個機房都有一個分散式客戶端proxy,機房的被監控端的機器也是agent的主動模式,主動將資料發給proxy,而proxy的本地可能有一個MySQL(DB),每個機房的proxy端先將資料儲存到本地的MySQL,再集中一次性將資料推給zabbix server,這樣採取分散式獲取資料的方式來降低zabbix server的壓力。最終資料彙總到zabbix server的web上出圖。

Zabbix 的執行架構如下圖所示:
在這裡插入圖片描述
運維通過web端檢視,zabbix server將資料寫入MySQL後, 一個LAMP或LNMP的web網站將資料讀到web端。如果zabbix server是主動,agent端是被動模式,那就會是zabbix server的主動模式,zabbix server會主動去找agent端去要資料的話,zabbix server會主動觸發zabbix_get命令,zabbix_get會朝zabbix_agentd傳送一個代號(密碼),這個密碼只有agent端才知道,agent端接收到server端發過來的代號以後,agent端先檢視自己的Application(配置檔案),試圖翻譯zabbix_server發過來的代號,如果能夠翻譯,他就會執行這個代號,無論需要什麼資料,zabbix_agent端就會去執行並將資料返回給zabbix_server,如果不能翻譯,他就會拒絕提供服務,自然zabbix_server獲取不到資料,這就是agent端的被動模式;
agent端的主動模式是定期自動執行代號的動作,將資料推給zabbix_server監聽的埠(10051)。
zabbix_server端監聽10051埠,zabbix_agent監聽10050埠。

  1. 元件

zabbix 由以下幾個元件部分構成:

1) Zabbix Server:

負責接收 agent 傳送的報告資訊的核心元件,所有配置,統計資料及操作資料均由其組織進行;

2) Database Storage:

專用於儲存所有配置資訊,以及由 zabbix 收集的資料;

3) Web interface:

zabbix 的 GUI 介面,通常與 Server 執行在同一臺主機上,將資料提供給web頁面,將資料展示出來;

4) Proxy:

可選元件,常用於分佈監控環境中,代理 Server 收集部分被監控端的監控資料並統一發往 Server 端;

5) Agent:

部署在被監控主機上,負責收集本地資料併發往 Server 端或 Proxy 端;

注:zabbix node 也是 zabbix server 的一種 。

  1. 程序

預設情況下zabbix包含5個程式: zabbix_agentd、 zabbix_get、 zabbix_proxy、 zabbix_sender、zabbix_server,另外一個 zabbix_java_gateway 是可選,這個需要另外安裝。

下面來分別介紹下他們各自的作用:

(1) zabbix_agentd

客戶端守護程序,此程序收集客戶端資料,例如 cpu 負載、記憶體、硬碟使用情況等。

(2)zabbix_get

zabbix 工具,單獨使用的命令,通常在 server 或者proxy端執行獲取遠端客戶端資訊的命令。 通常使用者排錯。 例如在server端獲取不到客戶端的記憶體資料, 我們可以使用zabbix_get獲取客戶端的內容的方式來做故障排查。

(3) zabbix_sender

zabbix 工具,用於傳送資料給 server 或者proxy,通常用於耗時比較長的檢查。很多檢查非常耗時間,導致 zabbix 超時。於是我們在指令碼執行完畢之後,使用 sender 主動提交資料。

(4)zabbix_server

zabbix 服務端守護程序。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway 的資料最終都是提交到 server
備註:當然不是資料都是主動提交給 zabbix_server,也有的是 server 主動去取資料。

(5) zabbix_proxy

zabbix 代理守護程序。功能類似server,唯一不同的是它只是一箇中轉站,它需要把收集到的資料提交/被提交到 server 裡。

(6) zabbix_java_gateway

zabbix2.0 之後引入的一個功能。顧名思義:Java 閘道器,類似 agentd,但是隻用於 Java方面。需要特別注意的是,它只能主動去獲取資料,而不能被動獲取資料。 它的資料最終會給到server或者proxy。用於監聽Java、tomcat容器時需要安裝。

  1. zabbix監控環境中相關術語

主機(host) :
要監控的網路裝置,可由 IP 或 DNS 名稱指定;

主機組(host group):
主機的邏輯容器,可以包含主機和模板,但同一個組織內的主機和模板不能互相連結;主機組通常在給使用者或使用者組指派監控許可權時使用;

(1) 監控項(item) :

一個特定監控指標的相關的資料;這些資料來自於被監控物件;item是 zabbix 進行資料收集的核心,相對某個監控物件,每個 item 都由"key"標識;檢測具體資料資訊的,用於獲取資訊。

(2) 觸發器(trigger) :

一個表示式,用於評估某監控物件的特定 item 內接收到的資料是否在合理範圍內,也就是閾值;接收的資料量大於閾值時,觸發器狀態將從"OK"轉變為"Problem",當資料再次恢復到合理範圍,又轉變為"OK";判斷獲取的資料是否有效,安全,是否有問題。若有問題觸發顏色告警(對資料做判斷)

(3) 事件(event) :

觸發一個值得關注的事情,比如觸發器狀態轉變,新的 agent 或重新上線的 agent 的自動註冊等;

(4) 動作(action) :

指對於特定事件事先定義的處理方法,如傳送通知,何時執行操作;根據告警等級,將具體的告警動作關聯媒介型別通知運維人員,使用者自己的功能模組確定自己是否接收告警郵件

(5) 報警媒介型別(media) :

傳送通知的手段或者通道,如 Email、Jabber 或者 SMS 等;

(6) 模板 (template) :

用於快速定義被監控主機的預設條目集合, 通常包含了 item、 trigger、graph、 screen、 application 以及 low-level discovery rule;模板可以直接連結至某個主機;

(7) 前端(frontend) :

Zabbix 的 web 介面

ZabbixServer的安裝

[[email protected] ~]# mkdir -p rpm
[[email protected] rpm]# ls
fontconfig-2.8.0-5.el6.x86_64.rpm        libX11-common-1.6.4-3.el6.noarch.rpm
fontconfig-devel-2.8.0-5.el6.x86_64.rpm  libX11-devel-1.6.4-3.el6.x86_64.rpm
freetype-2.3.11-17.el6.x86_64.rpm        libXau-devel-1.0.6-4.el6.x86_64.rpm
freetype-devel-2.3.11-17.el6.x86_64.rpm  libxcb-1.12-4.el6.x86_64.rpm
gd-devel-2.0.35-11.el6.x86_64.rpm        libxcb-devel-1.12-4.el6.x86_64.rpm
libICE-1.0.6-1.el6.x86_64.rpm            libXext-1.3.3-1.el6.x86_64.rpm
libSM-1.2.1-2.el6.x86_64.rpm             libXpm-devel-3.5.10-2.el6.x86_64.rpm
libvpx-1.3.0-5.el6_5.x86_64.rpm          libXt-1.1.4-6.1.el6.x86_64.rpm
libvpx-devel-1.3.0-5.el6_5.x86_64.rpm    xorg-x11-proto-devel-7.7-14.el6.noarch.rpm
libX11-1.6.4-3.el6.x86_64.rpm
[[email protected] rpm]# mount /dev/sr0 /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[[email protected] rpm]# yum -y install createrepo
Loaded plugins: fastestmirror
Determining fastest mirrors
[[email protected] rpm]# createrepo -v /root/rpm/
[[email protected] rpm]# ls
fontconfig-2.8.0-5.el6.x86_64.rpm        libX11-common-1.6.4-3.el6.noarch.rpm
fontconfig-devel-2.8.0-5.el6.x86_64.rpm  libX11-devel-1.6.4-3.el6.x86_64.rpm
freetype-2.3.11-17.el6.x86_64.rpm        libXau-devel-1.0.6-4.el6.x86_64.rpm
freetype-devel-2.3.11-17.el6.x86_64.rpm  libxcb-1.12-4.el6.x86_64.rpm
gd-devel-2.0.35-11.el6.x86_64.rpm        libxcb-devel-1.12-4.el6.x86_64.rpm
libICE-1.0.6-1.el6.x86_64.rpm            libXext-1.3.3-1.el6.x86_64.rpm
libSM-1.2.1-2.el6.x86_64.rpm             libXpm-devel-3.5.10-2.el6.x86_64.rpm
libvpx-1.3.0-5.el6_5.x86_64.rpm          libXt-1.1.4-6.1.el6.x86_64.rpm
libvpx-devel-1.3.0-5.el6_5.x86_64.rpm    repodata
libX11-1.6.4-3.el6.x86_64.rpm            xorg-x11-proto-devel-7.7-14.el6.noarch.rpm
[[email protected] rpm]# vim /etc/yum.repos.d/CentOS-Media.repo 
#在末行新增[rpm]模組
[rpm]
name=rpm
baseurl=file:///root/rpm/
gpgcheck=0
enabled=1
[[email protected] rpm]# yum -y install pcre pcre-devel zlib-devel libaio libaio-devel libxml2 libxml2-devel bzip2-devel openssl openssl-devel net-snmp-devel net-snmp curl-devel gd gcc gcc-c++ make libjpeg-devel libpng-devel libcurl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker mysql-devel net-snmp-utils
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

[[email protected] rpm]# yum -y install libvpx-devel gd-devel

編譯安裝LNMP環境

  1. 安裝nginx
[[email protected] ~]# useradd -s /sbin/nologin -M www
[[email protected] ~]# tar xf nginx-1.10.2.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/nginx-1.10.2/
[[email protected] nginx-1.10.2]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module && make && make install
[[email protected] nginx-1.10.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

#建立nginx配置檔案模版
[[email protected] nginx-1.10.2]# cd /usr/local/nginx/conf/
[[email protected] conf]# egrep -v "^$|#" nginx.conf.default > nginx.conf

#將nginx配置檔案改成如下內容
[[email protected] conf]# vim nginx.conf
[[email protected] conf]# cat nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
    location / {
        root   html;
        index  index.php index.html index.htm;
    }
    location = /nginx-status {
                stub_status on;
                access_log off;
        }
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
[[email protected] conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  1. 安裝MySQL
[[email protected] ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
[[email protected] ~]# cd /usr/local/
[[email protected] local]# mv mysql-5.5.32-linux2.6-x86_64 mysql
[[email protected] local]# cd mysql/
[[email protected] mysql]# /bin/cp support-files/my-small.cnf /etc/my.cnf 
[[email protected] mysql]# useradd -s /sbin/nologin -M mysql
[[email protected] mysql]# chown -R mysql.mysql data
[[email protected] mysql]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

Installing MySQL system tables...
OK
Filling help tables...
OK
...以下省略若干...

[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql]# chmod +x /etc/init.d/mysqld 
[[email protected] mysql]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 
[[email protected] mysql]# netstat -antup | grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3990/mysqld  
  1. 安裝libmcrypt
[[email protected] ~]# tar xf libmcrypt-2.5.8.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/libmcrypt-2.5.8/
[[email protected] libmcrypt-2.5.8]# ./configure && make && make install
  1. 安裝GD
[[email protected] ~]# tar xf GD-2.18.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/GD-2.18/
[[email protected] GD-2.18]# perl Makefile.PL
[[email protected] GD-2.18]# make && make install
  1. 安裝PHP
[[email protected] ~]# tar xf php-5.6.30.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/php-5.6.30/
[[email protected] php-5.6.30]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
[[email protected] php-5.6.30]# make && make install

#建立php配置檔案
[[email protected] php-5.6.30]# cp php.ini-development /usr/local/php/etc/php.ini

#修改php配置檔案php.ini
[[email protected] php-5.6.30]# cat -n /usr/local/php/etc/php.ini | sed -n '372p;382p;393p;660p;702p;820p;936p'
   372  max_execution_time = 300
   382  max_input_time = 300
   393  memory_limit = 256M
   660  post_max_size = 32M
   702  always_populate_raw_post_data = -1
   820  upload_max_filesize = 16M
   936  date.timezone =Asia/Shanghai

#建立php-fpm配置檔案
[[email protected] php-5.6.30]# cd /usr/local/php/etc/
[[email protected] etc]# cp php-fpm.conf.default php-fpm.conf

#修改php-fpm.conf配置檔案
[[email protected] etc]# cat -n php-fpm.conf | sed -n '149,150p'
   149  user = www
   150  group = www

安裝zabbix server端

  1. 編譯安裝zabbix server
[[email protected] ~]# useradd zabbix -s /sbin/nologin -M
[[email protected] ~]# tar xf zabbix-3.2.4.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/zabbix-3.2.4/
[[email protected] zabbix-3.2.4]# ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --with-libxml2
[[email protected] zabbix-3.2.4]# make && make install

#由於zabbix啟動指令碼路徑預設指向的是/usr/local/sbin路徑,因此,需要提前簡歷軟連線:
[[email protected] zabbix-3.2.4]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
[[email protected] zabbix-3.2.4]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
  1. 配置zabbix的mysql環境
    Zabbix server 和mysql安裝到一臺伺服器上,首先需要手動建立zabbix資料庫,操作如下:
[[email protected] ~]# which mysqladmin
/usr/bin/mysqladmin
[[email protected] ~]# mysqladmin -uroot password '123456'
[[email protected] ~]# mysql -uroot -p123456 -e 'create database zabbix character set utf8;'
[[email protected] ~]# mysql -uroot -p123456 -e "grant all privileges on zabbix.* to [email protected]'localhost' identified by '123456';"
[[email protected] ~]# mysql -uroot -p123456 -e 'flush privileges;'

#如下資料的匯入順序不可以錯
[[email protected] ~]# mysql -uzabbix -p123456 zabbix < /usr/src/zabbix-3.2.4/database/mysql/schema.sql 
[[email protected] ~]# mysql -uzabbix -p123456 zabbix < /usr/src/zabbix-3.2.4/database/mysql/images.sql 
[[email protected] ~]# mysql -uzabbix -p123456 zabbix < /usr/src/zabbix-3.2.4/database/mysql/data.sql 

安裝Zabbix web GUI

Zabbix web是php程式碼編寫的,因此需要有php環境,前面已經安裝好了lnmp,因此可以直接使用。
預設的nginx安裝的根目錄為/usr/local/nginx/html,因此,只需要Zabbix web的程式碼放到此目錄即可。
Zabbix web的程式碼在Zabbix原始碼包中的frontends/php目錄下,將這個php目錄拷貝到/usr/local/nginx/html/目錄下並改名zabbix即可完成Zabbix web端的安裝。
在瀏覽器輸入http://IP/zabbix,然後會檢查zabbix web執行環境是否滿足,並提供連線資料庫的相關資訊即可,最後將連線資料庫相關資訊都存入檔案zabbix/conf/zabbix.conf.php中,這樣就可以登入zabbix的web平臺了。
預設的zabbix平臺登入使用者名稱為Admin,密碼為zabbix。

  1. 複製zabbix web目錄到nginx web根目錄下
[[email protected] ~]# cp -rp /usr/src/zabbix-3.2.4/frontends/php /usr/local/nginx/html/zabbix
[[email protected] ~]# cd /usr/local/nginx/html/
[[email protected] html]# ll
total 12
-rw-r--r--.  1 root root  537 Dec 14 11:29 50x.html
-rw-r--r--.  1 root root  612 Dec 14 11:29 index.html
drwxr-xr-x. 13 1000 1000 4096 Feb 27  2017 zabbix
[[email protected] html]# chown -R www.www zabbix
[[email protected] html]# ll -d zabbix/
drwxr-xr-x. 13 www www 4096 Feb 27  2017 zabbix/
  1. 啟動nginx服務及php-fpm
[[email protected] html]# /usr/local/nginx/sbin/nginx
[[email protected] html]# netstat -antup | grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      9020/nginx          
[[email protected] html]# /usr/local/php/sbin/php-fpm
[[email protected] html]# netstat -antup | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      9025/php-fpm        

  1. 登入web根據提示生成zabbix.conf.php配置檔案
#起初並沒有zabbix.conf.php配置檔案,我們可以選擇自動生成配置檔案
[[email protected] ~]# cd /usr/local/nginx/html/zabbix/conf
[[email protected] conf]# ls
maintenance.inc.php  zabbix.conf.php.example

在瀏覽器裡輸入http://IP/zabbix,配置zabbix資料庫環境,如下圖所示:
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
設定zabbix中文模式
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

zabbix server的配置

  1. zabbix_server.conf配置
    通過原始碼安裝方式將zabbix安裝到/usr/local/zabbix下面,zabbix server的配置檔案為/usr/local/zabbix/etc/zabbix_server.conf,需要修改的內容為如下:
#需要修改的內容為如下:
[[email protected] ~]# cd /usr/local/zabbix/etc/
[[email protected] etc]# cat -n zabbix_server.conf | sed -n '12p;38p;87p;103p;111p;118p;136p;165p;181p;297p;447p'
    12  # ListenPort=10051
    38  LogFile=/tmp/zabbix_server.log
    87  DBName=zabbix
   103  DBUser=zabbix
   111  # DBPassword=
   118  # DBSocket=/tmp/mysql.sock
   136  # StartPollers=5
   165  # StartTrappers=5
   181  # StartDiscoverers=1
   297  # ListenIP=0.0.0.0
   447  # AlertScriptsPath=${datadir}/zabbix/alertscripts

#將zabbix_server.conf檔案內容修改成如下所示:
[[email protected] etc]# cat -n zabbix_server.conf | sed -n '12p;38p;87p;103p;111p;118p;136p;165p;181p;297p;447p'
    12  ListenPort=10051    #zabbix server監聽埠
    38  LogFile=/tmp/zabbix_server.log  #zabbix server日誌路徑
    87  DBName=zabbix   #zabbix server連線MySQL資料庫的資料庫名
   103  DBUser=zabbix   #zabbix server連線MySQL資料庫的使用者名稱
   111  DBPassword=123456   #zabbix server連線MySQL資料庫的密碼
   118  DBSocket=/tmp/mysql.sock    #MySQL的例項檔案位置
   136  StartPollers=5  #用於設定zabbix server服務啟動時啟動Pollers(主動收集資料程序)的數量,數量越多,則服務端吞吐能力越強,同時對系統資源消耗越大
   165  StartTrappers=10    #用於設定zabbix server服務啟動時啟動Trappers(負責處理Agentd推送過來的資料的程序)的數量。Agentd為主動模式時,zabbix server需要設定這個值大一些。
   181  StartDiscoverers=10 #用於設定zabbix server服務啟動時啟動Discoverers程序的數量,如果zabbix監控報Discoverers程序忙時,需要提高該值。
   297  ListenIP=0.0.0.0    #zabbix server啟動的監聽埠對哪些ip開放,Agentd為主動模式時,這個值建議設定為0.0.0.0(監聽本機任意IP地址)
   447  AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts  #zabbix server執行指令碼存放目錄,一些供zabbix server使用的指令碼,都可以放在這裡。(告警指令碼的路徑)
  1. 新增相關服務和埠到系統配置檔案

編輯/etc/services檔案,在最後新增以下程式碼:

[[email protected] etc]# tail -4 /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

其中,10051是zabbix server的監聽埠,10050是zabbix agent的監聽埠。

  1. 新增管理維護指令碼

從zabbix原始碼包misc/init.d/fedora/cora/目錄中找到zabbix_server和zabbix_agentd,然後複製到/etc/init.d目錄下,由於我們的zabbix_agnetd採用rpm的安裝方式,會自動新增啟動指令碼,所以在此處,我們不進行zabbix_agentd的啟動指令碼的複製。

[[email protected] ~]# cp /usr/src/zabbix-3.2.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
[[email protected] ~]# cd /etc/init.d/
[[email protected] init.d]# chmod +x /etc/init.d/zabbix_server 
[[email protected] init.d]# chkconfig zabbix_server on
  1. 啟動zabbix_server端程序
[[email protected] ~]# /etc/init.d/zabbix_server start
Starting zabbix_server:                                    [  OK  ]
[[email protected] ~]# netstat -antup | grep zabbix_server
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      9319/zabbix_server 

zabbix_agent的安裝與配置

zabbix agent端的安裝建議採用rpm包方式安裝,可從http://repo.zabbix.com/zabbix/3.2/下載zabbix的agent端rpm包,版本與zabbix server端保持一致,安裝如下:

[[email protected] chen]# wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.4-1.el6.x86_64.rpm
[[email protected] ~]# rpm -ivh zabbix-agent-3.2.4-1.el6.x86_64.rpm

安裝完成後,zabbix agent端已經安裝完成了,zabbix agent端的配置目錄位於/etc/zabbix下,可在此目錄進行配置檔案的修改。

[[email protected] ~]# ls
anaconda-ks.cfg              mysql-5.5.32-linux2.6-x86_64.tar.gz
apache-tomcat-8.0.27.tar.gz  nginx-1.10.2.tar.gz
GD-2.18.tar.gz               php-5.6.30.tar.gz
httpd-2.2.17.tar.gz          rpm
install.log                  sendEmail-v1.56.tar.gz
install.log.syslog           yum.sh
jdk-8u60-linux-x64.tar.gz    zabbix-3.2.4.tar.gz
libmcrypt-2.5.8.tar.gz       zabbix-agent-3.2.4-1.el6.x86_64.rpm
[[email protected] ~]# rpm -ivh zabbix-agent-3.2.4-1.el6.x86_64.rpm

特別提示:

zabbix server的原始碼包本身就包含了zabbix server端和zabbix agent端,因此,zabbix伺服器端無需再安裝zabbix agent的rpm包。
然而zabbix agent的rpm包是為了方便在伺服器上進行快速安裝而設計的快捷安裝包。
因此為了統一,監控端和被監控端的zabbix agent我們都用rpm的安裝方式
修改zabbix agent端的配置檔案

#需要修改的內容如下所示:
[[email protected]_Server ~]# cd /etc/zabbix/
[[email protected] zabbix]# cat -n zabbix_agentd.conf | sed -n '13p;32p;95p;103p;120p;136p;147p;265p;284p'
    13  PidFile=/var/run/zabbix/zabbix_agentd.pid
    32  LogFile=/var/log/zabbix/zabbix_agentd.log
    95  Server=127.0.0.1
   103  # ListenPort=10050
   120  # StartAgents=3
   136  ServerActive=127.0.0.1
   147  Hostname=Zabbix server
   265  Include=/etc/zabbix/zabbix_agentd.d/*.conf
   284  # UnsafeUserParameters=0

#將內容修改為如下所示:
[[email protected] zabbix]# cat -n zabbix_agentd.conf | sed -n '13p;32p;95p;103p;120p;136p;147p;265p;284p'
    13  PidFile=/var/run/zabbix/zabbix_agentd.pid   #程序pid存放路徑
    32  LogFile=/var/log/zabbix/zabbix_agentd.log   #zabbix agent日誌存放路徑
    95  Server=127.0.0.1,192.168.239.143  #指定zabbix server端IP地址
   103  ListenPort=10050    #指定agentd的監聽埠
   120  StartAgents=3       #指定啟動agentd程序數量。設定0表示關閉
   136  ServerActive=192.168.239.143:10051    #啟用agnetd主動模式,啟動主動模式後,agentd將主動將收集到的資料傳送到zabbix server端,Server Active後面指定的IP就是zabbix server端IP
   147  Hostname=192.168.239.143 #需要監控伺服器的主機名或者IP地址,此選項的設定一定要和zabbix web端主機配置中對應的主機名一致。
   265  Include=/etc/zabbix/zabbix_agentd.d/    #相關配置都可以放到此目錄下,自動生效
   284  UnsafeUserParameters=1  #啟用agent端自定義item功能,設定此引數為1後,就可以使用UserParameter指令了。UserParameter用於自定義item

啟動zabbix_agent端程序

[[email protected] ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]
[[email protected] ~]# netstat -antup | grep zabbix_agent
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      1322/zabbix_agentd  
tcp        0      0 :::10050                    :::*                        LISTEN      1322/zabbix_agentd  
[[email protected] init.d]# chkconfig zabbix-agent on
#複製zabbix_agent.conf配置檔案到zabbix-agent伺服器
[[email protected] zabbix]# scp zabbix_agentd.conf [email protected]:/etc/zabbix/
Are you sure you want to continue connecting (yes/no)? yes
[email protected]'s password: 
zabbix_agentd.conf                                   100%   10KB  10.1KB/s   00:00  

#修改zabbix-agent伺服器的zabbix_agent.conf配置檔案內容
[[email protected] zabbix]# vim zabbix_agentd.conf 
 95 Server=192.168.239.143
147 Hostname=192.168.239.128
[[email protected] zabbix]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]
[[email protected] zabbix]# netstat -antup | grep 10050
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      1386/zabbix_agentd  
tcp        0      0 :::10050                    :::*                        LISTEN      1386/zabbix_agentd  

我們在監控端和被監控端都進行如上所述的zabbix agent端的安裝。

測試zabbix server監控

如何知道zabbix server監控已經生效呢,可通過zabbix server上的zabbix_get命令來完成,在zabbix server上執行如下命令即可進行測試:

#利用如下命令進行測試,在監控端zabbix_server端進行
[[email protected] zabbix]# /usr/local/zabbix/bin/zabbix_get -s 192.168.239.143 -p 10050 -k "system.uptime"
12139    #有資料顯示就代表監控正常
[[email protected] zabbix]# /usr/local/zabbix/bin/zabbix_get -s 192.168.239.128 -p 10050 -k "system.uptime"
6733      #有資料顯示就代表監控正常

-s 是指定zabbix agent端的IP地址
-p 是指定zabbix agent端的監聽埠
-k 是監控項,即item
如果有輸出結果,表面zabbix server可以從zabbix agent獲取資料,配置成功。

Zabbix的web操作入門

Zabbix Web 操作概述
  1. Zabbix首頁儀表提示面板
    在這裡插入圖片描述
    在這裡插入圖片描述
    常用的圖形:可以根據自己喜好,新增按主機按監控項新增快捷的檢視連結
    常用的聚合圖形:可以將多個監控圖形的曲線合併顯示
    常用的拓撲圖:叢集的架構圖
    主機狀態:被監控的主機的實時狀態
    Web檢測:發一個http請求,看看web是否能正常訪問
    系統狀態:監控端zabbix server伺服器的狀態
    最近20個問題:最後發生的20個告警資訊
    Zabbix狀態:zabbix server監控的詳細彙總資訊

  2. 自定義首頁面板
    在這裡插入圖片描述
    調整後,如下所示:
    在這裡插入圖片描述

  3. 追加常用的監控圖形
    在這裡插入圖片描述
    在這裡插入圖片描述

  4. 修改賬戶密碼
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

  5. 設定報警提示聲音
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

  6. 獲取最新的zabbix共享模版
    在這裡插入圖片描述
    在這裡插入圖片描述

自定義被監控的伺服器
  1. 自定義一個主機組
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    特別提示
    在生產環境時,主機組的名字一定要用英文,不然,當zabbix進行二次開發的時候,中文名稱都是亂碼。那感覺很讓人想死…

  2. 自定義一個主機
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    特別提示
    在生產環境中主機的名字一定要是英文,並且務必和真實主機的主機名一致,且必須歸類加入到主機組中。不然zabbix在進行二次開發的時候會非常麻煩(需要建立類似索引形式的東西去關聯真實伺服器)

自定義一個監控項
  1. 進行監控項的後臺定義
    現在假如我們要定義一個獲取nginx連線數的監控項,那麼我們先得去嘗試能夠獲取這個值。在之前的nginx配置檔案裡我們已經加入了status模組的獲取
    在這裡插入圖片描述
    (1)我們登入網頁獲取這個資訊

在這裡插入圖片描述
(2)我們嘗試通過命令獲取這個資訊

[[email protected] zabbix]# curl -s "http://192.168.239.143:80/nginx-status"
Active connections: 6 
server accepts handled requests
 65 65 2743 
Reading: 0 Writing: 1 Waiting: 5 
[[email protected] zabbix]# curl -s "http://192.168.239.143:80/nginx-status" | head -1 | awk '{print $NF}'
6

(3)在zabbix agent配置檔案裡定義這個監控項

[[email protected] ~]# cd /etc/zabbix/     #進入zabbix agent目錄
[[email protected] zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[[email protected] zabbix]# vim zabbix_agentd.conf 
[[email protected] zabbix]# sed -n '257,270p' zabbix_agentd.conf   
### Option: Include
#   You may include individual files or all files in a directory in the configuration file.
#   Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=

Include=/etc/zabbix/zabbix_agentd.d/        #我們發現zabbix_agentd.d目錄已經預設被include進入了主配置檔案。

# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

由於zabbix_agentd.conf配置檔案預設匯入了所有zabbix_agentd.d目錄下的內容,因此我們可以將監控項定義到zabbix_agentd.d目錄下。
在這裡插入圖片描述
(4)參考模版,自己定義監控項的獲取命令

[[email protected] zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[[email protected] zabbix_agentd.d]# vim userparameter_nginx.conf 
UserParameter=nginx.active,curl -s "http://192.168.239.143:80/nginx-status" | head -1 | awk '{print $NF}'

(5)自定義監控項,等於改變了配置檔案,自然需要重啟zabbix_agentd

[[email protected] ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]

(6)在zabbix server端測試獲取自定義的監控項資訊

[[email protected] zabbix_agentd.d]# zabbix_get -s 192.168.239.143 -p 10050 -k "nginx.active"
6

  1. 進行監控項的前臺定義
    (1)點選一個被監控的主機
    在這裡插入圖片描述
    (2)進入監控項建立模版
    在這裡插入圖片描述
    (3)建立監控項
    自定義間隔時間可用於降低server端壓力
    在這裡插入圖片描述
    在這裡插入圖片描述

在這裡插入圖片描述
(4)建立完成的監控項
在這裡插入圖片描述

  1. 自定義一個監控項的圖形

(1)點選一個被監控的主機
在這裡插入圖片描述
(2)進入圖形建立模版
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
(3)檢視圖形繪圖
在這裡插入圖片描述
(4)關於圖形的各種顯示效果
在這裡插入圖片描述
正常圖形:
在這裡插入圖片描述
層積圖形:
在這裡插入圖片描述
Pie圖形:
在這裡插入圖片描述
爆發的圖形:
在這裡插入圖片描述

  1. 自定義一個聚合圖形
    (1)建立一個聚合圖形
    在這裡插入圖片描述
    在這裡插入圖片描述(2)編輯聚合圖形
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    (3)選擇展示圖形
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    (4)將聚合圖形新增到zabbix web首頁面板
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
  2. 自定義一個拓撲圖形
    (1)進入拓撲圖編輯介面
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    (2)新增一個新的拓撲圖形

    相關推薦

    Zabbix監控平臺搭建部署與概述。

    Zabbix監控平臺(一)搭建部署與概述 Zabbix監控平臺   一,Zabbix架構 zabbix 是一個基於 WEB 介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix 能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統

    Zabbix監控平臺

    Zabbix架構 zabbix 是一個基於 WEB 介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix 能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。 zabbix架構: 一臺伺服器,搭建serve

    Zabbix監控平臺搭建部署與概述

    一、Zabbix架構 zabbix 是一個基於 WEB 介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。zabbix 能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。 Zabbix 的執行架構如下圖所示: 1.1

    Zabbix監控系統:初識Zabbix

    一、Zabbix簡介 Zabbix 是由 Alexei Vladishev 開發的一種網路監視、管理系統,基於 Server-Client 架構。可用於監視各種網路服務、伺服器和網路機器等狀態。 使用各種 Database-end 如 MySQL, PostgreSQL, SQLite, O

    Zabbix監控平臺深入理解zabbix

    一,Zabbix Web操作深入   1.1 Zabbix Web下的主機和模版以及監控項的新增方式   (1)建立一個模版 我們所有的功能幾乎都是在模版中定義的 我們再點進新建立的模版檢視 模版裡幾乎可以設定我們需要的所有功能

    Zabbix監控平臺

    Zabbix Web操作深入 Zabbix Web下的主機和模版以及監控項的新增方式 (1)建立一個模版 我們所有的功能幾乎都是在模版中定義的 我們再點進新建立的模版檢視 模版裡幾乎可以設定我們需要的所有功能 (2)在模版裡建立應用集 應用集的作用就

    Zabbix監控平臺

    Zabbix生產環境監測案例概述 專案規劃 主機分組 交換機(用SNMP監控) Nginx(用Agent監控) Tomcat(用JMX監控) MySQL Apache PHP-fpm redis(也有狀態頁,同學們自己研究) memcache(也有狀態頁,同學們自己研究) 監控

    Zabbix監控平臺生產環境案例

    Zabbix監控平臺(三)生產環境案例   一,Zabbix生產環境監測案例概述 1.1 專案規劃 1.2 SNMP監控流程 1.3 IPMI 1.4 JMX(使用Zabbix Java Gateway代理

    Zabbix監控平臺深入瞭解

    Zabbix監控(二)深入瞭解 一,Zabbix Web操作深入 1.1 Zabbix Web下的主機和模版以及監控項的新增方式 1.2 Zabbix Web下觸發器與表示式的編寫方法 1.3 Zabbix Web建立觸發器過程以及觸發器與監控項對應關係 1.4

    zabbix服務端監控搭建

    zabbix第1章 環境搭建[[email protected] zabbix]# uname -mx86_64[[email protected] zabbix]# uname -r2.6.32-642.el6.x86_64[[email protected] zabbix]#

    輕松部署Zabbix集中監控系統

    定制 fonts 登錄 yum disable base 日誌 onf pre Zabbix簡介 zabbix概念 zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供柔

    centos7搭建ELK Cluster日誌分析平臺

    場景 git centos7 beat images 下載地址 install posit src 應用場景:ELK實際上是三個工具的集合,ElasticSearch + Logstash + Kibana,這三個工具組合形成了一套實用、易用的監控架構,      很多公司

    zabbix 監控key

    分鐘 xxxxx ldap cached zabbix用戶 written was not in cpuinfo Key 描述 返回值 參數 詳細說明 agent.hostname 返回被監控端名稱 字符串 - 返回配置文件中配置的被監控端的名稱 a

    搭建部署 分布式ELK平臺

    sca java 7 zip 什麽 jpg repl columns sna count 搭建部署 分布式ELK平臺ELK 是什麽 ?ELK 其實並不是一款軟件,而是一整套解決方案,是三個軟件產品的首字母縮寫 – Elasticsearch:負責日誌檢索和儲存

    Django+xadmin打造在線教育平臺

    inf lba user XA 放大 ons record min 後臺管理 Django+xadmin打造在線教育平臺(一) 代碼 github下載 一、前言 代碼下載: 開發環境:     python: 3.6.4     Django: 2.0.2 後

    使用JAVA開發微信公眾平臺——環境搭建與開發接入

    iges 微信平臺 校驗 後臺服務 結果 png 交互 package app 一、 初始微信公眾平臺 微信公眾平臺,即我們平時所說的“公眾號”,曾用名“官方平臺”、“媒體平臺”,但最終命名為&ldq

    zabbix安裝部署

    for cti spa soc x86 cor ges symlink web 一、zabbix安裝 1.系統環境 [root@zabbix ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)

    zabbix初始用

    zabbix使用筆記 zabbix-server的安裝之前博文有,這裡就不多講了 zabbix-agent部署&配置 部署 新增zabbix源 rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbi

    Zabbix監控系統Zabbix管理之自動發現服務

    1. 建立自動發現 配置->自動發現->建立發現規則 設定名稱 配置IP範圍 設定延遲時間 設定IP地址為唯一性準則 啟用發現規則 2. 建立動作 配置->動作->建立動作 2.1 設定執

    資料實時監控平臺:Telegraf簡介及安裝

    接著上一篇部落格:InfluxDB簡介及安裝,這篇部落格介紹下Linux環境下Telegraf安裝以及其功能特點。。。 官網地址:influxdata 官方文件:telegraf文件   環境:CentOS7.4 64位 Telegraf版本:0.11.1-1   一、Tel