Linux系統(tǒng)日志遠(yuǎn)程采集-創(chuàng)新互聯(lián)

一臺正常提供服務(wù)Linux服務(wù)器,每時每刻都在產(chǎn)生著大量的日志信息,若生產(chǎn)環(huán)境中,有幾十臺甚至上百臺服務(wù)器,那么一臺一臺的去查看系統(tǒng)的日志是非常麻煩的。

為加查等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及加查網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、加查網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

在技術(shù)不斷更新的今天,有很多可以技術(shù)可以對日志進(jìn)行集中管理,最普遍的操作還是要屬ELK日志分析系統(tǒng)了,不過這些日志是如何產(chǎn)生的?是由哪個服務(wù)來進(jìn)行統(tǒng)一管理的呢?這篇文章就圍繞著系統(tǒng)日志的服務(wù)——rsyslog這個服務(wù)來敘述一下。

Linux系統(tǒng)中有很多日志類型,如下是一些系統(tǒng)本身產(chǎn)生的日志文件:

/var/log/boot.log
/var/log/cron
/var/log/dmesg
/var/log/lastlog
/var/log/maillog或/var/log/mail/*
/var/log/messages
/var/log/secure
/var/log/wtmp,/var/log/faillog
/var/log/httpd/* , /var/log/samba/*

若想詳細(xì)了解日志文件記錄的是什么信息,可以參考這篇博文:Linux中常見日志文件的介紹,里面還包括了7個報錯等級的介紹!這里不啰嗦了就。

系統(tǒng)中的日志大多數(shù)都是由rsyslog這個服務(wù)來管理的,這個服務(wù)的主配置文件如下:

[root@aaa ~]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#"    #過濾配置文件中的空行和注釋行
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none                /var/log/messages  
上面行開頭的星號表示所有服務(wù),點(diǎn)號后面的等級表示那些等級記錄下來,/var/lo....表示記錄到哪里
authpriv.*                /var/log/secure   #表示authpriv所有等級的信息都記錄到secure文件中
mail.*              /var/log/maillog   #表示mail服務(wù)的所有級別信息都記錄到/var/log/maillog中
cron.*                                /var/log/cron
*.emerg                            :omusrmsg:*
uucp,news.crit                 /var/log/spooler
local7.*                            /var/log/boot.log
#由上面幾行注釋可以看出,第一段中的點(diǎn)號前面表示某個服務(wù),點(diǎn)號后面表示哪些報錯等級要記錄。
#點(diǎn)號前后都可以使用通配符星號來表示,如第一列為“*.*”,則表示所有服務(wù)的所有等級
#若為“*.info”,則表示所有服務(wù)的info等級及比info更嚴(yán)重的等級都記錄起來。

在上面的配置文件中,日志存放的位置是可以改動的,也可以更改哪些日志的等級要記錄下來,但是一般不建議改動。

其實(shí),依靠/etc/rsyslog.conf這個配置文件,也是可以將其日志發(fā)送到另一臺服務(wù)器上,然后再另一臺服務(wù)器上進(jìn)行統(tǒng)一管理,如果生產(chǎn)環(huán)境較小,服務(wù)器不多的情況下,可以采用這種情況,但是如果生產(chǎn)環(huán)境的服務(wù)器數(shù)量比較多,則推薦部署ELK日志分析系統(tǒng)。

配置rsyslog服務(wù)實(shí)例

我這里有兩臺服務(wù)器,主機(jī)名分別是aaa和bbb(IP地址分別是192.168.1.1和1.2),現(xiàn)在就來實(shí)現(xiàn)以下需求:

  • 1、將aaa服務(wù)器的所有系統(tǒng)服務(wù)日志的info級別以上的同步發(fā)送到bbb服務(wù)器上進(jìn)行統(tǒng)一管理;
  • 2、將編譯安裝的Nginx的日志發(fā)送到bbb服務(wù)器上進(jìn)行管理;
  • 3、將編譯安裝的apache的日志也發(fā)送到bbb服務(wù)器上進(jìn)行管理(由于和默認(rèn)端口和Nginx的沖突,所以在實(shí)現(xiàn)了第二個需求后,就將Nginx服務(wù)停止,再啟動apache服務(wù));

開始配置:

1、將aaa服務(wù)器的所有系統(tǒng)服務(wù)日志的info級別以上的同步發(fā)送到bbb服務(wù)器上進(jìn)行統(tǒng)一管理

(1)在aaa服務(wù)器上進(jìn)行以下操作:

[root@aaa ~]# vim /etc/rsyslog.conf     #編輯日志服務(wù)的配置文件
             #..............省略部分內(nèi)容
$ModLoad imudp             #將該行開頭的注釋符號“#”去掉,以便開啟udp協(xié)議
$UDPServerRun 514     #將該行開頭的注釋符號“#”去掉,以便開啟udp的514端口

# Provides TCP syslog reception
$ModLoad imtcp         #將該行開頭的注釋符號“#”去掉,以便開啟tcp協(xié)議
$InputTCPServerRun 514    #將該行開頭的注釋符號“#”去掉,以便開啟tcp的514端口
             #..............省略部分內(nèi)容
*.info;mail.none;authpriv.none;cron.none         /var/log/messages
*.info                @@192.168.1.2  #星號表示所有服務(wù)“*.info”表示info等級及以上的信息
#@@表示使用tcp協(xié)議傳輸,192.168.1.2是指定要發(fā)送到哪臺服務(wù)器
#若使用一個@符號,則表示使用udp協(xié)議傳輸
             #..............省略部分內(nèi)容
#編輯完成后,保存退出即可。
[root@aaa ~]# systemctl restart rsyslog           #重啟rsyslog服務(wù),以便更改生效

(2)在bbb服務(wù)器上進(jìn)行以下操作:

[root@bbb ~]# vim /etc/rsyslog.conf        #編輯日志服務(wù)的配置文件,開啟udp和tcp的514端口
             #..............省略部分內(nèi)容
$ModLoad imudp                #去掉該行開頭的“#”注釋符號
$UDPServerRun 514                #去掉該行開頭的“#”注釋符號

# Provides TCP syslog reception 
$ModLoad imtcp               #去掉該行開頭的“#”注釋符號
$InputTCPServerRun 514               #去掉該行開頭的“#”注釋符號
             #..............省略部分內(nèi)容
[root@bbb ~]# systemctl restart rsyslog        #重啟服務(wù),使更改生效
[root@bbb ~]# tailf /var/log/secure     #動態(tài)監(jiān)控著本機(jī)的日志文件
Sep 19 15:00:32 aaa useradd[5998]: new group: name=lvjianzh, GID=1003
Sep 19 15:00:32 aaa useradd[5998]: new user: name=lvjianzh, UID=1003, GID=1003....
             #..............省略部分內(nèi)容

(3)在aaa服務(wù)器上進(jìn)行以下操作(主要是為了產(chǎn)生日志信息):

[root@aaa ~]# useradd admini
[root@aaa ~]# echo '123.com' | passwd --stdin admini
更改用戶 admini 的密碼 。
passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。

(4)查看bbb產(chǎn)生的新日志如下:

Linux系統(tǒng)日志遠(yuǎn)程采集

2、將編譯安裝的Nginx的日志發(fā)送到bbb服務(wù)器上進(jìn)行管理;

(1)在aaa服務(wù)器上進(jìn)行以下操作:

[root@aaa ~]# vim /etc/yum.repos.d/epel.repo     #寫入以下文件,指定阿里鏡像站

[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
#必須保證系統(tǒng)默認(rèn)自帶的yum文件也存在/etc/yum.repos.d/目錄下,寫入后保存退出即可。
[root@aaa ~]# yum repolist             #最好執(zhí)行一下該命令
             #..............省略部分內(nèi)容
(7/7): base/7/x86_64/primary_db                    | 6.0 MB   00:01     
源標(biāo)識                          源名稱                            狀態(tài)
base/7/x86_64                   CentOS-7 - Base                   10,097
epel                            epel                              13,384     
#上面一行就是我們剛寫入的文件生效的,表示沒問題
extras/7/x86_64                 CentOS-7 - Extras                    304
updates/7/x86_64                CentOS-7 - Updates                   311
repolist: 24,096
#若命令yum  repolist執(zhí)行后沒有顯示出上述內(nèi)容,排除配置文件的錯誤后,可以執(zhí)行以下命令
[root@aaa ~]# yum makecache          #用來建立元數(shù)據(jù)緩存的
             #..............省略部分內(nèi)容
元數(shù)據(jù)緩存已建立
[root@aaa ~]# yum -y install nginx                 #安裝nginx服務(wù)
[root@aaa ~]# systemctl start nginx     #啟動Nginx服務(wù)
[root@aaa ~]# netstat -anpt | grep nginx              #確定Nginx服務(wù)已啟動
tcp        0      0 0.0.0.0:80      0.0.0.0:* LISTEN      6609/nginx: master  
tcp6       0      0 :::80       :::*         LISTEN      6609/nginx: master  
[root@aaa ~]# ls /var/log/nginx/   #以下是yum安裝Nginx后,Nginx兩個日志文件的存放位置
access.log  error.log
#記住Nginx日志的存放路徑,一會要用到,若采用的是編譯安裝,請自行找到Nginx日志存放路徑記下來
[root@aaa ~]# vim /etc/rsyslog.conf           #編輯rsyslog服務(wù)的配置文件
             #..............省略部分內(nèi)容
#在配置文件末尾寫入以下內(nèi)容
$ModLoad imfile
$InputFilePollInterval 1
$InputFileName /var/log/nginx/access.log
$InputFileTag nginx-info-access;
$InputFilestateFile state-nginx-info-accesslog
$InputRunFileMonitor
$InputFileName /var/log/nginx/error.log
$InputFileTag nginx-info-error;
$InputFilestateFile state-nginx-info-errorlog
$InputRunFileMonitor
$InputFilePollInterval 10
if $programname == 'nginx-info-access' then @192.168.1.2:514
if $programname == 'nginx-info-access' then ~
if $programname == 'nginx-info-error' then @192.168.1.2:514
if $programname == 'nginx-info-error' then ~
[root@aaa ~]# systemctl restart rsyslog               #重啟服務(wù)以便生效

關(guān)于上面寫入的配置項(xiàng)解釋如下:

$ModLoad imfile         #加載模塊
$InputFilePollInterval 1    #間隔多久采集次,默認(rèn)單位是秒
$InputFileName /var/log/nginx/access.log    #指定要采集的日志文件
$InputFileTag nginx-info-access;           #給對應(yīng)的日志打一個標(biāo)簽
$InputFilestateFile state-nginx-info-accesslog    #給這個日志命名
$InputRunFileMonitor        #啟動監(jiān)控
#以下的配置和上面類似,因?yàn)橐杉瘍蓚€日志文件嘛!
$InputFileName /var/log/nginx/error.log
$InputFileTag nginx-info-error;
$InputFilestateFile state-nginx-info-errorlog
$InputRunFileMonitor
$InputFilePollInterval 10
#以下是指定將采集的日志發(fā)送到哪里,同理,一個@符號表示使用的udp協(xié)議,兩個表示tcp協(xié)議
if $programname == 'nginx-info-access' then @192.168.1.2:514  
if $programname == 'nginx-info-access' then ~   #這的~,表示本地的意思
if $programname == 'nginx-info-error' then @192.168.1.2:514
if $programname == 'nginx-info-error' then ~

(2)在bbb服務(wù)器上進(jìn)行日志的監(jiān)控:

Linux系統(tǒng)日志遠(yuǎn)程采集

(3)客戶端訪問aaa的Nginx服務(wù),以便產(chǎn)生日志。

Linux系統(tǒng)日志遠(yuǎn)程采集

(4)再回到bbb服務(wù)器上,查看是否有關(guān)于aaa服務(wù)器的Nginx訪問日志產(chǎn)生(如果沒有新的日志產(chǎn)生,在排除配置錯誤的前提下,客戶端可以多刷新幾次):
Linux系統(tǒng)日志遠(yuǎn)程采集

可以看出來,Nginx的日志信息簡直不要太詳細(xì),對么?日志信息中包含了該日志產(chǎn)生的時間?是哪臺服務(wù)器產(chǎn)生的?標(biāo)簽名是什么?哪個IP地址訪問的?訪問時間是什么時候?訪問的狀態(tài)碼是什么?客戶端訪問時使用的是什么系統(tǒng)、系統(tǒng)的位數(shù)是多少?如(Windows NT 10.0; Win64; x64,表示是64為的win10系統(tǒng)),用的是什么瀏覽器進(jìn)行訪問的?我這里使用谷歌訪問的,它竟然還記錄了我客戶端谷歌瀏覽器的版本號。

至此,Nginx的日志文件采集就完成了,那么現(xiàn)在進(jìn)行apache的日志采集,有了前面的鋪墊,這就簡單多了,簡單改一下配置項(xiàng)就可以了。

3、將編譯安裝的apache的日志也發(fā)送到bbb服務(wù)器上進(jìn)行管理

(1)在aaa服務(wù)器上進(jìn)行以下操作:

[root@aaa ~]# yum -y install httpd            #安裝apache服務(wù)
[root@aaa ~]# systemctl stop nginx      #為了避免端口沖突,停止Nginx服務(wù)
[root@aaa ~]# systemctl start httpd      #啟動apache服務(wù)
[root@aaa ~]# vim /etc/rsyslog.conf          #更改rsyslog配置文件,主要是更改采集日志的路徑
             #..............省略部分內(nèi)容
$ModLoad imfile
$InputFilePollInterval 1
$InputFileName /var/log/httpd/access_log      #主要是改這個
$InputFileTag httpd-info-access;
$InputFilestateFile state-httpd-info-accesslog
$InputRunFileMonitor
$InputFileName /var/log/httpd/error_log #還要改這個
#其余配置項(xiàng)可不改,但是建議改一下,以免看起來日志不太直觀。
$InputFileTag httpd-info-error;
$InputFilestateFile state-httpd-info-errorlog
$InputRunFileMonitor
$InputFilePollInterval 10
if $programname == 'httpd-info-access' then @192.168.1.2:514
if $programname == 'httpd-info-access' then ~
if $programname == 'httpd-info-error' then @192.168.1.2:514
if $programname == 'httpd-info-error' then ~
#主要就是將上面配置中的Nginx都換成了httpd。
[root@aaa ~]# systemctl restart rsyslog                 #重啟服務(wù),使更改生效

(2)在bbb服務(wù)器上進(jìn)行日志的監(jiān)控:

Linux系統(tǒng)日志遠(yuǎn)程采集

(3)客戶端訪問aaa的Nginx服務(wù),以便產(chǎn)生日志(多刷新幾次)。

Linux系統(tǒng)日志遠(yuǎn)程采集

(4)再回到bbb服務(wù)器上,查看是否有關(guān)于aaa服務(wù)器的httpd訪問日志產(chǎn)生。

Linux系統(tǒng)日志遠(yuǎn)程采集

OK!沒問題,采集到了。。。

———————— 本文至此結(jié)束,感謝閱讀 ————————

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁名稱:Linux系統(tǒng)日志遠(yuǎn)程采集-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article22/piejc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、企業(yè)網(wǎng)站制作網(wǎng)站改版、軟件開發(fā)

廣告

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

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)