91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統日志遠程采集

發布時間:2020-06-29 19:38:03 來源:網絡 閱讀:963 作者:warrent 欄目:系統運維

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

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

Linux系統中有很多日志類型,如下是一些系統本身產生的日志文件:

/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/*

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

系統中的日志大多數都是由rsyslog這個服務來管理的,這個服務的主配置文件如下:

[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  
上面行開頭的星號表示所有服務,點號后面的等級表示那些等級記錄下來,/var/lo....表示記錄到哪里
authpriv.*                /var/log/secure   #表示authpriv所有等級的信息都記錄到secure文件中
mail.*              /var/log/maillog   #表示mail服務的所有級別信息都記錄到/var/log/maillog中
cron.*                                /var/log/cron
*.emerg                            :omusrmsg:*
uucp,news.crit                 /var/log/spooler
local7.*                            /var/log/boot.log
#由上面幾行注釋可以看出,第一段中的點號前面表示某個服務,點號后面表示哪些報錯等級要記錄。
#點號前后都可以使用通配符星號來表示,如第一列為“*.*”,則表示所有服務的所有等級
#若為“*.info”,則表示所有服務的info等級及比info更嚴重的等級都記錄起來。

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

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

配置rsyslog服務實例

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

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

開始配置:

1、將aaa服務器的所有系統服務日志的info級別以上的同步發送到bbb服務器上進行統一管理

(1)在aaa服務器上進行以下操作:

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

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

(2)在bbb服務器上進行以下操作:

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

# Provides TCP syslog reception 
$ModLoad imtcp               #去掉該行開頭的“#”注釋符號
$InputTCPServerRun 514               #去掉該行開頭的“#”注釋符號
             #..............省略部分內容
[root@bbb ~]# systemctl restart rsyslog        #重啟服務,使更改生效
[root@bbb ~]# tailf /var/log/secure     #動態監控著本機的日志文件
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....
             #..............省略部分內容

(3)在aaa服務器上進行以下操作(主要是為了產生日志信息):

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

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

Linux系統日志遠程采集

2、將編譯安裝的Nginx的日志發送到bbb服務器上進行管理;

(1)在aaa服務器上進行以下操作:

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

[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0
#必須保證系統默認自帶的yum文件也存在/etc/yum.repos.d/目錄下,寫入后保存退出即可。
[root@aaa ~]# yum repolist             #最好執行一下該命令
             #..............省略部分內容
(7/7): base/7/x86_64/primary_db                    | 6.0 MB   00:01     
源標識                          源名稱                            狀態
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執行后沒有顯示出上述內容,排除配置文件的錯誤后,可以執行以下命令
[root@aaa ~]# yum makecache          #用來建立元數據緩存的
             #..............省略部分內容
元數據緩存已建立
[root@aaa ~]# yum -y install nginx                 #安裝nginx服務
[root@aaa ~]# systemctl start nginx     #啟動Nginx服務
[root@aaa ~]# netstat -anpt | grep nginx              #確定Nginx服務已啟動
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服務的配置文件
             #..............省略部分內容
#在配置文件末尾寫入以下內容
$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               #重啟服務以便生效

關于上面寫入的配置項解釋如下:

$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
#以下是指定將采集的日志發送到哪里,同理,一個@符號表示使用的udp協議,兩個表示tcp協議
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服務器上進行日志的監控:

Linux系統日志遠程采集

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

Linux系統日志遠程采集

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

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

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

3、將編譯安裝的apache的日志也發送到bbb服務器上進行管理

(1)在aaa服務器上進行以下操作:

[root@aaa ~]# yum -y install httpd            #安裝apache服務
[root@aaa ~]# systemctl stop nginx      #為了避免端口沖突,停止Nginx服務
[root@aaa ~]# systemctl start httpd      #啟動apache服務
[root@aaa ~]# vim /etc/rsyslog.conf          #更改rsyslog配置文件,主要是更改采集日志的路徑
             #..............省略部分內容
$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 #還要改這個
#其余配置項可不改,但是建議改一下,以免看起來日志不太直觀。
$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                 #重啟服務,使更改生效

(2)在bbb服務器上進行日志的監控:

Linux系統日志遠程采集

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

Linux系統日志遠程采集

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

Linux系統日志遠程采集

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

———————— 本文至此結束,感謝閱讀 ————————

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正蓝旗| 双流县| 南康市| 银川市| 大兴区| 海兴县| 西和县| 嘉义市| 陕西省| 夹江县| 临泉县| 定州市| 潮安县| 盐城市| 溆浦县| 本溪市| 玉溪市| 安国市| 德安县| 九寨沟县| 墨玉县| 芜湖市| 威远县| 洛南县| 佛学| 四子王旗| 武宁县| 台州市| 华安县| 茌平县| 临泉县| 翼城县| 泾源县| 涟源市| 鄂托克旗| 财经| 冷水江市| 浙江省| 商洛市| 南汇区| 体育|