自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

搭建集中式系統(tǒng)日志服務(wù)器系統(tǒng)指南

譯文
運(yùn)維 服務(wù)器運(yùn)維
本文要介紹的不僅僅是如何搭建集中式syslog-ng(下一代系統(tǒng)日志工具)服務(wù)器,還要介紹為什么你要著手搭建這樣一臺(tái)服務(wù)器。

早在1997年本人擔(dān)任Linux管理員時(shí),搭建集中式系統(tǒng)日志服務(wù)器是最先要完成的真正的系統(tǒng)管理任務(wù)之一。我當(dāng)時(shí)的上司想獲取來(lái)自眾多硬件設(shè)備的日志文件,要求我使用正則表達(dá)式(regexp),搜索日志文件尋找某些關(guān)鍵詞。當(dāng)年Linux還處于初期階段,而我在空閑時(shí)一直在搗鼓Linux。于是,我不失時(shí)機(jī)地把Linux引入到了當(dāng)時(shí)效力的那家公司。Linux行不行?當(dāng)然行!本文要介紹的不僅僅是如何搭建集中式syslog-ng(下一代系統(tǒng)日志工具)服務(wù)器,還要介紹為什么你要著手搭建這樣一臺(tái)服務(wù)器。

那么,系統(tǒng)日志是什么東西?系統(tǒng)日志在Linux中用于將系統(tǒng)消息記入日志。下一代系統(tǒng)日志工具在1998年開(kāi)發(fā)而成,只是對(duì)早期的系統(tǒng)日志工具作了改寫(xiě)。截至2010年,下一代系統(tǒng)日志工具仍由BalaBit IT Security公司在積極開(kāi)發(fā),擁有的功能特性要多得多,其中包括更好的TCP處理、對(duì)消息采取TLS加密以及將消息發(fā)送到數(shù)據(jù)庫(kù)等等。一些Linux發(fā)行版允許你安裝系統(tǒng)日志工具、rsyslog或者下一代系統(tǒng)日志工具。本文重點(diǎn)介紹下一代系統(tǒng)日志工具,因?yàn)檫@個(gè)工具更新穎;如果讀者愿意,可以在之后選擇擁有下一代系統(tǒng)日志工具軟件的公司的企業(yè)版,以獲得“支持”。

剛才簡(jiǎn)要介紹了下一代系統(tǒng)日志工具,接下來(lái)談?wù)勀銥楹我眉惺较乱淮到y(tǒng)日志工具服務(wù)器。我就說(shuō)說(shuō)兩個(gè)主要的理由。第一個(gè)是出于安全目的。如果你的路由器、防火墻、交換機(jī)、Linux服務(wù)器及/或其他硬件指向一臺(tái)安全可靠的集中式下一代系統(tǒng)日志工具服務(wù)器,要是有人的確企圖攻擊上述的其中一個(gè)設(shè)備,可以把日志文件安全地存放到讓人放心的異地位置。如果系統(tǒng)日志文件存放在設(shè)備上,這無(wú)異于讓攻擊者能夠抹掉痕跡。誠(chéng)然,攻擊者能夠禁用將日志文件發(fā)送到外部下一代系統(tǒng)日志工具服務(wù)器的功能,但是在此之前的所有連接都將位于集中式系統(tǒng)日志服務(wù)器上。另一個(gè)理由是為了方便起見(jiàn)。比如說(shuō),如果你有一臺(tái)服務(wù)器崩潰了,毫無(wú)反應(yīng),你就可以檢查集中式系統(tǒng)日志服務(wù)器上的內(nèi)核錯(cuò)誤日志。如果你想檢查在一段較長(zhǎng)時(shí)間內(nèi)不同日期之間的系統(tǒng)日志模式,只要使用正則表達(dá)式,搜索來(lái)自集中式系統(tǒng)日志服務(wù)器的日志文件。

那么,我平時(shí)怎么做的呢?實(shí)際上,這兩種方法我在家里都用。我的設(shè)備和服務(wù)器不但把它們的所有系統(tǒng)日志文件轉(zhuǎn)發(fā)到某個(gè)集中式位置,而且這個(gè)位置嚴(yán)加保護(hù)起來(lái)。所說(shuō)的那臺(tái)機(jī)器是一個(gè)虛擬機(jī),只有1個(gè)端口開(kāi)著(系統(tǒng)日志端口),只能從本地機(jī)器來(lái)訪問(wèn),系統(tǒng)日志文件而放在外部驅(qū)動(dòng)器上。這么做是不是過(guò)于小心謹(jǐn)慎?也許有點(diǎn)吧。但我的確知道,在我家這個(gè)環(huán)境中,如果外部驅(qū)動(dòng)器裝滿了太多的系統(tǒng)日志文件,它不會(huì)導(dǎo)致虛擬機(jī)崩潰。要是虛擬機(jī)果真出現(xiàn)了什么岔子,主機(jī)操作系統(tǒng)也不會(huì)受到影響。如果有人果真可以訪問(wèn)我的其中一個(gè)設(shè)備,他也沒(méi)有辦法訪問(wèn)我的系統(tǒng)日志服務(wù)器。沒(méi)錯(cuò),要是我的主機(jī)操作系統(tǒng)遇到了什么問(wèn)題,那么訪客虛擬機(jī)就會(huì)有問(wèn)題;但是我們總是無(wú)法做到事事都能防備。我得承認(rèn),這么做太過(guò)小心謹(jǐn)慎了;對(duì)大多數(shù)人來(lái)說(shuō),這么做可能有些過(guò)了。

開(kāi)始入手之前,有必要先聲明一下。首先,與我之前寫(xiě)的所有文章一樣,這里的所有測(cè)試是用Debian來(lái)完成的。本文中,我針對(duì)Debian 6.0.1設(shè)置了虛擬機(jī),因而你的情況可能不一樣。另外,我不會(huì)深入探討如何合理保護(hù)你的服務(wù)器、把系統(tǒng)日志文件放在哪里最合適,或者如何設(shè)置除下一代系統(tǒng)日志工具之外的一切。本文就介紹集中式下一代系統(tǒng)日志工具服務(wù)器的基本方面。

#p# 服務(wù)器端的安裝和配置

安裝下一代系統(tǒng)日志工具實(shí)際上并不難,如果從軟件包來(lái)安裝更是如此。如果是Debian,運(yùn)行apt-get install syslog-ng;如果是紅帽系統(tǒng),運(yùn)行yum install syslog-ng。訪問(wèn)http://www.balabit.com/downloads/files?path=/syslog-ng/sources/3.2.4/source/syslog-ng_3.2.4.tar.gz,即可安裝該工具。接下來(lái)是下載、解包、配置、編譯和安裝。一旦安裝好了下一代系統(tǒng)日志工具,我們就可以配置服務(wù)器端了。

全局選項(xiàng)

你要做的頭一件事就是找到下一代系統(tǒng)日志工具的配置文件。默認(rèn)安裝文件(針對(duì)Debian變種版本)是/etc/syslog-ng/syslog-ng.conf。在編輯任何配置文件之前,進(jìn)行變更之前先拷貝一份原始配置文件是個(gè)好方法。這完全是為了以免出現(xiàn)問(wèn)題,你需要找回原始配置文件。我往往把自己的原始配置文件標(biāo)以.orig(這里是syslog-ng.conf.orig)。你已備份好了配置文件,現(xiàn)在就用自己喜歡的編輯器打開(kāi)它,可以入手了。

long_hostnames(默認(rèn)值:off)——我在本文中使用下一代系統(tǒng)日志工具OSE版本3.1,我其實(shí)在全局配置指南中找不到long_hostname。我會(huì)使用默認(rèn)值為off的long hostnames(長(zhǎng)主機(jī)名),使用完全符合標(biāo)準(zhǔn)的域名。

flush_lines(默認(rèn)值:0)——設(shè)置一次向目的地發(fā)送幾行消息。如果設(shè)成0,一收到消息就發(fā)送,但是要牢記:如果這個(gè)值設(shè)得偏高,會(huì)增加消息延遲。這個(gè)選項(xiàng)在下一代系統(tǒng)日志工具的客戶端上很有用。在發(fā)送到目的地之前,你要將XX條消息保留在客戶端上,那樣即使收到來(lái)自服務(wù)器的眾多流量,也不至于擁塞那臺(tái)主要的下一代系統(tǒng)日志工具服務(wù)器。

use_dns(默認(rèn)值:no)——選項(xiàng)包括:yes、no和persist_only。這個(gè)選項(xiàng)的選擇取決于你和你的環(huán)境。如果你的下一代系統(tǒng)日志工具在防火墻后面,無(wú)法訪問(wèn)外界,那么選擇‘yes’很合適。如果可以訪問(wèn)外界,就設(shè)置成‘no’,以便阻止可能出現(xiàn)的拒絕服務(wù)(DoS)攻擊。 我將該選項(xiàng)設(shè)成了‘persist_only’,因而會(huì)檢查我那臺(tái)下一代系統(tǒng)日志工具服務(wù)器上的/etc/hosts文件,以解析主機(jī)名,又不依賴DNS服務(wù)器。

use_fqdn(默認(rèn)值:no)——你的選擇是設(shè)為“完全符合標(biāo)準(zhǔn)的域名”。由于使用家庭網(wǎng)絡(luò),我只有一個(gè)內(nèi)部域名。于是我設(shè)置為默認(rèn)值‘no’。如果設(shè)置成‘yes’,你的客戶端主機(jī)名會(huì)顯示為‘hostA.domain.com’,而不是‘hostA’。

owner(默認(rèn)值:root)——輸出文件的所有人
group(默認(rèn)值:adm)——輸出文件群組
perm(默認(rèn)值:0640)——輸出文件的權(quán)限。設(shè)置為默認(rèn)值640,所有人有權(quán)讀寫(xiě),群組有權(quán)讀取,其他人沒(méi)有權(quán)限。
stats_freq(默認(rèn)值:0)——兩個(gè)STATS(關(guān)于丟失日志消息的統(tǒng)計(jì)消息)消息之間間隔的時(shí)間(以秒為單位)。0表示禁用發(fā)送STATS消息。
bad_hostname(默認(rèn)值:^gconfd$)——含有不該作為hostnames來(lái)處理的主機(jī)名的正則表達(dá)式,本文中是gconfd。如果你有好多臺(tái)服務(wù)器,我會(huì)建議hostnames,當(dāng)然除非你記得域中的每一個(gè)IP地址。
這些是“默認(rèn)”的全局配置選項(xiàng),但你還可以使用其他眾多選項(xiàng)。我還使用下列選項(xiàng):
normalize_hostnames(yes)——該選項(xiàng)把所有主機(jī)名轉(zhuǎn)換成小寫(xiě)。我的一些設(shè)備使用大寫(xiě)主機(jī)名,有時(shí)候我會(huì)迷上某個(gè)新主機(jī),并把主機(jī)名的第一個(gè)字母轉(zhuǎn)換成大寫(xiě)。該選項(xiàng)可以把所有字符轉(zhuǎn)換成小寫(xiě),以便閱讀。
keep_hostname(yes)——如果要進(jìn)行轉(zhuǎn)發(fā)或透過(guò)外部服務(wù)器傳送,該選項(xiàng)就會(huì)保留主機(jī)名,那樣主機(jī)最終到達(dá)中央服務(wù)器后,主機(jī)名會(huì)一并到達(dá),而不是依賴DNS(或/etc/hosts)。如果你使用$HOST宏指令,應(yīng)該啟用該選項(xiàng)。

在更大、更重要的環(huán)境(不是小型辦公環(huán)境)下,我會(huì)設(shè)置stats_freq(600)和stats_level(2),以便從服務(wù)器獲取統(tǒng)計(jì)消息。在大多數(shù)小型辦公環(huán)境下,你可能搜索來(lái)自三五個(gè)設(shè)備的系統(tǒng)日志數(shù)據(jù);這種情況下,實(shí)際丟失數(shù)據(jù)的可能性相當(dāng)小。在更龐大的企業(yè)環(huán)境下,可能有幾百個(gè)設(shè)備向中央系統(tǒng)日志服務(wù)器報(bào)告,啟用統(tǒng)計(jì)功能讓系統(tǒng)管理員能夠檢查統(tǒng)計(jì)消息和可能丟失的消息。

你的全局配置選項(xiàng)看起來(lái)如下:
options {(off);
flush_lines(0);
use_dns(persist_only);
use_fqdn(no);
owner("root");
group("adm");
perm(0640);
stats_freq(0);
bad_hostname("^gconfd$");
normalize_hostnames(yes);
keep_hostname(yes);
};

#p# 設(shè)置監(jiān)聽(tīng)器

為下一代系統(tǒng)日志工具設(shè)置監(jiān)聽(tīng)器實(shí)際上只需要在配置文件中添加幾行。典型的監(jiān)聽(tīng)器行看起來(lái)像這樣:

source s_net { tcp((ip(127.0.0.1) port(1000) max-connections 5000)); udp (); };
source s_net = Network listener,表示網(wǎng)絡(luò)監(jiān)聽(tīng)器
tcp(ip(127.0.0.1) = Listen on localhost,表示監(jiān)聽(tīng)本地主機(jī)。如果你有多塊網(wǎng)卡,或者想指定某個(gè)IP地址與某塊網(wǎng)卡進(jìn)行綁定,將127.0.0.1更改成那塊特定網(wǎng)卡的IP地址。
port (1000) = Listen to TCP port 1000,表示監(jiān)聽(tīng)TCP端口1000。
max connections = Allow 5000 simultaneous connections (stops the dreaded 'run away server' syndrome) ,表示允許5000個(gè)同時(shí)連接(杜絕可怕的‘失控服務(wù)器’綜合征)
udp () = Some devices send their syslog messages via udp,表示一些設(shè)備通過(guò)udp發(fā)送系統(tǒng)日志消息,所以如果你無(wú)法指定TCP和端口號(hào),就請(qǐng)啟用udp。
encrypt(allow) = This could be an entire blog post in itself,表示這本身可能是整篇博文。下一代系統(tǒng)日志工具允許對(duì)系統(tǒng)日志消息采用加密(基于TLS/證書(shū))。
示例看起來(lái)像這樣:
# Listen on TCP Port 1000 and UDP Port 514, Max 500
Connections source s_net {
tcp(port(1000) max-connections(500)); udp(););
目的地——有發(fā)就有收。在這里,發(fā)出去的必須在某個(gè)地方接收。一旦收到來(lái)自下一代系統(tǒng)日志工具服務(wù)器的消息,它就要發(fā)送到某地。因而syslog-ng.conf文件就有目的地這個(gè)部分。正如你所見(jiàn),默認(rèn)值包括本地機(jī)器上服務(wù)器消息的*nix目的地。但是入站消息又如何呢?它們發(fā)送到哪里?問(wèn)得好!默認(rèn)情況下,入站消息會(huì)將系統(tǒng)日志消息發(fā)送到在下一代系統(tǒng)日志工具指定的子系統(tǒng)。比如說(shuō),如果這個(gè)消息被歸類成驗(yàn)證消息(/var/log/auth),那么它會(huì)把消息轉(zhuǎn)儲(chǔ)到下一代系統(tǒng)日志工具的/var/log/auth.log文件中,附有相關(guān)信息(主機(jī)名和日期/時(shí)間等)。

如果這實(shí)際上是你想要實(shí)現(xiàn)的,一堆服務(wù)器轉(zhuǎn)儲(chǔ)到與主服務(wù)器同一個(gè)文件上,那么我想任務(wù)完成了。但是下一代系統(tǒng)日志工具的功能絕不僅僅局限于此。目的地可能是平面文件、進(jìn)入其他應(yīng)用程序的管道、SQL數(shù)據(jù)庫(kù)(mysql、MS SQL和Oracle等)、遠(yuǎn)程日志服務(wù)器和Terminal Windows。我將著重探討平面文件,假設(shè)你現(xiàn)在用的也是平面文件。

我搭建集中式系統(tǒng)日志服務(wù)器的方式可能與你的搭建方式不一樣。我有一個(gè)文件夾含有每個(gè)主機(jī)名,來(lái)自主機(jī)名的系統(tǒng)日志位于該文件夾中。比如:/mount/syslog/macha和/mount/syslog/beag等等。Logrotate工具負(fù)責(zé)日志文件的壓縮、刪除(將舊文件備份到遠(yuǎn)程服務(wù)器,以防萬(wàn)一)和清理。

我的目的地命令看起來(lái)像這樣:
destination d_net_auth {
file("/var/log/syslog/remote/$HOSTNAME/auth.log"); }; destination d_net_cron {
file("/var/log/syslog/remote/$HOSTNAME/cron.log"); }; destination d_net_daemon
{ file("/var/log/syslog/remote/$HOSTNAME/daemon.log"); }; destination
d_net_kern { file("/var/log/syslog/remote/$HOSTNAME/kern.log"); }; destination
d_net_lpr { file("/var/log/syslog/remote/$HOSTNAME/lpr.log"); }; destination
d_net_mail { file("/var/log/syslog/remote/$HOSTNAME/mail.log"); }; destination
d_net_syslog { file("/var/log/syslog/remote/$HOSTNAME/syslog.log"); };
destination d_net_user { file("/var/log/syslog/remote/$HOSTNAME/user.log"); };
destination d_net_user { file("/var/log/syslog/remote/$HOSTNAME/uucp.log"); };
destination d_net_debug { file("/var/log/syslog/remote/$HOSTNAME/debug"); };
destination d_net_error { file("/var/log/syslog/remote/$HOSTNAME/error"); };
destination d_net_messages { file("/var/log/syslog/remote/$HOSTNAME/messages");
}; destination d_net_mailinfo {
file("/var/log/syslog/remote/$HOSTNAME/mail/mail.info"); }; destination
d_net_mailwarn { file("/var/log/syslog/remote/$HOSTNAME/mail/mail.warn"); };
destination d_net_mailerr {
file("/var/log/syslog/remote/$HOSTNAME/mail/mail.err"); };

從理論上來(lái)說(shuō),現(xiàn)在下一代系統(tǒng)日志工具服務(wù)器應(yīng)該可以創(chuàng)建存放文件所必需的目錄了(在全局策略中已有指定),但有時(shí)我會(huì)遇到問(wèn)題:目錄無(wú)法順利創(chuàng)建,下一代系統(tǒng)日志工具中的錯(cuò)誤卻在/var/log/errors中報(bào)告。為了以后減少麻煩和痛苦,我往往順便創(chuàng)建好主機(jī)和日志文件,我丟失的任何信息會(huì)最后出現(xiàn)在/var/log/errors中。

如果你是資深的下一代系統(tǒng)日志工具用戶,可能會(huì)想:我為何把本地主機(jī)目的地和遠(yuǎn)程(異地客戶端)目的地分開(kāi)來(lái),而從理論上來(lái)說(shuō)我本該創(chuàng)建d_auth,把常用本地主機(jī)過(guò)濾器也放入到文件夾中。這么做的原因是,我想把本地主機(jī)系統(tǒng)日志流量與遠(yuǎn)程流量分開(kāi)來(lái)——雖然配置行更多了,但對(duì)我來(lái)說(shuō)更省事了。另外,當(dāng)Linux子系統(tǒng)尋找把常用日志文件放在何處,就不會(huì)受到干擾。

過(guò)濾——下一代系統(tǒng)日志工具能夠過(guò)濾消息,而這項(xiàng)功能標(biāo)志著系統(tǒng)日志工具是否成熟。過(guò)濾功能讓下一代系統(tǒng)日志工具與眾不同。有了過(guò)濾功能,我就可以做下列事:過(guò)濾防火墻日志可以尋找某些關(guān)鍵詞(比如端口掃描),轉(zhuǎn)儲(chǔ)到單單一個(gè)文件夾,將分布式拒絕服務(wù)(DDOS)攻擊過(guò)濾到另一個(gè)文件夾中。我的VOIP適配器發(fā)送系統(tǒng)日志事件,我根據(jù)那些消息過(guò)濾到了每一個(gè)文件,而不是過(guò)濾到單個(gè)文件。過(guò)濾還讓你可以指定根據(jù)哪幾個(gè)主機(jī)進(jìn)行過(guò)濾,過(guò)濾到多個(gè)目的地。不僅如此,你還可以在過(guò)濾時(shí)使用正則表達(dá)式。

可以像這樣來(lái)創(chuàng)建過(guò)濾表達(dá)式:filter <identifier> { expression; };
<identifier>是你為過(guò)濾器賦予的名稱。<expression>含有函數(shù)和布爾操作符(and、or和not)。
就我的防火墻而言,示例如下:
filter firewall_ddos_filter { host("10.1.1.1") and match("Denial of Service"
value("MESSAGE")); };
該過(guò)濾器名為‘firewall_ddos_filter’,它監(jiān)聽(tīng)來(lái)自10.1.1.1的入站系統(tǒng)日志消息,消息為‘Denial of Service’(拒絕服務(wù)攻擊)。為了完成過(guò)濾器,你需要一個(gè)日志語(yǔ)句:
log firewall_ddos_filter { source(s_net); filter
(firewall_ddos_filter);
destination(d_net_firewall_ddos); };

在上述目的地中,我為防火墻DDOS攻擊、端口掃描等添加目的地。這樣一來(lái),把日志文件與不使用標(biāo)準(zhǔn)*nix日志功能的服務(wù)器/設(shè)備分離開(kāi)來(lái),或者讓統(tǒng)管理員更容易過(guò)濾從防火墻出來(lái)的日志(或者把許多防火墻過(guò)濾到一個(gè)日志)。

如果你想使用多個(gè)‘firewall’主機(jī)(如示例),就不要添加它們,使用布爾操作符‘and’來(lái)創(chuàng)建日志/過(guò)濾器規(guī)則。這不管用。而是應(yīng)該使用‘or’布爾操作符,就像這樣:

filter firewall_ddos_filter { host("10.1.1.1") or host
("10.1.1.2") and match("Denial of Service" value("MESSAGE")
((; };
我的‘Default’過(guò)濾命令看起來(lái)像這樣:
filter f_dbg { level(debug); };
filter f_info { level(info); };
filter f_notice{ level(notice); };
filter f_warn { level(warn); };
filter f_err { level(err);  };
filter f_crit { level(crit .. emerg); };

filter f_debug { level(debug) and not facility(auth,
authpriv, news, mail); };
filter f_error { level(err .. emerg) ; };
filter f_messages { level(info,notice,warn) and not
facility(auth,authpriv,cron,daemon,mail,news);
};

filter f_auth { facility(auth, authpriv) and not filter
(f_debug); };
filter f_cron { facility(cron) and not filter(f_debug); };
filter f_daemon { facility(daemon) and not filter
(f_debug); };
filter f_kern { facility(kern) and not filter(f_debug); };
filter f_lpr { facility(lpr) and not filter(f_debug);};
filter f_local { facility(local0, local1, local3, local4,
local5, local6, local7) and not filter(f_debug); };
filter f_mail { facility(mail) and not filter(f_debug); };
filter f_news { facility(news) and not filter(f_debug); };
filter f_syslog3 { not facility(auth, authpriv, mail) and
not filter(f_debug); };
filter f_user { facility(user) and not filter(f_debug); };
filter f_uucp { facility(uucp) and not filter(f_debug); };

filter f_cnews { level(notice, err, crit) and facility
(news); };
filter f_cother { level(debug, info, notice, warn) or
facility(daemon, mail); };

filter f_ppp { facility(local2) and not filter
(f_debug); };
filter f_console { level(warn .. emerg); };

#p# 統(tǒng)計(jì)消息

沒(méi)有什么比一些詳細(xì)的統(tǒng)計(jì)消息更讓我高興的了。只要運(yùn)行任何服務(wù)器或服務(wù),無(wú)論在家里還是在辦公室,我都想看看服務(wù)器一段時(shí)間內(nèi)在處理什么。從版本3.1開(kāi)始,下一代系統(tǒng)日志工具現(xiàn)在有了一個(gè)syslog-ng-ctl統(tǒng)計(jì)實(shí)用程序,它大大簡(jiǎn)化了獲取日志文件的任務(wù)。版本3.1之前,想獲取統(tǒng)計(jì)文件,你就得運(yùn)行echo STATS | nc -U /var/run/syslog-ng.ctl。

由于我喜歡用正則表達(dá)式,對(duì)于syslog-ng-ctl統(tǒng)計(jì)消息的輸出結(jié)果中的分號(hào)習(xí)以為常,因而我運(yùn)行syslog-ng-ctl stats | sed 's|;|\t|g',以清理輸出。

你輸入上述命令行后有6列:SourceName、SourceID、SourceInstance、State、Type和 Number。

SourceName——來(lái)源的名稱,比如:目的地、來(lái)源、全局或中央。
SourceID——你為來(lái)源賦予的識(shí)別號(hào)(之前的例子是firewall_ddos_filter,其他例子會(huì)是d_mail和d_net_user等)
SourceInstance——來(lái)源實(shí)例的目的地,如文件名;或者程序來(lái)源(sql)或目的地的應(yīng)用程序名稱。
State——對(duì)象的狀態(tài):a(活動(dòng)—目前處于活動(dòng)狀態(tài),接收數(shù)據(jù)),d(動(dòng)態(tài)—目前沒(méi)有持續(xù)可用),或o(曾經(jīng)活動(dòng),但停止接收孤立對(duì)象等消息)。
Type——統(tǒng)計(jì)消息的類型,比如:Processed,表示到達(dá)目的地的消息數(shù)量;Dropped,指丟失消息的數(shù)量;Stored,指存儲(chǔ)在等待發(fā)送到目的地的消息列隊(duì)中的消息數(shù)量;Suppressed(not sent),指被抑制消息的數(shù)量;Stamp,指上一個(gè)發(fā)送消息的時(shí)間戳。下一代系統(tǒng)日志工具服務(wù)重置后,這些統(tǒng)計(jì)類型也被重置。
Number——消息數(shù)量。

日志輪詢,日志輪詢,日志輪詢

該日志消息對(duì)你來(lái)說(shuō)是不是夠清楚?從長(zhǎng)遠(yuǎn)來(lái)看,輪詢消息日志可以讓你避免麻煩。如果你不對(duì)日志輪詢,日志磁盤(pán)空間只會(huì)越來(lái)越擠,最后把整個(gè)硬盤(pán)都塞滿。日志輪詢不但可以節(jié)省空間,還會(huì)使得搜索特定日期的日志文件更容易;如果你把沒(méi)有設(shè)成日志輪詢的50MB日志文件調(diào)出來(lái),搜索特定日期的內(nèi)容,就會(huì)很麻煩。logrotate位于/etc/logrotate.conf,具體要看使用的Linux發(fā)行版。因?yàn)楸疚牟皇墙榻Blogrotate,最終配置是啥樣因人而宜,下面給出的例子表明我怎樣輪詢?nèi)罩疚募?/p>

/var/log/remote/*/ { rotate 5 weekly missingok create }

這會(huì)每個(gè)星期檢查/var/log/remote/*/,輪詢?nèi)罩?。日志輪?個(gè)月;1個(gè)月后,我會(huì)使用cronjob實(shí)用工具,對(duì)舊日志進(jìn)行TAR壓縮,把它們轉(zhuǎn)移到備份位置;舊日志會(huì)在那里再保存一個(gè)月,之后輪換掉。當(dāng)然在公司環(huán)境下,按照管理或法規(guī)要求,日志會(huì)保存相應(yīng)的很長(zhǎng)時(shí)間;但是對(duì)于家庭環(huán)境而言,我覺(jué)得日志保存2個(gè)月夠長(zhǎng)了,足以為在此期間可能出現(xiàn)的任何問(wèn)題排錯(cuò)。

#p# 系統(tǒng)日志客戶端

由于每個(gè)服務(wù)器和設(shè)備的情況不一樣,我不會(huì)過(guò)于深入地探討這方面。系統(tǒng)日志經(jīng)由UDP端口514來(lái)通信,但是我在前面提到,我還為其他設(shè)備設(shè)置了主系統(tǒng)日志服務(wù)器,經(jīng)由TCP端口1000通信。這讓下一代系統(tǒng)日志工具服務(wù)器可以監(jiān)聽(tīng)兩個(gè)端口:514 UDP用于無(wú)法更改其端口的設(shè)備,TCP 1000則用于指定了端口號(hào)的服務(wù)器。為何我設(shè)置TCP 1000,而不設(shè)置TCP 514?因?yàn)長(zhǎng)inux使用tcp 514 用于rsh(遠(yuǎn)程外殼),這會(huì)導(dǎo)致我(及別人)的主機(jī)系統(tǒng)出現(xiàn)一些問(wèn)題。如果你打算面向外界運(yùn)行下一代系統(tǒng)日志工具(假設(shè)你已設(shè)置了驗(yàn)證,并使用TLS加密),那么設(shè)置不常見(jiàn)的TCP端口將是最穩(wěn)妥的。

1. 針對(duì)設(shè)備,你要做的就是讓設(shè)備指向主機(jī)名,并確保UDP 514或TCP 1000是目的地。
2. 針對(duì)rsyslog客戶端,添加下面這一行:
如果是TCP:*.* @@ipaddress:1000
如果是UDP:*.* @ipaddress:514
3. 針對(duì)下一代系統(tǒng)日志工具客戶端,添加下面這一行:
*New syslog Protocol* syslog(host tranport [options];

*old syslog protocol* destination d_tcp { syslog(ip
("remoteip")
transport("tcp") port(1000) localport(999)}; };

destination d_udp { syslog(ip("remoteip") transport("udp")
port(514)
localport(999)}; };

結(jié)論

上面概要介紹了下一代系統(tǒng)日志工具。下一代系統(tǒng)日志工具方面還有許多東西要了解,我只是介紹了基本的方面。你可以在此基礎(chǔ)上了解宏指令、更嚴(yán)格的過(guò)濾以及對(duì)系統(tǒng)日志消息采用基于TLS/證書(shū)的加密。如果你把系統(tǒng)日志消息發(fā)送到集中式系統(tǒng)日志服務(wù)器,并且備份該系統(tǒng)日志服務(wù)器,就大可放心:你需要系統(tǒng)消息時(shí),可以安全而輕松地獲取這些消息。

原文鏈接:http://www.linuxjournal.com/content/creating-centralized-syslog-server

責(zé)任編輯:張玉 來(lái)源: 51CTO
相關(guān)推薦

2012-02-23 23:33:37

開(kāi)源memcached

2021-08-12 10:25:33

SVN服務(wù)器VisualSVN s

2012-02-21 09:59:52

2014-08-29 16:39:27

華為

2023-08-22 14:20:21

2015-07-28 09:44:38

集中式云數(shù)據(jù)加密安全漏洞

2017-06-27 10:21:12

vRealize LoNSX日志管理

2009-07-20 11:11:34

分光器FTTP

2019-11-07 11:21:21

安全軟件IT

2024-04-22 08:10:29

2022-03-29 14:28:03

架構(gòu)安全設(shè)計(jì)

2025-03-27 07:30:28

2009-07-02 19:24:50

安全管理Windows審計(jì)

2025-04-08 07:30:40

數(shù)據(jù)庫(kù)對(duì)象索引

2025-02-18 07:30:35

2010-11-09 13:53:33

2020-08-19 17:56:46

緩存Redis集中式

2014-08-05 09:15:14

SDN

2024-08-22 08:09:48

系統(tǒng)設(shè)計(jì)監(jiān)控

2010-03-31 15:45:45

CentOS系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)