這篇文章將為大家詳細(xì)講解有關(guān)Zabbix運(yùn)維監(jiān)控平臺(tái)如何快速搭建實(shí)錄,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
Zabbix是一個(gè)企業(yè)級(jí)的分布式開源監(jiān)控解決方案。它能夠監(jiān)控各種服務(wù)器的健康型、網(wǎng)絡(luò)的穩(wěn)定性以及各種應(yīng)用系統(tǒng)的可靠性。當(dāng)監(jiān)控出現(xiàn)異常時(shí),Zabbix通過靈活i的告警策咯,可以為任何事件配置基于郵件、短信、微信等告警機(jī)制。而這所有的一切,都可以通過Zabbix提供的Web界面進(jìn)行配置和操作,基于Web的前端頁面還提供了出色的報(bào)告和數(shù)據(jù)可視化功能。這些功能和特性使運(yùn)維人員可以非常輕松的搭建一套功能強(qiáng)大的運(yùn)維監(jiān)控管理平臺(tái)。
Zabbix的運(yùn)行架構(gòu)圖如下:
從圖中可以看出Zabbix主要有幾個(gè)組件,分別是:
Zabbix Server是Zabbix的核心組件,是所有配置信息、統(tǒng)計(jì)信息和操作數(shù)據(jù)的核心存儲(chǔ)器。它主要負(fù)責(zé)接收客戶端發(fā)送的報(bào)告信息,同時(shí),所有配置、統(tǒng)計(jì)數(shù)據(jù)及配置操作數(shù)據(jù)均由其組織進(jìn)行;
主要用于存儲(chǔ)數(shù)據(jù),所有配置信息和Zabbix收集到的數(shù)據(jù)都被存儲(chǔ)在數(shù)據(jù)庫中。常用的數(shù)據(jù)庫有Oracle、Mysql等;
這是Zabbix提供的GUI接口,通常與Zabbix Server運(yùn)行在同一臺(tái)物理服務(wù)器上;
這是一個(gè)可選組件,常用于分布監(jiān)控環(huán)境中,代理Server可以代替Zabbix server收集性能和可用性數(shù)據(jù),匯總后同一發(fā)往Zabbix Server端;
Zabbix Agent部署在被監(jiān)控主機(jī)上,能夠主動(dòng)監(jiān)控本地資源和應(yīng)用程序,并負(fù)責(zé)收集數(shù)據(jù)發(fā)送Zabbix Server端或Zabbix Proxy端;
根據(jù)功能和用途,默認(rèn)情況下zabbix包含5個(gè)進(jìn)程,如下:
zabbix_agentd是Zabbix Agent監(jiān)控代理端守護(hù)進(jìn)程,此進(jìn)程主要用于收集客戶端數(shù)據(jù),例如:CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)使用情況等信息;
Zabbix提供的一個(gè)工具,通常在Zabbix server或Zabbix Proxy端執(zhí)行用來獲取遠(yuǎn)程客戶端信息,其實(shí)就是Zabbix Server去Zabbix Agent拉取數(shù)據(jù)的過程。此工具常用排錯(cuò);
Zabbix提供的一個(gè)工具,用于發(fā)送數(shù)據(jù)給Zabbix server或Zabbix Proxy,其實(shí)是Zabbix Agent主動(dòng)發(fā)送數(shù)據(jù)到Zabbix Server的過程,通常用于耗時(shí)較長(zhǎng)的檢查或有大量主機(jī)需要監(jiān)控的場(chǎng)景;
Zabbix Proxy的代理守護(hù)進(jìn)程,功能類似于Zabbix server,唯一不同的是它只是一個(gè)中轉(zhuǎn)站,它需要把收集到的數(shù)據(jù)提交到Zabbix Server上或等待Zabbix server主動(dòng)收集;
Zabbix 2.0版本后引入的一個(gè)功能,主要用于監(jiān)控JAVA應(yīng)用環(huán)境,類似于Zabbix_agentd進(jìn)程。需要注意的是,它只能主動(dòng)去推送數(shù)據(jù),而不可以等待zabbix server或zabbix proxy來拉取數(shù)據(jù)。它的數(shù)據(jù)最終會(huì)給到zabbix server或zabbix proxy上;
Zabbix server是整個(gè)Zabbix系統(tǒng)的核心進(jìn)程。其他進(jìn)程所收集到的數(shù)據(jù)最終都會(huì)被提交到Zabbix Server上進(jìn)行統(tǒng)一的處理。
在Zabbix監(jiān)控提供系統(tǒng)中,有一些常用的術(shù)語,下面開始簡(jiǎn)單介紹以下:
表示要監(jiān)控的一臺(tái)服務(wù)器或網(wǎng)絡(luò)設(shè)備,可以通過IP或主機(jī)名來指定;
主機(jī)的邏輯組:包含主機(jī)和模板,但同一個(gè)主機(jī)組內(nèi)的主機(jī)和模板沒有任何直接的關(guān)系;主機(jī)組通常在給用戶或用戶組指派監(jiān)控權(quán)限時(shí)使用;
表示一個(gè)監(jiān)控的具體對(duì)象,例如監(jiān)控服務(wù)器的CPU負(fù)載、磁盤空間等。item是Zabbix進(jìn)程數(shù)據(jù)收集的核心,相對(duì)某個(gè)監(jiān)控對(duì)象,每個(gè)item都由“key”來標(biāo)識(shí);
用于評(píng)估某監(jiān)控對(duì)象接收到的數(shù)據(jù)是否在合理范圍內(nèi);如果接收的數(shù)據(jù)大于閾值時(shí),觸發(fā)器的狀態(tài)將從“OK”變?yōu)椤癙roblem”;當(dāng)接收到數(shù)據(jù)低于閾值時(shí),又將狀態(tài)變?yōu)椤癘K”狀態(tài);
一組監(jiān)控組成的邏輯集合;
指對(duì)于監(jiān)控中出現(xiàn)的問題事先定義的處理方法。例如發(fā)送通知、何時(shí)執(zhí)行操作,執(zhí)行的頻率等;
表示發(fā)送通知的手段,告警通知的途徑。例如Email、郵件等;
一組可以被應(yīng)用到一個(gè)或多個(gè)主機(jī)上的實(shí)體集合,一個(gè)模板通常包含了應(yīng)用集、監(jiān)控項(xiàng)、觸發(fā)器、圖形、聚合圖形、自動(dòng)發(fā)現(xiàn)機(jī)制、Web場(chǎng)景等幾個(gè)項(xiàng)目;模板可以直接連接到某個(gè)主機(jī);
模板時(shí)學(xué)習(xí)Zabbix的一個(gè)難點(diǎn)和重點(diǎn),為了實(shí)現(xiàn)批量、自動(dòng)化監(jiān)控,通常會(huì)將具有相同特征的監(jiān)控項(xiàng)匯總到模板中,然后在主機(jī)中直接引用即可,實(shí)現(xiàn)快速監(jiān)控部署。
Zabbix的安裝部署非常簡(jiǎn)單,官方提供四種安裝途徑,分別是二進(jìn)制RPM包安裝、源碼安裝、容器安裝、虛擬機(jī)鏡像安裝。根據(jù)學(xué)習(xí)方式和運(yùn)維經(jīng)驗(yàn)。推薦使用源碼安裝zabbix server,通過RPM包安裝Zabbix_agent。
Zabbix web端是基于Apache或Nginx服務(wù)和PHP腳本語言進(jìn)行構(gòu)建的,要求Apache的版本為1.3.12以上的版本、PHP的版本為5.4.0以上的版本,同時(shí)對(duì)PHP擴(kuò)展包也有要求,例如GD要求2.0以上的版本、libXML要求2.6.15以上的版本。
Zabbix的數(shù)據(jù)存儲(chǔ)支持多種數(shù)據(jù)庫,比如Mysql、Oracle、PostgreSQL等,本次采用Mysql數(shù)據(jù)庫。Zabbix對(duì)Mysql的要求必須是5.0.3以上的版本,同時(shí)需要InnoDB引擎。
本次使用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
[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ù)庫后,會(huì)隨機(jī)生成一個(gè)臨時(shí)的密碼,可以通過以下命令進(jìn)行查看:
[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
[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 :::*
[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/
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; //導(dǎo)入zabbix源碼包下對(duì)應(yīng)的MySQL的sql語句
[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 //啟動(dòng)過程中,如果因?yàn)閘ibmysqlclient.so這個(gè)文件報(bào)錯(cuò),導(dǎo)致無法啟動(dòng),需進(jìn)行以下操作 [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 *:*
開啟另一臺(tái)服務(wù)器部署zabbix agent,zabbix agent采用RPM包的方式進(jìn)行安裝!
[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è)置參數(shù)為1,表示啟用!可以使用UserParameter指令 [root@agent ~]# systemctl start zabbix-agent
需在zabbix server端進(jìn)行操作!
[root@zabbix ~]# cp -r /usr/src/zabbix-4.0.0/frontends/php/ /usr/local/nginx/html/zabbix
客戶端訪問測(cè)試:
解決方法如下:
[root@zabbix ~]# ps -ef | grep php [root@zabbix ~]# chown -R www:www /usr/local/nginx/html/zabbix/
修改完成之后,刷新web頁面,如圖:
[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)控項(xiàng); //如果有輸出結(jié)果,則表示zabbix server可以獲取zabbix agent的數(shù)據(jù),配置成功!
本地使用的windows系統(tǒng),建議進(jìn)行如下操作:控制面板→字體→楷體。將字體下載并上傳到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)控平臺(tái)已經(jīng)搭建完成!
關(guān)于Zabbix運(yùn)維監(jiān)控平臺(tái)如何快速搭建實(shí)錄就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
分享名稱:Zabbix運(yùn)維監(jiān)控平臺(tái)如何快速搭建實(shí)錄-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://chinadenli.net/article26/deiicg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、電子商務(wù)、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容