0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

網(wǎng)絡(luò)監(jiān)控工具Nagios和Zabbix的功能和使用場(chǎng)景

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來(lái)源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2024-08-13 16:28 ? 次閱讀

轉(zhuǎn)載請(qǐng)注明以下內(nèi)容:

來(lái)源:公眾號(hào)【網(wǎng)絡(luò)技術(shù)干貨圈】

作者:圈圈

ID:wljsghq

在現(xiàn)代網(wǎng)絡(luò)管理中,監(jiān)控工具是確保網(wǎng)絡(luò)運(yùn)行正常、快速發(fā)現(xiàn)和解決問題的關(guān)鍵。本文將詳細(xì)介紹網(wǎng)絡(luò)工程師常用的兩款監(jiān)控工具:Nagios、Zabbix。每款工具都有其獨(dú)特的功能和使用場(chǎng)景,了解并掌握這些工具的使用對(duì)于網(wǎng)絡(luò)工程師而言至關(guān)重要。

Nagios

Nagios是一款開源的網(wǎng)絡(luò)監(jiān)控工具,最初由Ethan Galstad在1999年發(fā)布。它的設(shè)計(jì)目的是監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),包括網(wǎng)絡(luò)設(shè)備、服務(wù)器、應(yīng)用程序及服務(wù),并在問題發(fā)生時(shí)提供告警。Nagios的核心優(yōu)勢(shì)在于其靈活的插件系統(tǒng),可以通過各種插件擴(kuò)展其功能,適應(yīng)不同的監(jiān)控需求。

主要功能

Nagios的主要功能包括:

網(wǎng)絡(luò)和服務(wù)器監(jiān)控:監(jiān)控主機(jī)的可達(dá)性和服務(wù)的運(yùn)行狀態(tài)。

服務(wù)監(jiān)控:支持HTTP、SMTP、POP3、NNTP、PING等常見協(xié)議的監(jiān)控。

資源使用監(jiān)控:監(jiān)控CPU負(fù)載、內(nèi)存使用、磁盤使用等系統(tǒng)資源。

告警機(jī)制:通過電子郵件、短信等方式發(fā)送告警通知,及時(shí)報(bào)告問題。

插件支持:通過自定義插件擴(kuò)展監(jiān)控功能,支持幾乎所有的應(yīng)用程序、服務(wù)和系統(tǒng)。

安裝與配置

為了使用Nagios進(jìn)行網(wǎng)絡(luò)監(jiān)控,首先需要在服務(wù)器上安裝并配置Nagios。

在安裝Nagios之前,需要準(zhǔn)備一臺(tái)運(yùn)行Linux操作系統(tǒng)的服務(wù)器。本文以CentOS 7為例,介紹Nagios的安裝過程。

更新系統(tǒng)包:

sudoyumupdate

安裝必要的軟件包:

sudoyuminstallhttpdphpgccglibcglibc-commongdgd-develmakenet-snmp

啟動(dòng)并配置HTTP服務(wù)器:

sudosystemctlstarthttpd
sudosystemctlenablehttpd

下載并解壓Nagios Core源碼包:

cd/tmp
wgethttps://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz
tar-zxvfnagios-4.4.6.tar.gz
cdnagios-4.4.6

配置、編譯并安裝Nagios:

./configure
makeall
sudomakeinstall
sudomakeinstall-init
sudomakeinstall-commandmode
sudomakeinstall-config
sudomakeinstall-webconf

創(chuàng)建Nagios用戶和組:

sudouseraddnagios
sudogroupaddnagcmd
sudousermod-a-Gnagcmdnagios
sudousermod-a-Gnagcmdapache

下載并解壓Nagios插件:

cd/tmp
wgethttps://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar-zxvfnagios-plugins-2.3.3.tar.gz
cdnagios-plugins-2.3.3

配置、編譯并安裝Nagios插件:

./configure--with-nagios-user=nagios--with-nagios-group=nagios
make
sudomakeinstall

啟動(dòng)Nagios服務(wù)并配置為開機(jī)自啟動(dòng):

sudosystemctlstartnagios
sudosystemctlenablenagios

確保Apache服務(wù)器也在運(yùn)行:

sudosystemctlstarthttpd
sudosystemctlenablehttpd

wKgaoma7GYiAJzjjAAZD0XfhkNQ109.png

使用方法

Nagios的配置文件主要位于/usr/local/nagios/etc目錄下。通過編輯這些配置文件,可以定義需要監(jiān)控的主機(jī)、服務(wù)和告警規(guī)則。

nagios.cfg:主配置文件,控制Nagios的全局設(shè)置。

objects/commands.cfg:命令定義文件,包含Nagios使用的檢查命令。

objects/contacts.cfg:聯(lián)系人定義文件,定義告警接收者。

objects/localhost.cfg:本地主機(jī)和服務(wù)定義文件,默認(rèn)示例。

配置示例

編輯nagios.cfg,確保配置正確:

cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

添加監(jiān)控對(duì)象

在objects/localhost.cfg文件中,添加需要監(jiān)控的主機(jī)和服務(wù)。例如:

define host {
    use             linux-server
    host_name       webserver
    alias           My Web Server
    address         192.168.1.1
}

define service {
    use                     generic-service
    host_name               webserver
    service_description     HTTP
    check_command           check_http
}

檢查配置文件并重啟Nagios

檢查配置文件語(yǔ)法:

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg

如果沒有錯(cuò)誤,重啟Nagios:

sudosystemctlrestartnagios

實(shí)際案例

案例一:監(jiān)控Web服務(wù)器

配置Nagios監(jiān)控一臺(tái)Web服務(wù)器的運(yùn)行狀態(tài),并設(shè)置告警策略。當(dāng)Web服務(wù)器無(wú)法訪問時(shí),Nagios會(huì)發(fā)送郵件告警。

添加Web服務(wù)器的主機(jī)定義:

define host {
    use             linux-server
    host_name       webserver
    alias           My Web Server
    address         192.168.1.1
}

添加HTTP服務(wù)的監(jiān)控:

define service {
    use                     generic-service
    host_name               webserver
    service_description     HTTP
    check_command           check_http
    notification_interval   10 ; 每10分鐘通知一次
    notification_options    w,u,c,r ; 通知類型:warning, unknown, critical, recovery
}

配置聯(lián)系人以接收告警通知:

編輯contacts.cfg文件,添加聯(lián)系人信息

define contact {
    contact_name            admin
    alias                   Nagios Admin
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r
    host_notification_options       d,u,r
    service_notification_commands   notify-service-by-email
    host_notification_commands      notify-host-by-email
    email                   admin@example.com
}

配置告警命令:

編輯commands.cfg文件,定義告警命令:

define command {
    command_name    notify-service-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios *****

Notification Type: $NOTIFICATIONTYPE$

Service: $SERVICEDESC$
Host: $HOSTALIAS$
Address: $HOSTADDRESS$
State: $SERVICESTATE$

Date/Time: $LONGDATETIME$

Additional Info:

$SERVICEOUTPUT$
" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

define command {
    command_name    notify-host-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios *****

Notification Type: $NOTIFICATIONTYPE$

Host: $HOSTNAME$
State: $HOSTSTATE$

Address: $HOSTADDRESS$

Date/Time: $LONGDATETIME$

Additional Info:

$HOSTOUTPUT$
" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
}

案例二:監(jiān)控?cái)?shù)據(jù)庫(kù)服務(wù)器

配置Nagios監(jiān)控一臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器的性能指標(biāo),包括CPU使用率、內(nèi)存使用率、磁盤I/O、數(shù)據(jù)庫(kù)查詢性能等。當(dāng)某項(xiàng)指標(biāo)超出閾值時(shí),發(fā)送告警郵件。

添加數(shù)據(jù)庫(kù)服務(wù)器的主機(jī)定義:

define host {
    use             linux-server
    host_name       dbserver
    alias           My Database Server
    address         192.168.1.2
}

添加MySQL服務(wù)的監(jiān)控:

首先,需要安裝MySQL監(jiān)控插件,如check_mysql。假設(shè)插件已安裝并配置好,可以在Nagios中添加相應(yīng)的服務(wù)定義:

define service {
    use                     generic-service
    host_name               dbserver
    service_description     MySQL
    check_command           check_mysql
    notification_interval   10
    notification_options    w,u,c,r
}

深入配置與高級(jí)功能

除了基本的安裝和配置,Nagios還提供了一些高級(jí)功能,可以更有效地幫助管理員監(jiān)控和管理網(wǎng)絡(luò)系統(tǒng)。

使用NRPE插件進(jìn)行遠(yuǎn)程監(jiān)控

NRPE(Nagios Remote Plugin Executor)插件允許Nagios服務(wù)器執(zhí)行遠(yuǎn)程主機(jī)上的插件,從而監(jiān)控遠(yuǎn)程主機(jī)的狀態(tài)。下面是配置NRPE插件的步驟:

在遠(yuǎn)程主機(jī)上安裝NRPE和Nagios插件:

sudoyuminstallnrpenagios-plugins-all

配置NRPE:

編輯/etc/nagios/nrpe.cfg文件,允許Nagios服務(wù)器訪問:

allowed_hosts=127.0.0.1,192.168.1.10

在NRPE配置文件中定義命令:

command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

啟動(dòng)并啟用NRPE服務(wù):

sudosystemctlstartnrpe
sudosystemctlenablenrpe

在Nagios服務(wù)器上配置遠(yuǎn)程主機(jī)和服務(wù)檢查:

在Nagios服務(wù)器的配置文件中添加遠(yuǎn)程主機(jī)和服務(wù)定義:

define host {
    use             linux-server
    host_name       remote_host
    alias           Remote Host
    address         192.168.1.20
}

define service {
    use                     generic-service
    host_name               remote_host
    service_description     Users
    check_command           check_nrpe!check_users
}

define service {
    use                     generic-service
    host_name               remote_host
    service_description     Load
    check_command           check_nrpe!check_load
}

使用Nagios XI進(jìn)行高級(jí)管理

Nagios XI是Nagios的商業(yè)版本,提供了更加用戶友好的界面和一些高級(jí)功能,如自動(dòng)發(fā)現(xiàn)、配置向?qū)?、?bào)告和預(yù)測(cè)分析等。雖然Nagios XI是付費(fèi)軟件,但對(duì)于大規(guī)模部署和需要更復(fù)雜管理功能的企業(yè)來(lái)說,它是一個(gè)非常值得考慮的選項(xiàng)。

wKgaoma7GZ-ARdMuAAL2FWN_Nt4902.png

安裝Nagios XI:

Nagios XI的安裝比Nagios Core稍微復(fù)雜,需要更多的系統(tǒng)資源??梢詤⒖脊俜轿臋n進(jìn)行安裝:https://www.nagios.com/products/nagios-xi/

使用自動(dòng)發(fā)現(xiàn)功能:

Nagios XI提供自動(dòng)發(fā)現(xiàn)功能,可以快速發(fā)現(xiàn)網(wǎng)絡(luò)中的設(shè)備并進(jìn)行初始配置,大大減少手工配置的工作量。

配置向?qū)В?/strong>

配置向?qū)椭脩艨焖倥渲贸R姷谋O(jiān)控場(chǎng)景,如Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、網(wǎng)絡(luò)設(shè)備等,極大地簡(jiǎn)化了配置過程。

使用Nagios Fusion進(jìn)行集中管理

Nagios Fusion是另一款Nagios的商業(yè)產(chǎn)品,允許用戶集中管理多個(gè)Nagios服務(wù)器。對(duì)于大型企業(yè)或多站點(diǎn)的網(wǎng)絡(luò)監(jiān)控,Nagios Fusion提供了統(tǒng)一的視圖和集中管理功能。

安裝Nagios Fusion:

同樣,Nagios Fusion的安裝可以參考官方文檔:https://www.nagios.com/products/nagios-fusion/

添加多個(gè)Nagios服務(wù)器:

在Nagios Fusion的管理界面中,可以添加多個(gè)Nagios服務(wù)器,集中查看和管理它們的狀態(tài)。

統(tǒng)一視圖:

Nagios Fusion提供了統(tǒng)一的視圖,顯示所有連接的Nagios服務(wù)器的狀態(tài),幫助管理員快速了解整個(gè)網(wǎng)絡(luò)的健康狀況。

以下是一個(gè)復(fù)雜的實(shí)際案例,展示了如何使用Nagios監(jiān)控一個(gè)包含多種設(shè)備和服務(wù)的網(wǎng)絡(luò)環(huán)境。

公司擁有一個(gè)大型網(wǎng)絡(luò)環(huán)境,包括多個(gè)Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、文件服務(wù)器和網(wǎng)絡(luò)設(shè)備(如路由器、交換機(jī))。公司希望使用Nagios監(jiān)控所有這些設(shè)備,并在出現(xiàn)問題時(shí)及時(shí)通知相關(guān)管理員。

定義主機(jī)組:

為了更好地組織和管理主機(jī),可以將相同類型的主機(jī)分組。例如,將所有Web服務(wù)器分為一個(gè)組:

define hostgroup {
    hostgroup_name  web-servers
    alias           Web Servers
    members         webserver1,webserver2,webserver3
}

define hostgroup {
    hostgroup_name  db-servers
    alias           Database Servers
    members         dbserver1,dbserver2
}

define hostgroup {
    hostgroup_name  file-servers
    alias           File Servers
    members         fileserver1,fileserver2
}

定義服務(wù)模板:

為了減少重復(fù)配置,可以定義一些服務(wù)模板。例如,定義一個(gè)HTTP服務(wù)模板:

define service {
    name                            http-service
    use                             generic-service
    check_command                   check_http
    notification_interval           30
    notification_options            w,u,c,r
    register                        0
}

應(yīng)用模板到主機(jī)組:

將HTTP服務(wù)模板應(yīng)用到所有Web服務(wù)器:

define service {
    use                             http-service
    hostgroup_name                  web-servers
    service_description             HTTP
}

添加特定服務(wù)監(jiān)控:

為數(shù)據(jù)庫(kù)服務(wù)器添加MySQL監(jiān)控:

define service {
    use                             generic-service
    hostgroup_name                  db-servers
    service_description             MySQL
    check_command                   check_mysql
    notification_interval           10
    notification_options            w,u,c,r
}

配置告警策略:

為每個(gè)主機(jī)組配置不同的告警策略。例如,為Web服務(wù)器配置郵件告警,為數(shù)據(jù)庫(kù)服務(wù)器配置短信告警:

define contact {
    contact_name                    webadmin
    alias                           Web Admin
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r
    host_notification_options       d,u,r
    service_notification_commands   notify-service-by-email
    host_notification_commands      notify-host-by-email
    email                           webadmin@example.com
}

define contact {
    contact_name                    dbadmin
    alias                           Database Admin
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r
    host_notification_options       d,u,r
    service_notification_commands   notify-service-by-sms
    host_notification_commands      notify-host-by-sms
    pager                           +1234567890
}

Zabbix

Zabbix是一款企業(yè)級(jí)開源監(jiān)控解決方案,由Alexei Vladishev在1998年創(chuàng)建,并于2001年發(fā)布第一個(gè)版本。Zabbix的設(shè)計(jì)目標(biāo)是提供全面的監(jiān)控功能,涵蓋從硬件到軟件、從網(wǎng)絡(luò)設(shè)備到虛擬化環(huán)境的監(jiān)控需求。Zabbix不僅支持實(shí)時(shí)監(jiān)控,還能生成詳細(xì)的報(bào)告和圖表,幫助管理員進(jìn)行性能分析和容量規(guī)劃。

wKgZoma7GbSAFR2vAAMiWllP0hM534.png

Zabbix的主要功能包括:

自動(dòng)發(fā)現(xiàn):能夠自動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)中的設(shè)備和服務(wù),并生成相應(yīng)的監(jiān)控項(xiàng)。

多種監(jiān)控方式:支持SNMP、JMX、IPMI、WMI、agent、agentless等多種監(jiān)控方式。

高級(jí)告警:支持多種告警渠道,如電子郵件、短信、即時(shí)通訊工具等,具備靈活的告警策略和依賴關(guān)系管理。

可視化:提供豐富的圖表、儀表盤、報(bào)告等可視化工具,幫助管理員直觀地了解系統(tǒng)狀態(tài)。

數(shù)據(jù)存儲(chǔ)和趨勢(shì)分析:支持大規(guī)模數(shù)據(jù)存儲(chǔ)和長(zhǎng)時(shí)間趨勢(shì)分析,方便進(jìn)行歷史數(shù)據(jù)查詢和分析。

Zabbix安裝與配置

為了使用Zabbix進(jìn)行網(wǎng)絡(luò)監(jiān)控,首先需要在服務(wù)器上安裝并配置Zabbix。

在安裝Zabbix之前,需要準(zhǔn)備一臺(tái)運(yùn)行Linux操作系統(tǒng)的服務(wù)器。本文以CentOS 7為例,介紹Zabbix的安裝過程。

更新系統(tǒng)包:

sudoyumupdate

安裝MariaDB數(shù)據(jù)庫(kù):

sudoyuminstallmariadb-servermariadb
sudosystemctlstartmariadb
sudosystemctlenablemariadb

安裝Apache和PHP:

sudoyuminstallhttpdphpphp-mysqlphp-gdphp-xmlphp-bcmathphp-mbstring
sudosystemctlstarthttpd
sudosystemctlenablehttpd

添加Zabbix倉(cāng)庫(kù):

sudorpm-Uvhhttps://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
sudoyumcleanall

安裝Zabbix Server、Web前端和Agent:

sudoyuminstallzabbix-server-mysqlzabbix-web-mysqlzabbix-agent

創(chuàng)建Zabbix數(shù)據(jù)庫(kù)和用戶:

mysql-uroot-p
CREATEDATABASEzabbixCHARACTERSETutf8COLLATEutf8_bin;
CREATEUSER'zabbix'@'localhost'IDENTIFIEDBY'password';
GRANTALLPRIVILEGESONzabbix.*TO'zabbix'@'localhost';
FLUSHPRIVILEGES;
exit;

導(dǎo)入初始架構(gòu)和數(shù)據(jù):

zcat/usr/share/doc/zabbix-server-mysql*/create.sql.gz|mysql-uzabbix-pzabbix

編輯/etc/zabbix/zabbix_server.conf文件,配置數(shù)據(jù)庫(kù)連接:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password

啟動(dòng)并啟用Zabbix Server和Agent:

sudosystemctlstartzabbix-server
sudosystemctlenablezabbix-server
sudosystemctlstartzabbix-agent
sudosystemctlenablezabbix-agent

編輯Apache配置文件/etc/httpd/conf.d/zabbix.conf:

php_value date.timezone Europe/Riga

將Europe/Riga替換為實(shí)際的時(shí)區(qū),例如Asia/Shanghai。

啟動(dòng)并啟用Apache:

sudosystemctlrestarthttpd

通過Web瀏覽器訪問Zabbix前端安裝向?qū)?,完成安裝配置:

訪問http://your-server-ip/zabbix,根據(jù)提示完成安裝向?qū)У呐渲谩?/p>

使用方法

完成安裝和基本配置后,可以開始使用Zabbix進(jìn)行監(jiān)控。

添加主機(jī)和監(jiān)控項(xiàng)

添加主機(jī):

在Zabbix前端界面,導(dǎo)航到“Configuration” -> “Hosts”,點(diǎn)擊“Create host”按鈕,添加需要監(jiān)控的主機(jī)。配置主機(jī)名、群組、接口等信息。

創(chuàng)建監(jiān)控項(xiàng):

在主機(jī)配置頁(yè)面,導(dǎo)航到“Items”標(biāo)簽,點(diǎn)擊“Create item”按鈕,添加需要監(jiān)控的項(xiàng)。例如,監(jiān)控CPU使用率:

Name: CPU Load
Type: Zabbix agent
Key: system.cpu.load[percpu,avg1]
Type of information: Numeric (float)
Units: %

wKgZoma7GcWAaeFeAAKESE8qFnc901.png

創(chuàng)建觸發(fā)器:

在主機(jī)配置頁(yè)面,導(dǎo)航到“Triggers”標(biāo)簽,點(diǎn)擊“Create trigger”按鈕,添加告警觸發(fā)條件。例如,CPU使用率超過80%時(shí)觸發(fā)告警:

Name: CPU load is too high
Expression: {hostname:system.cpu.load[percpu,avg1].last()} > 0.8
Severity: High

配置告警和通知

添加媒體類型:

導(dǎo)航到“Administration” -> “Media types”,添加新的媒體類型(如電子郵件、短信等)。

配置告警動(dòng)作:

導(dǎo)航到“Configuration” -> “Actions”,點(diǎn)擊“Create action”按鈕,配置告警動(dòng)作。例如,配置當(dāng)CPU使用率超過閾值時(shí)發(fā)送電子郵件通知:

Name: CPU load high alert
Event source: Trigger
Condition: Trigger severity = "High"
Operation: Send message to user group "Zabbix administrators"

使用模板

Zabbix提供了許多預(yù)定義的模板,幫助快速配置常見的監(jiān)控場(chǎng)景??梢栽赯abbix前端界面導(dǎo)航到“Configuration” -> “Templates”,導(dǎo)入或創(chuàng)建模板,并應(yīng)用到需要監(jiān)控的主機(jī)上。

實(shí)際案例

案例一:監(jiān)控Web服務(wù)器

配置Zabbix監(jiān)控一臺(tái)Web服務(wù)器的運(yùn)行狀態(tài),包括HTTP響應(yīng)時(shí)間、CPU使用率、內(nèi)存使用率等。當(dāng)某項(xiàng)指標(biāo)超出閾值時(shí),發(fā)送告警通知。

添加Web服務(wù)器主機(jī):

在Zabbix前端添加Web服務(wù)器主機(jī),配置基本信息。

創(chuàng)建HTTP監(jiān)控項(xiàng):

在主機(jī)配置頁(yè)面的“Items”標(biāo)簽,創(chuàng)建HTTP監(jiān)控項(xiàng):

Name: HTTP response time
Type: HTTP agent
Key: web.page.get[example.com,,80]
Type of information: Numeric (float)
Units: s

創(chuàng)建觸發(fā)器:

在主機(jī)配置頁(yè)面的“Triggers”標(biāo)簽,創(chuàng)建觸發(fā)器:

Name: HTTP response time is too high
Expression: {hostname:web.page.get[example.com,,80].last()} > 2
Severity: High

配置告警通知:

導(dǎo)航到“Configuration” -> “Actions”,創(chuàng)建告警動(dòng)作,發(fā)送電子郵件通知管理員。

案例二:監(jiān)控?cái)?shù)據(jù)庫(kù)服務(wù)器

配置Zabbix監(jiān)控一臺(tái)MySQL數(shù)據(jù)庫(kù)服務(wù)器的性能指標(biāo),包括CPU使用率、內(nèi)存使用率、磁盤I/O、數(shù)據(jù)庫(kù)查詢性能等。當(dāng)某項(xiàng)指標(biāo)超出閾值時(shí),發(fā)送告警通知。

添加數(shù)據(jù)庫(kù)服務(wù)器主機(jī):

在Zabbix前端添加數(shù)據(jù)庫(kù)服務(wù)器主機(jī),配置基本信息。

導(dǎo)入MySQL模板:

導(dǎo)航到“Configuration” -> “Templates”,導(dǎo)入MySQL監(jiān)控模板。

應(yīng)用模板到數(shù)據(jù)庫(kù)服務(wù)器:

在數(shù)據(jù)庫(kù)服務(wù)器主機(jī)配置頁(yè)面,導(dǎo)航到“Templates”標(biāo)簽,選擇MySQL模板并應(yīng)用。

創(chuàng)建自定義監(jiān)控項(xiàng)和觸發(fā)器:

根據(jù)具體需求,創(chuàng)建額外的監(jiān)控項(xiàng)和觸發(fā)器。例如,監(jiān)控MySQL查詢時(shí)間:

Name: MySQL query time
Type: Zabbix agent
Key: mysql.query.time
Type of information: Numeric (float)
Units: s

創(chuàng)建觸發(fā)器:

Name: MySQL query time is too high
Expression: {hostname:mysql.query.time.last()} > 1
Severity: High

深入配置與高級(jí)功能

除了基本的安裝和配置,Zabbix還提供了一些高級(jí)功能,可以更有效地幫助管理員監(jiān)控和管理網(wǎng)絡(luò)系統(tǒng)。

使用Zabbix代理和代理守護(hù)進(jìn)程

Zabbix代理(Agent)和代理守護(hù)進(jìn)程(Proxy)是Zabbix的重要組件,允許在被監(jiān)控主機(jī)上收集數(shù)據(jù),并將其發(fā)送到Zabbix服務(wù)器。

Zabbix代理

Zabbix代理安裝在被監(jiān)控主機(jī)上,直接從操作系統(tǒng)和應(yīng)用程序收集數(shù)據(jù),并將其發(fā)送到Zabbix服務(wù)器。以下是安裝和配置Zabbix代理的步驟:

在被監(jiān)控主機(jī)上安裝Zabbix代理:

sudoyuminstallzabbix-agent

配置Zabbix代理:

編輯/etc/zabbix/zabbix_agentd.conf文件,配置服務(wù)器地址和主機(jī)名:

Server=your_zabbix_server_ip
Hostname=your_monitored_host_name

啟動(dòng)并啟用Zabbix代理:

sudosystemctlstartzabbix-agent
sudosystemctlenablezabbix-agent

Zabbix代理守護(hù)進(jìn)程

Zabbix代理守護(hù)進(jìn)程用于代理模式下,可以收集分布式網(wǎng)絡(luò)中的數(shù)據(jù)并匯總到一個(gè)或多個(gè)Zabbix服務(wù)器。這對(duì)于大規(guī)模分布式網(wǎng)絡(luò)環(huán)境尤為有用。

在代理服務(wù)器上安裝Zabbix代理守護(hù)進(jìn)程:

sudoyuminstallzabbix-proxy-mysql

配置Zabbix代理守護(hù)進(jìn)程:

編輯/etc/zabbix/zabbix_proxy.conf文件,配置數(shù)據(jù)庫(kù)和Zabbix服務(wù)器連接:

Server=your_zabbix_server_ip
Hostname=your_proxy_name
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=password

啟動(dòng)并啟用Zabbix代理守護(hù)進(jìn)程:

sudosystemctlstartzabbix-proxy
sudosystemctlenablezabbix-proxy

使用Zabbix API進(jìn)行自動(dòng)化

Zabbix提供了功能強(qiáng)大的API接口,允許用戶通過編程方式與Zabbix系統(tǒng)進(jìn)行交互,進(jìn)行自動(dòng)化操作。例如,批量添加主機(jī)、監(jiān)控項(xiàng)、觸發(fā)器等。

Zabbix API認(rèn)證

首先,需要獲取Zabbix API的認(rèn)證令牌:

importrequests
importjson

url="http://your_zabbix_server_ip/api_jsonrpc.php"
headers={"Content-Type":"application/json"}

data={
"jsonrpc":"2.0",
"method":"user.login",
"params":{
"user":"Admin",
"password":"zabbix"
},
"id":1
}

response=requests.post(url,headers=headers,data=json.dumps(data))
auth_token=response.json()["result"]

通過API添加主機(jī):

使用獲取的認(rèn)證令牌,通過API添加主機(jī):

data={
"jsonrpc":"2.0",
"method":"host.create",
"params":{
"host":"New_Host",
"interfaces":[
{
"type":1,
"main":1,
"useip":1,
"ip":"192.168.1.10",
"dns":"",
"port":"10050"
}
],
"groups":[
{
"groupid":"2"
}
]
},
"auth":auth_token,
"id":2
}

response=requests.post(url,headers=headers,data=json.dumps(data))
print(response.json())

通過這些API調(diào)用,可以實(shí)現(xiàn)Zabbix系統(tǒng)的自動(dòng)化配置和管理,極大地提高工作效率。

使用Zabbix的可視化和報(bào)表功能

Zabbix提供了豐富的可視化和報(bào)表功能,幫助管理員更好地分析和展示監(jiān)控?cái)?shù)據(jù)。

創(chuàng)建圖表:

在Zabbix前端界面,導(dǎo)航到“Monitoring” -> “Graphs”,選擇需要展示的主機(jī)和監(jiān)控項(xiàng),創(chuàng)建圖表。例如,展示CPU使用率、內(nèi)存使用率等。

創(chuàng)建儀表盤:

導(dǎo)航到“Monitoring” -> “Dashboard”,創(chuàng)建自定義儀表盤,添加多個(gè)小組件(如圖表、地圖、報(bào)警視圖等),實(shí)時(shí)監(jiān)控系統(tǒng)狀態(tài)。

生成報(bào)表:

導(dǎo)航到“Reports” -> “Availability Report”或“Triggers Top 100”,生成系統(tǒng)可用性報(bào)告或最頻繁觸發(fā)的告警報(bào)告,進(jìn)行深入分析。

實(shí)際案例:監(jiān)控復(fù)雜網(wǎng)絡(luò)環(huán)境

以下是一個(gè)復(fù)雜的實(shí)際案例,展示了如何使用Zabbix監(jiān)控一個(gè)包含多種設(shè)備和服務(wù)的網(wǎng)絡(luò)環(huán)境。

案例背景

某公司擁有一個(gè)大型網(wǎng)絡(luò)環(huán)境,包括多個(gè)Web服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、文件服務(wù)器和網(wǎng)絡(luò)設(shè)備(如路由器、交換機(jī))。公司希望使用Zabbix監(jiān)控所有這些設(shè)備,并在出現(xiàn)問題時(shí)及時(shí)通知相關(guān)管理員。

案例配置

定義主機(jī)組:

為了更好地組織和管理主機(jī),可以將相同類型的主機(jī)分組。例如,將所有Web服務(wù)器分為一個(gè)組:

define hostgroup {
    hostgroup_name  web-servers
    alias           Web Servers
    members         webserver1,webserver2,webserver3
}

define hostgroup {
    hostgroup_name  db-servers
    alias           Database Servers
    members         dbserver1,dbserver2
}

define hostgroup {
    hostgroup_name  file-servers
    alias           File Servers
    members         fileserver1,fileserver2
}

定義監(jiān)控模板:

為了減少重復(fù)配置,可以定義一些監(jiān)控模板。例如,定義一個(gè)HTTP服務(wù)模板:

define service {
    name                            http-service
    use                             generic-service
    check_command                   check_http
    notification_interval           30
    notification_options            w,u,c,r
    register                        0
}

應(yīng)用模板到主機(jī)組:

將HTTP服務(wù)模板應(yīng)用到所有Web服務(wù)器:

define service {
    use                             http-service
    hostgroup_name                  web-servers
    service_description             HTTP
}

添加特定服務(wù)監(jiān)控:

為數(shù)據(jù)庫(kù)服務(wù)器添加MySQL監(jiān)控:

define service {
    use                             generic-service
    hostgroup_name                  db-servers
    service_description             MySQL
    check_command                   check_mysql
    notification_interval           10
    notification_options            w,u,c,r
}

配置告警策略:

為每個(gè)主機(jī)組配置不同的告警策略。例如,為Web服務(wù)器配置郵件告警,為數(shù)據(jù)庫(kù)服務(wù)器配置短信告警:

define contact {
    contact_name                    webadmin
    alias                           Web Admin
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r
    host_notification_options       d,u,r
    service_notification_commands   notify-service-by-email
    host_notification_commands      notify-host-by-email
    email                           webadmin@example.com
}

define contact {
    contact_name                    dbadmin
    alias                           Database Admin
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r
    host_notification_options       d,u,r
    service_notification_commands   notify-service-by-sms
    host_notification_commands      notify-host-by-sms
    pager                           +1234567890
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:網(wǎng)絡(luò)工程師常用的2個(gè)監(jiān)控工具:Nagios、Zabbix

文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NanoEdge AI的技術(shù)原理、應(yīng)用場(chǎng)景及優(yōu)勢(shì)

    能耗并提高數(shù)據(jù)安全性。本文將對(duì) NanoEdge AI 的技術(shù)原理、應(yīng)用場(chǎng)景以及優(yōu)勢(shì)進(jìn)行綜述。 1、技術(shù)原理 NanoEdge AI 的核心技術(shù)包括邊緣計(jì)算、神經(jīng)網(wǎng)絡(luò)壓縮和低功耗硬件設(shè)計(jì)。邊緣計(jì)算
    發(fā)表于 03-12 08:09

    NanoPi NEO - 最佳監(jiān)控方案---Nagios 服務(wù)器 - 07

    `最佳監(jiān)控方案---Nagios 服務(wù)器準(zhǔn)備工作:? NanoPi NEO開發(fā)板運(yùn)行ubuntu16.04系統(tǒng),并且能成功連接外網(wǎng)? 預(yù)裝ubuntu系統(tǒng)的電腦1. 首先安裝LAMP ,安裝一些依賴
    發(fā)表于 05-06 14:25

    linux監(jiān)控平臺(tái)搭建

    做到位。流行的開源監(jiān)控軟件有cacti、nagioszabbix、smokeping、open-falcon.cacti、nagios、zabbi
    發(fā)表于 07-09 08:17

    概述nagios監(jiān)控Windows服務(wù)器過程

    nagios的libexec下有check_nt這個(gè)插件,它就是用來(lái)檢查windows機(jī)器的服務(wù)的,其功能類似于check_nrpe.不過還需要搭配另外一個(gè)軟件NSClient,它的功能類似于NRPE,
    發(fā)表于 07-10 06:14

    請(qǐng)問zabbix怎么使用模版監(jiān)控nginx服務(wù)?

    zabbix使用模版監(jiān)控nginx服務(wù)的方法步驟
    發(fā)表于 11-04 07:16

    zabbix自定義監(jiān)控和告警的相關(guān)資料推薦

    一.安裝好agent二. 在目錄/etc/zabbix/zabbix_agentd.d 新建配置文件,如check_machine.conf,根據(jù)自己監(jiān)控的項(xiàng),寫好腳本和返回參數(shù)。注意:腳本最好全路
    發(fā)表于 01-03 08:09

    nagios監(jiān)控vsphere ESXi主機(jī)硬件狀態(tài)

    nagios監(jiān)控vsphere ESXi主機(jī)硬件狀態(tài)(CPU風(fēng)扇、電源模塊、硬盤、溫度)esxi 的只讀賬戶和密碼(本文以chkhardware/chkreadonly為例)插架下載地址,此地址附有相關(guān)說明:主機(jī):DELL R410ESXI版本:ESXI...
    發(fā)表于 01-03 06:13

    詳解StatsD

    在互聯(lián)網(wǎng)業(yè)務(wù)蒸蒸日上的今時(shí)今日,系統(tǒng)架構(gòu)日漸復(fù)雜,隨著軟件產(chǎn)品和工程團(tuán)隊(duì)的變革,許多開源的監(jiān)控工具應(yīng)運(yùn)而生,其中有一些相當(dāng)出名,比如 ZabbixNagios 還有 StatsD。也
    發(fā)表于 10-13 16:01 ?0次下載
    詳解StatsD

    基于Nagios的清華云監(jiān)控平臺(tái)

    平臺(tái)為基礎(chǔ),搭建了基于Nagios的清華云監(jiān)控平臺(tái),先對(duì)清華云平臺(tái)和架構(gòu)進(jìn)行介紹,再對(duì)Nagios和清華云監(jiān)控平臺(tái)架構(gòu)進(jìn)行了論述,在云遷移性能評(píng)估中,以Ubuntu和Windows為操
    發(fā)表于 12-28 10:04 ?0次下載
    基于<b class='flag-5'>Nagios</b>的清華云<b class='flag-5'>監(jiān)控</b>平臺(tái)

    關(guān)于5種常用運(yùn)維監(jiān)控工具的詳細(xì)介紹與特點(diǎn)分析

    運(yùn)維監(jiān)控工具千千萬(wàn),僅開源的解決方案就有流量監(jiān)控(MRTG、Cacti、SmokePing、Graphite 等)和性能告警(NagiosZabb
    的頭像 發(fā)表于 04-08 14:31 ?4038次閱讀
    關(guān)于5種常用運(yùn)維<b class='flag-5'>監(jiān)控</b><b class='flag-5'>工具</b>的詳細(xì)介紹與特點(diǎn)分析

    Nagios WAS WebSphere監(jiān)控

    websphere-nagios.zip
    發(fā)表于 04-27 14:18 ?1次下載
    <b class='flag-5'>Nagios</b> WAS WebSphere<b class='flag-5'>監(jiān)控</b>

    CW-Zabbix基于Zabbix監(jiān)控工具

    ./oschina_soft/gitee-CW-Zabbix.zip
    發(fā)表于 06-16 10:07 ?1次下載
    CW-<b class='flag-5'>Zabbix</b>基于<b class='flag-5'>Zabbix</b>的<b class='flag-5'>監(jiān)控</b><b class='flag-5'>工具</b>

    zabbix監(jiān)控系統(tǒng)的基礎(chǔ)知識(shí)

    zabbix 是一個(gè)基于 Web 界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。
    的頭像 發(fā)表于 12-02 09:48 ?1109次閱讀

    如何用zabbix的實(shí)現(xiàn)主機(jī)監(jiān)控

    Zabbix是企業(yè)級(jí)分布式開源監(jiān)控解決方案。可以對(duì)應(yīng)用服務(wù),數(shù)據(jù)庫(kù),網(wǎng)絡(luò),操作系統(tǒng)等提供7x24小時(shí)的監(jiān)控,在6.x版本開始也新增了Kubernetes
    發(fā)表于 05-05 10:34 ?1558次閱讀
    如何用<b class='flag-5'>zabbix</b>的實(shí)現(xiàn)主機(jī)<b class='flag-5'>監(jiān)控</b>

    常見的7款網(wǎng)絡(luò)監(jiān)控工具分享

    這個(gè)網(wǎng)絡(luò)監(jiān)控工具也非常棒,可以用于隨時(shí)檢查和維護(hù)關(guān)鍵系統(tǒng),以確保應(yīng)用程序和服務(wù)的正常運(yùn)行。Nagios是一個(gè)開源的網(wǎng)絡(luò)
    發(fā)表于 06-16 10:36 ?1969次閱讀