rsyslog日志總結


rsyslog日志總結

一 rsyslog介紹

syslogd被rsyslog取代

將日志寫入數據庫 可以利用模塊和插件控制輸入輸出

rsyslog程序管理本地和遠程日志

安裝軟件

根據需求修改配置文件

啟動服務

測試驗證

日志:
歷史事件:時間,地點,人物,事件
日志級別:事件的關鍵性程度,Loglevel
系統日志服務:
sysklogd :CentOS 5之前版本
syslogd: system application 記錄應用日志
klogd: linux kernel 記錄內核日志
事件記錄格式:
日期時間 主機 進程[pid]: 事件內容
C/S架構:通過TCP或UDP協議的服務完成日志記錄傳送,將分布在不同主機的日志實現集中管理

rsyslog特性:CentOS6和7
多線程
UDP, TCP, SSL, TLS, RELP
MySQL, PGSQL, Oracle實現日志存儲
強大的過濾器,可實現過濾記錄日志信息中任意部分
自定義輸出格式
ELK:elasticsearch, logstash, kibana
非關系型分布式數據庫
基於apache軟件基金會jakarta項目組的項目lucene
Elasticsearch是個開源分布式搜索引擎
Logstash對日志進行收集、分析,並將其存儲供以后使用
kibana 可以提供的日志分析友好的 Web 界面

二系統日志文件介紹

日志格式 文本日志/二進制日志/數據庫日志

常見日志文件

/var/log/boot.log 系統引導日志,記錄開機啟動信息

/var/log/dmesg 核心的啟動日志 (硬件相關)

/var/log/messages 系統的日志文件

/var/log/maillog 郵件服務的日志

/var/log/xferlog ftp服務的日tmp志

/var/log/secure 網絡連接及系統登錄的安全信息

/var/log/cron 定時任務的日志

/var/log/wtmp 記錄所有的登入和登出 last -f 查看

/var/log/btmp 記錄失敗的登入嘗試

三:日志級別

# man   syslog
日志信息分為以下級別,從上到下級別依次降低
none       不算是一個等級,它表示不記錄服務的所有信息
0  emerg      系統不可用
1  alert      特別留意的報警信息
2  crit       非常嚴重的狀況
3  err        錯誤信息
4  warning    警告信息
5  notice     稍微要注意的信息
6  info       正常信息
7  debug      調試信息,開發人員使用

四.日志配置

1.日志定義相關符號

配置文件中常見的表示符號
.       <---  用來分隔服務和級別
*       <---  任何服務,或者任何級別
=       <---有等號表示等於某一級別,沒有等號表示或者等於某一級別   mail.=info
mail.info
!       <---  排除操作,前面有相同服務的表達式,這個操作才有意義
        代表從前面表達式所包含的內容中排除某些內容
;     <--- 用於分隔不同的服務,級別組合
cron.=info;mail.info
,     <--- 用於分隔不同的服務   cron,mail.=info
-     <--- 用於指定目標文件時,代表異步寫入          -/var/log/maillog

舉例:

cron.err  0123
cron.=info  6
cron.!=info 0123457
mail,cron,ftp=err  3
cron.info;cron.!err
0123456    4567
456  #取交集
mail.info;mail.!=err
0123456    0124567
012456 #取交集

配置文件詳解

/etc/rsyslog.conf    rsyslog日志的主配置文件
/etc/rsyslog.d/*.conf    rsyslog日志的輔助配置文件
/var/log/        日志文件的目錄
cat /etc/rsyslog.conf    
*.info;mail.none;authpriv.none;cron.none                /var/log/messages  
#記錄所有服務產生的日志,除了mail/驗證/任務計划相關日志都記錄/
authpriv.*         /var/log/secure 
telnet  ssh  設備載體

#記錄所有跟驗證有關日志信息               mail.*             -/var/log/maillog                   #記錄所有跟郵件有關日志信息                    
cron.*               /var/log/cron
#記錄所有跟任務計划有關日志信息  
*.emerg               :omusrmsg:*
#把所有級別為emerg的信息發送給所有登錄到系統上的用戶
uucp,news.crit      /var/log/spooler
local7.*           /var/log/boot.log
#記錄所有跟啟動相關的日志
1.修改sshd的配置文件
vim /etc/ssh/sshd_config
SyslogFaclity local1


2.修改rsyslog程序的配置文件
vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none;local1.none
authpric.*;local1.none
local1.*
3.重啟服務測試驗證

總結:

本地日志管理:服務的日志和系統的日志

服務日志:

1.服務本身可以做管理自己的日志,比如ftp服務。----->服務的配置文件,vsftpd.conf

2.使用rsyslog程序管理服務的日志。rsyslog.conf--->日志設備載體.info /var/log/ftp.log

五遠程日志管理

目的:把多台服務器的日志遠程記錄到其中一台日志服務器集中化管理,方便對其統一分析和管理;

需求:

將ssh服務的日志遠程記錄到日志管理服務器上保存

環境准備

ssh-server 10.1.1.250(管理端)

log-server:10.1.1.1

ssh-server:10.1.1.3

client:10.1.1.2

思路:

1.在ssh-server上將ssh服務的日志單獨記錄

2.在ssh-server上通過修改rsyslog.conf文件來將本地ssh服務日志遠程傳送到log-server服務器上

3.在log-server上打開514端口等待客戶來傳送日志

4.測試驗證

步驟:

ssh-server
1.在日志服務器端完成以下事情
1)安裝rsyslog文件
rpm -qa rsyslog
2)在log-server上打開514端口
vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
systemctl  restart rsyslog
netstat -tnulp|grep 514
2.在ssh-server上將ssh服務的日志單獨記錄
修改sshd的配置文件
vim /etc/ssh/sshd_config
SyslogFaclity local1
1)ssh服務的日志載體定義為local1
2)刪除原來的本地保存
#local1.*                         /var/log/sshd.log
local1.* @@10.1.1.1:514
第一個@代表UDP協議傳送;@@代表tcp協議傳輸
3)重啟rsyslog服務
systemctl  restart rsyslog
useradd stu1
echo  123|passwd --stdin stu1

日志輪轉

日志輪轉介紹

日志輪換
logrotate 日志輪換的工具
日志存放的地方: /var/log/*

常見的日志文件:
/var/log/messages
/var/log/wtmp
/var/log/btmp

輪換工具的配置文件: /etc/logrotate.conf

/var/log/wtmp { <---需要輪換的日志的據對路徑
monthly <---采用每個月輪換一次的設定
minsize 1M <----日志輪換的時候日志文件必須不少於1M,盡管輪換的時間到了,如果文件達不到1M也不去輪換
create 0664 root utmp <----新建的日志文件權限是什么?擁有者是誰,組是誰?
rotate 1
}

size 512k <---盡管輪換的時間還沒到,如果日志文件達到512kb,也進行輪換

對ssh服務日志進行輪轉

要求:

1.每天進行輪轉,保留5天的日志文件

2.日志文件大小大於5M進行輪轉,不管是否到輪轉周期

思路:

修改logrotate程序的主配置文件或者在/etc/logrotate.d/目錄創建一個文件

步驟:

log-server
vim /etc/rsyslog.conf
local1.*                         /var/log/sshd.log
#local1.* @@10.1.1.1:514
find /var/log -type f -exec rm -f {} \;
find /var/log/ -type f -delete
systemctl restart rsyslog
方法1:修改主配置文件
vim /etc/logrotate.conf
...
/var/log/sshd.log {
daily
rotate 5
size 5M
}
測試驗證
logrotate -f /etc/logrotate.conf

方法2:創建子配置文件
vim /etc/logrotate.d/sshd
/var/log/sshd.log {
missingok
daily
rotate 5
size 5M
}
nodateext   //不以日期作為后綴
find /var/log/ -type f -delete
systemctl restart rsyslog
logrotate -f /etc/logrotate.conf

對FTP服務日志進行輪轉

要求:

1.每個月輪轉1次,保留一個月的日志

2.日志文件大小超過500M不管有沒有到輪轉周期必須輪轉

3.如果日志文件不存在也不報錯

思路:

1.首先得在當前系統中有ftp服務的日志

ftp服務自己本身管理日志(/var/log/xferlog)

交給rsyslog程序管理(vsftpd.conf--->syslog_enable=YES;設備載體默認是FTP);rsyslog.conf

----->ftp.* /var/log/ftp.log

log-server
yum install vsftpd -y
systemctl restart vsftpd
systemctl enable vsftpd
vim /etc/rsyslog.conf
ftp.*                                     /var/log/ftp.log
vim /etc/vsftpd/vsftpd.conf
lftp localhost
vim /etc/logrotate.d/vsftpd
添加
/var/log/ftp.log {
missingok
monthly
rotate 1
size 500M
}
logrotate -f /etc/logrotate.conf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM