精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

如何借助Monit搭建服務器監控系統?

責任編輯:editor004

作者:布加迪/編譯

2015-04-07 14:56:22

摘自:51CTO

許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。

許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。雖然集中式監控系統為管理員在處理許多主機和設備時簡化了工作,但專用的監控設備顯然成了單一故障點;要是監控設備出現故障或者由于其他原因(比如硬件壞掉或網絡停運)而聯系不上,你就失去了可見性,無法了解整個基礎設施的狀況。

想為監控系統增添冗余機制,一個辦法就是起碼在網絡上任何關鍵/核心服務器上安裝獨立的監控軟件(作為一條退路)。那樣萬一集中式監控系統壞掉,你仍能夠通過備用的監控工具,保持可見性,了解核心服務器的狀況。

Monit簡介

Monit是一種跨平臺的開源工具,可用于監控Unix/Linux系統(比如Linux、BSD、OSX和Solaris)。Monit安裝起來極其容易,也非常輕型(大小只有500KB),并不需要任何第三方程序、插件或代碼庫。不過,Monit有助于提供成熟的監控功能,具有進程狀態監控、文件系統變化監控、電子郵件通知、針對核心服務的可定制操作等功能。Monit集安裝簡易、輕量級實現和功能強大等優點于一身,因而是一款再理想不過的備用監控工具。

好幾年來我一直在多個主機上使用Monit,對它一貫以來的可靠表現非常滿意。即使作為一款成熟的監控系統,Monit對任何Linux管理員來說也非常實用、非常強大。我在本教程中將演示如何在本地服務器上搭建Monit(作為備用監控工具),以監控常見服務。該系統搭建起來后,我將僅僅介紹Monit強大功能的皮毛。

將Monit安裝到Linux上

大多數Linux發行版已經在其軟件庫中含有Monit。

在Debian、Ubuntu或Linux Mint上:

$ sudo aptitude install monit

在Fedora或CentOS/RHEL上:

在CentOS/RHEL上,你必須先啟用EPEL或Repoforge軟件庫。

# yum install monit

Monit隨帶一個文檔很齊全的配置文件,有許多示例。主配置文件位于Fedora/CentOS/RHEL中的/etc/monit.conf,或位于Debian/Ubuntu/Mint中的/etc/monit/monitrc。Monit配置有兩個部分:“全局”部分和“服務”部分。

[page]

許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。雖然集中式監控系統為管理員在處理許多主機和設備時簡化了工作,但專用的監控設備顯然成了單一故障點;要是監控設備出現故障或者由于其他原因(比如硬件壞掉或網絡停運)而聯系不上,你就失去了可見性,無法了解整個基礎設施的狀況。

全局配置:Web狀態頁面

Monit可以使用幾種郵件服務器用于通知,以及/或者HTTP/HTTPS狀態頁面。不妨從滿足下列要求的Web狀態頁面入手。

·Monit偵聽端口1966。

·對Web狀態頁面的訪問用SSL加密。

·登錄需要monituser/romania作為用戶/密碼。

·只允許從本地主機、myhost.mydomain.ro和內部局域網(192.168.0.0/16)進行登錄。

·Monit以pem格式存儲SSL證書。

至于隨后的步驟,我將使用基于紅帽的系統。類似步驟適用于基于Debian的系統上。

首先,生成一個自簽名的證書(monit.pem),并存儲在/var/cert中。

# mkdir /var/certs

# cd /etc/pki/tls/certs

# ./make-dummy-cert monit.pem

# cp monit.pem /var/certs

# chmod 0400 /var/certs/monit.pem

現在,將下列代碼片段放入到Monit的主配置文件。你可以從空的配置文件入手,也可以拷貝一份原始文件。

許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。雖然集中式監控系統為管理員在處理許多主機和設備時簡化了工作,但專用的監控設備顯然成了單一故障點;要是監控設備出現故障或者由于其他原因(比如硬件壞掉或網絡停運)而聯系不上,你就失去了可見性,無法了解整個基礎設施的狀況。

全局配置:電子郵件通知

下一步,不妨在Monit中建立電子郵件通知機制。我們至少需要一臺活動的SMTP服務器,它能夠從Monit主機發送郵件。類似下列的信息就可以了(針對你的具體情況稍作調整):

·郵件服務器主機名:smtp.monit.ro

·Monit所使用的發送者電子郵件地址:[email protected]

·誰將收到來自monit守護程序的郵件:[email protected]

·郵件服務器使用的SMTP端口:587(默認端口是25)

有了上述信息,電子郵件通知可以配置成這樣:

set mailserver smtp.monit.ro port 587

set mail-format {

from: [email protected] subject: $SERVICE $EVENT at $DATE on $HOST

message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.

Yours sincerely,

Monit

}

set alert [email protected]

正如你所見,Monit提供了幾個內置變量($DATE、$EVENT和$HOST等),你可以定制電子郵件消息,以滿足自己的需要。如果你想從Monit主機本身發送郵件,就需要一個已經安裝的與sendmail兼容的程序(比如postfix或ssmtp)。

許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。雖然集中式監控系統為管理員在處理許多主機和設備時簡化了工作,但專用的監控設備顯然成了單一故障點;要是監控設備出現故障或者由于其他原因(比如硬件壞掉或網絡停運)而聯系不上,你就失去了可見性,無法了解整個基礎設施的狀況。

全局配置:Monit守護程序

下一個部分是設置monit守護程序。我們將按如下方式設置它。

·120秒過后執行首次檢查。

·每隔3分鐘檢查一次服務。

·使用syslog用于記錄日志。

放入下面這個代碼片段,獲得上述設置。

set daemon 120

with start delay 240

set logfile syslog facility log_daemon

我們還必須定義“idfile”和“eventqueue”,前者是monit守護程序使用的獨特ID,后者是monit發送郵件的路徑,但由于SMTP/網絡錯誤而無法送達。證實路徑(/var/monit)已經存在。下列配置就行。

[page]

測試全局配置

現在,“全局”部分已完成。Monit配置文件看起來就像這樣:

# 全局部分

# status webpage and acl's

set httpd port 1966 and

SSL ENABLE

PEMFILE /var/certs/monit.pem

allow monituser:romania

allow localhost

allow 192.168.0.0/16

allow myhost.mydomain.ro

# mail-server

set mailserver smtp.monit.ro port 587

# email-format

set mail-format {

from: [email protected] subject: $SERVICE $EVENT at $DATE on $HOST

message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.

Yours sincerely,

Monit

}

set alert [email protected]# 延遲檢查

set daemon 120

with start delay 240

set logfile syslog facility log_daemon

# idfile和郵件隊列路徑

set idfile /var/monit/id

set eventqueue

basedir /var/monit

現在是時候檢查我們完成的步驟了。你可以測試現有的配置文件(/etc/monit.conf),只要運行:

# monit -t

Control file syntax OK

如果Monit報告任何錯誤,請再次閱讀配置文件。幸好,錯誤/警告信息量很豐富。比如說:

monit: Cannot stat the SSL server PEM file '/var/certs/monit.pem' -- No such file or directory

/etc/monit/monitrc:10: Warning: hostname did not resolve 'smtp.monit.ro'

一旦你驗證了配置語法,就啟動monit守護程序,等兩三分鐘:

# service monit start

如果你使用systemd,運行:

# systemctl start monit

現在打開瀏覽器窗口,進入到https://:1966。把換成你的Monit主機名或IP地址。

請注意:如果你有一個自簽名的SSL證書,會在瀏覽器中看到警告信息。

如何借助Monit搭建服務器監控系統?

  你完成登錄后,肯定會看到下面這一頁。

如何借助Monit搭建服務器監控系統?

在教程的其余部分,我將介紹如何監控本地服務器和常見服務。你會在官方維基頁面上看到許多有用的示例(http://mmonit.com/wiki/Monit/ConfigurationExamples)。大多數示例可以拷貝粘貼!

許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。雖然集中式監控系統為管理員在處理許多主機和設備時簡化了工作,但專用的監控設備顯然成了單一故障點;要是監控設備出現故障或者由于其他原因(比如硬件壞掉或網絡停運)而聯系不上,你就失去了可見性,無法了解整個基礎設施的狀況。

服務配置:處理器/內存監控

不妨先監控本地服務器的處理器/內存使用情況。將下列代碼片段拷貝到配置文件。

check system localhost

if loadavg (1min) >10 then alert

if loadavg (5min) >6 then alert

if memory usage >75% then alert

if cpu usage (user) >70% then alert

if cpu usage (system) >60% then alert

if cpu usage (wait) >75% then alert

很容易解讀上述配置。每個監控周期(在全局部分中被設為120秒),針對本地主機執行上述檢查。要是符合條件,monit守護程序就會通過電子郵件發送提醒。

如果某些屬性不需要每個周期都加以監控,你可以使用下列格式。比如說,這將每隔一個周期(也就是每隔240秒)監控平均負載。

許多Linux管理員依賴一種集中式遠程監控系統(比如Nagios或Cacti),檢查網絡基礎設施的健康狀況。雖然集中式監控系統為管理員在處理許多主機和設備時簡化了工作,但專用的監控設備顯然成了單一故障點;要是監控設備出現故障或者由于其他原因(比如硬件壞掉或網絡停運)而聯系不上,你就失去了可見性,無法了解整個基礎設施的狀況。

服務配置:SSH服務監控

不妨檢查我們是否將sshd二進制文件安裝在/usr/sbin/sshd中:

check file sshd_bin with path /usr/sbin/sshd

我們還想檢查sshd的init腳本是否存在:

check file sshd_init with path /etc/init.d/sshd

最后,我們想檢查sshd守護程序是否安裝并運行起來,是否偵聽端口22:

check process sshd with pidfile /var/run/sshd.pid

start program "/etc/init.d/sshd start"

stop program "/etc/init.d/sshd stop"

if failed port 22 protocol ssh then restart

if 5 restarts within 5 cycles then timeout

更具體地說,我們可以解讀上述配置,如下所示。我們檢查一個名為sshd的進程和pidfile(/var/run/sshd.pid)是否存在。要是這其中一個都不存在,我們就使用init腳本重啟sshd守護程序。我們檢查偵聽端口22的進程是否支持SSH協議。要是不支持,我們就重啟sshd守護程序。要是在最近5個監控周期(即5 x 120秒)里面至少有5次重啟,sshd守護程序就宣布失效,我們并不試圖再次檢查。

如何借助Monit搭建服務器監控系統?

  內容導航

服務配置:SMTP服務監控

現在檢查遠程SMTP郵件服務器(比如192.168.111.102)。假設SMTP服務器通過其局域網接口,運行SMTP、IMAP和SSH。

check host MAIL with address 192.168.111.102

if failed icmp type echo within 10 cycles then alert

if failed port 25 protocol smtp then alert

else if recovered then exec "/scripts/mail-script"

if failed port 22 protocol ssh then alert

if failed port 143 protocol imap then alert

我們檢查遠程主機是否響應ICMP。要是我們沒有在10個周期內收到ICMP響應,就發送提醒。要是SMTP協議測試在端口25上失敗,我們就發送提醒。要是測試失敗后測試又成功了,我們就運行腳本(/scripts/mail-script)。要是SSH和IMAP協議測試分別在端口22和端口143上失敗,我們就發送提醒。

結束語

我在本教程中演示了如何在本地服務器上搭建Monit。就Monit的功能而言,我在這里介紹的僅僅是冰山一角。不妨花點時間閱讀關于Monit的參考手冊頁。Monit的語法非常通俗易懂,為任何Linux管理員提供了許多功能。如果你結合集中式遠程監控工具和Monit為己所用,就會擁有一個更可靠的監控系統。你覺得Monit怎么樣?

英文:How to set up server monitoring system with Monit

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 军事| 时尚| 镇赉县| 永德县| 铜梁县| 偏关县| 新宁县| 海丰县| 开江县| 青川县| 思南县| 霍邱县| 济南市| 临江市| 区。| 文昌市| 兴国县| 阆中市| 茌平县| 榆中县| 铜山县| 攀枝花市| 嘉兴市| 乐昌市| 日土县| 永宁县| 新平| 宁强县| 赤水市| 信宜市| 南安市| 公主岭市| 报价| 陇南市| 邵阳市| 灵丘县| 赤壁市| 武定县| 清苑县| 军事| 博湖县|