Zabbix運維監(jiān)控平臺如何快速搭建實錄-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關Zabbix運維監(jiān)控平臺如何快速搭建實錄,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站設計、成都網(wǎng)站設計、云龍網(wǎng)絡推廣、微信小程序開發(fā)、云龍網(wǎng)絡營銷、云龍企業(yè)策劃、云龍品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學生創(chuàng)業(yè)者提供云龍建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:muchs.cn

一、Zabbix運行架構

Zabbix是一個企業(yè)級的分布式開源監(jiān)控解決方案。它能夠監(jiān)控各種服務器的健康型、網(wǎng)絡的穩(wěn)定性以及各種應用系統(tǒng)的可靠性。當監(jiān)控出現(xiàn)異常時,Zabbix通過靈活i的告警策咯,可以為任何事件配置基于郵件、短信、微信等告警機制。而這所有的一切,都可以通過Zabbix提供的Web界面進行配置和操作,基于Web的前端頁面還提供了出色的報告和數(shù)據(jù)可視化功能。這些功能和特性使運維人員可以非常輕松的搭建一套功能強大的運維監(jiān)控管理平臺。

Zabbix的運行架構圖如下:
Zabbix運維監(jiān)控平臺如何快速搭建實錄

從圖中可以看出Zabbix主要有幾個組件,分別是:

1)zabbix應用組件

1)Zabbix Server

Zabbix Server是Zabbix的核心組件,是所有配置信息、統(tǒng)計信息和操作數(shù)據(jù)的核心存儲器。它主要負責接收客戶端發(fā)送的報告信息,同時,所有配置、統(tǒng)計數(shù)據(jù)及配置操作數(shù)據(jù)均由其組織進行;

2)Zabbix Database Storage

主要用于存儲數(shù)據(jù),所有配置信息和Zabbix收集到的數(shù)據(jù)都被存儲在數(shù)據(jù)庫中。常用的數(shù)據(jù)庫有Oracle、Mysql等;

3)Zabbix Web界面

這是Zabbix提供的GUI接口,通常與Zabbix Server運行在同一臺物理服務器上;

4)Zabbix Proxy代理服務器

這是一個可選組件,常用于分布監(jiān)控環(huán)境中,代理Server可以代替Zabbix server收集性能和可用性數(shù)據(jù),匯總后同一發(fā)往Zabbix Server端;

5) Zabbix Agent監(jiān)控代理

Zabbix Agent部署在被監(jiān)控主機上,能夠主動監(jiān)控本地資源和應用程序,并負責收集數(shù)據(jù)發(fā)送Zabbix Server端或Zabbix Proxy端;

2)Zabbix服務進程

根據(jù)功能和用途,默認情況下zabbix包含5個進程,如下:

1)zabbix_agentd

zabbix_agentd是Zabbix Agent監(jiān)控代理端守護進程,此進程主要用于收集客戶端數(shù)據(jù),例如:CPU、內(nèi)存、硬盤、網(wǎng)絡使用情況等信息;

2)Zabbix_get

Zabbix提供的一個工具,通常在Zabbix server或Zabbix Proxy端執(zhí)行用來獲取遠程客戶端信息,其實就是Zabbix Server去Zabbix Agent拉取數(shù)據(jù)的過程。此工具常用排錯;

3)Zabbix_sender

Zabbix提供的一個工具,用于發(fā)送數(shù)據(jù)給Zabbix server或Zabbix Proxy,其實是Zabbix Agent主動發(fā)送數(shù)據(jù)到Zabbix Server的過程,通常用于耗時較長的檢查或有大量主機需要監(jiān)控的場景;

4)Zabbix_proxy

Zabbix Proxy的代理守護進程,功能類似于Zabbix server,唯一不同的是它只是一個中轉站,它需要把收集到的數(shù)據(jù)提交到Zabbix Server上或等待Zabbix server主動收集;

5)Zabbix_java_gateway

Zabbix 2.0版本后引入的一個功能,主要用于監(jiān)控JAVA應用環(huán)境,類似于Zabbix_agentd進程。需要注意的是,它只能主動去推送數(shù)據(jù),而不可以等待zabbix server或zabbix proxy來拉取數(shù)據(jù)。它的數(shù)據(jù)最終會給到zabbix server或zabbix proxy上;

6)Zabbix_server

Zabbix server是整個Zabbix系統(tǒng)的核心進程。其他進程所收集到的數(shù)據(jù)最終都會被提交到Zabbix Server上進行統(tǒng)一的處理。

3)Zabbix監(jiān)控術語

在Zabbix監(jiān)控提供系統(tǒng)中,有一些常用的術語,下面開始簡單介紹以下:

1) 主機(host)

表示要監(jiān)控的一臺服務器或網(wǎng)絡設備,可以通過IP或主機名來指定;

2)主機組(host group)

主機的邏輯組:包含主機和模板,但同一個主機組內(nèi)的主機和模板沒有任何直接的關系;主機組通常在給用戶或用戶組指派監(jiān)控權限時使用;

3)監(jiān)控項(item)

表示一個監(jiān)控的具體對象,例如監(jiān)控服務器的CPU負載、磁盤空間等。item是Zabbix進程數(shù)據(jù)收集的核心,相對某個監(jiān)控對象,每個item都由“key”來標識;

4)觸發(fā)器(trigger)

用于評估某監(jiān)控對象接收到的數(shù)據(jù)是否在合理范圍內(nèi);如果接收的數(shù)據(jù)大于閾值時,觸發(fā)器的狀態(tài)將從“OK”變?yōu)椤癙roblem”;當接收到數(shù)據(jù)低于閾值時,又將狀態(tài)變?yōu)椤癘K”狀態(tài);

5)應用集(Applications)

一組監(jiān)控組成的邏輯集合;

6)動作(action)

指對于監(jiān)控中出現(xiàn)的問題事先定義的處理方法。例如發(fā)送通知、何時執(zhí)行操作,執(zhí)行的頻率等;

7)報警媒介類型(media)

表示發(fā)送通知的手段,告警通知的途徑。例如Email、郵件等;

8)模板(template)

一組可以被應用到一個或多個主機上的實體集合,一個模板通常包含了應用集、監(jiān)控項、觸發(fā)器、圖形、聚合圖形、自動發(fā)現(xiàn)機制、Web場景等幾個項目;模板可以直接連接到某個主機;

模板時學習Zabbix的一個難點和重點,為了實現(xiàn)批量、自動化監(jiān)控,通常會將具有相同特征的監(jiān)控項匯總到模板中,然后在主機中直接引用即可,實現(xiàn)快速監(jiān)控部署。

二、安裝部署Zabbix監(jiān)控平臺

Zabbix的安裝部署非常簡單,官方提供四種安裝途徑,分別是二進制RPM包安裝、源碼安裝、容器安裝、虛擬機鏡像安裝。根據(jù)學習方式和運維經(jīng)驗。推薦使用源碼安裝zabbix server,通過RPM包安裝Zabbix_agent。

Zabbix web端是基于Apache或Nginx服務和PHP腳本語言進行構建的,要求Apache的版本為1.3.12以上的版本、PHP的版本為5.4.0以上的版本,同時對PHP擴展包也有要求,例如GD要求2.0以上的版本、libXML要求2.6.15以上的版本。

Zabbix的數(shù)據(jù)存儲支持多種數(shù)據(jù)庫,比如Mysql、Oracle、PostgreSQL等,本次采用Mysql數(shù)據(jù)庫。Zabbix對Mysql的要求必須是5.0.3以上的版本,同時需要InnoDB引擎。

1)部署LNMP環(huán)境

1)部署Nginx

本次使用nginx最新穩(wěn)定版本1.14.1。

[root@zabbix ~]# yum -y install zlib pcre pcre-devel openssl openssl-devel
[root@zabbix ~]# wget http://nginx.org/download/nginx-1.14.1.tar.gz
[root@zabbix ~]# useradd -s /sbin/nologin www
[root@zabbix ~]# tar zxf nginx-1.14.1.tar.gz -C /usr/src
[root@zabbix ~]# cd /usr/src/nginx-1.14.1/
[root@zabbix nginx-1.14.1]# ./configure --prefix=/usr/local/nginx --user=www --group=www \
 --with-http_stub_status_module --with-http_ssl_module --with-pcre \
 --with-http_gzip_static_module && make && make install
[root@zabbix nginx-1.14.1]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
2)部署Mysql
[root@zabbix ~]# wget https://repo.mysql.com/mysql57-community-release-el7.rpm
[root@zabbix ~]# rpm -ivh mysql57-community-release-el7.rpm 
[root@zabbix ~]# yum -y install mysql mysql-server mysql-devel
[root@zabbix ~]# systemctl start mysqld
[root@zabbix etc]# ss -lnt | grep 3306
LISTEN     0      80          :::3306                    :::*

yum安裝mysql數(shù)據(jù)庫后,會隨機生成一個臨時的密碼,可以通過以下命令進行查看:

[root@zabbix ~]# grep password /var/log/mysqld.log 
2020-01-24T14:35:59.600458Z 1 [Note] A temporary password is generated for root@localhost: G#rbsu9r_Z6y
[root@zabbix ~]# mysql -u root -pG#rbsu9r_Z6y
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
mysql> set password=password('123456');
//更改密碼為123456
3)安裝PHP并優(yōu)化
[root@zabbix ~]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel openldap openldap-devel
[root@zabbix ~]# wget https://www.php.net/distributions/php-7.2.3.tar.gz
[root@zabbix ~]# tar zxf php-7.2.3.tar.gz -C /usr/src
[root@zabbix ~]# cd /usr/src/php-7.2.3/
[root@zabbix php-7.2.3]# ./configure --prefix=/usr/local/php7 --enable-fpm \
 --with-fpm-user=www --with-fpm-group=www --with-pdo-mysql=mysqlnd \
 --with-mysqli=mysqlnd --with-zlib --with-curl --with-gd --with-gettext \
 --enable-bcmath --enable-sockets  --with-jpeg-dir \
 --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring \
 --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer \
 --enable-zip && make && make install 
[root@zabbix php-7.2.3]# cp php.ini-production /usr/local/php7/lib/php.ini
[root@zabbix php-7.2.3]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@zabbix php-7.2.3]# vim  /usr/local/php7/lib/php.ini 
post_max_size = 16M
max_execution_time = 300
memory_limit = 128M
max_input_time = 300
date.timezone = Asia/Shanghai
[root@zabbix php-7.2.3]# vim /usr/local/nginx/conf/nginx.conf
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
[root@zabbix etc]# cp php-fpm.conf.default php-fpm.conf
[root@zabbix etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf
[root@zabbix etc]# systemctl daemon-reload
[root@zabbix etc]# systemctl start php-fpm
[root@zabbix etc]# nginx
[root@zabbix etc]# ss -lnt | grep 9000
LISTEN     0      128    127.0.0.1:9000                     *:*                  
[root@zabbix etc]# ss -lnt | grep 80
LISTEN     0      128          *:80                       *:*                  
LISTEN     0      80          :::3306                    :::*

2)編譯安裝zabbix

1)安裝zabbix
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel curl curl-devel libevent libevent-devel
[root@zabbix ~]# groupadd zabbix
[root@zabbix ~]# useradd -g zabbix zabbix
[root@zabbix ~]# wget  https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.0/zabbix-4.0.0.tar.gz
[root@zabbix ~]# tar zxf zabbix-4.0.0.tar.gz -C /usr/src
[root@zabbix ~]# cd /usr/src/zabbix-4.0.0/
[root@zabbix zabbix-4.0.0]# ./configure --prefix=/usr/local/zabbix --with-mysql \
 --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy \
 --enable-java --with-libxml2 && make && make install
[root@zabbix zabbix-4.0.0]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
[root@zabbix zabbix-4.0.0]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
2)創(chuàng)建數(shù)據(jù)庫和初始化表

zabbix serve需要mysql數(shù)據(jù)庫的支持!

[root@zabbix ~]# mysql -u root -p123456
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@'192.168.1.%' identified by 'zabbix';
mysql> flush privileges;
[root@zabbix ~]# cd /usr/src/zabbix-4.0.0/database/mysql/
[root@zabbix mysql]# mysql -u root -p123456
mysql> source schema.sql;
mysql> source images.sql;
mysql> source data.sql;
//導入zabbix源碼包下對應的MySQL的sql語句
3)配置zabbix server端
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=192.168.1.10
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=0.0.0.0
StartPollers=5
StartTrappers=10
StartDiscoverers=10
AlertScriptsPath=usr/local/zabbix/share/zabbix/alertscripts
[root@zabbix ~]# cp /usr/src/zabbix-4.0.0/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
[root@zabbix ~]# cp /usr/src/zabbix-4.0.0/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
[root@zabbix ~]# chmod +x /etc/init.d/zabbix_server 
[root@zabbix ~]# chmod +x /etc/init.d/zabbix_agentd 
[root@zabbix ~]# chkconfig zabbix_server on
[root@zabbix ~]# chkconfig zabbix_agentd on
[root@zabbix ~]# /etc/init.d/zabbix_server start
//啟動過程中,如果因為libmysqlclient.so這個文件報錯,導致無法啟動,需進行以下操作
[root@zabbix ~]# find / -name  libmysqlclient.so
/usr/lib64/mysql/libmysqlclient.so
[root@zabbix ~]# echo "/usr/lib64/mysql" >> /etc/ld.so.conf
[root@zabbix ~]# ldconfig 
[root@zabbix ~]# /etc/init.d/zabbix_server start
[root@zabbix ~]# ss -lnt | grep 10051
LISTEN     0      128          *:10051                    *:*
4)部署zabbix agent

開啟另一臺服務器部署zabbix agent,zabbix agent采用RPM包的方式進行安裝!

[root@agent ~]# wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
[root@agent ~]# rpm -ivh zabbix-agent-4.0.0-2.el7.x86_64.rpm 
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf 
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=192.168.1.10
StartAgents=3
ServerActive=192.168.1.10
Hostname=192.168.1.8
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1                  //啟用agent端自定義item功能,設置參數(shù)為1,表示啟用!可以使用UserParameter指令
[root@agent ~]# systemctl start zabbix-agent
5)安裝zabbix gui

需在zabbix server端進行操作!

[root@zabbix ~]#  cp -r /usr/src/zabbix-4.0.0/frontends/php/ /usr/local/nginx/html/zabbix

客戶端訪問測試:
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄
解決方法如下:

[root@zabbix ~]#  ps -ef | grep php
[root@zabbix ~]# chown -R www:www /usr/local/nginx/html/zabbix/

修改完成之后,刷新web頁面,如圖:
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄
Zabbix運維監(jiān)控平臺如何快速搭建實錄

[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "system.uptime"
//-s:指定zabbix agent端的IP地址;
//-p:指定zabbix agent端的監(jiān)聽端口;
//-k:指定監(jiān)控項;
//如果有輸出結果,則表示zabbix server可以獲取zabbix agent的數(shù)據(jù),配置成功!

本地使用的windows系統(tǒng),建議進行如下操作:控制面板→字體→楷體。將字體下載并上傳到zabbix server上。

[root@zabbix ~]#  ls | grep simhei.ttf
simhei.ttf
[root@zabbix ~]# sed -i 's/DejaVuSans/simhei/g' /usr/local/nginx/html/zabbix/include/defines.inc.php
//其中simhei為字庫名字,不用寫ttf后綴。
[root@zabbix ~]#  mv simhei.ttf /usr/local/nginx/html/zabbix/fonts/
//這樣就可以避免出現(xiàn)中文亂碼的問題

至此,zabbix監(jiān)控平臺已經(jīng)搭建完成!

關于Zabbix運維監(jiān)控平臺如何快速搭建實錄就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享名稱:Zabbix運維監(jiān)控平臺如何快速搭建實錄-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article26/deiicg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、電子商務、網(wǎng)站設計、網(wǎng)站策劃、移動網(wǎng)站建設、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化