一、
rsyslogd: 系統專職日志程序。將絕大部分日志記錄, 系統日志程序
和系統操作有關,安全,認證sshd,su,計劃任務at,cron...
mysql 數據庫 nginx 大型網站服務器 各大應用服務可以以自己的方式處理日志
用 ps aux |grep rsyslogd 可以查看 這是一個守護進程
二、常見的日志文件(系統、進程、應用程序)
tail /var/log/messages //系統主日志文件
tail -20 /var/log/messages //看后20行
tail -f /var/log/messages //動態查看日志文件的尾部
tailf /var/log/secure //認證、安全
tail /var/log/maillog //跟郵件postfix相關
tail /var/log/cron //crond、at進程產生的日志
tail /var/log/dmesg //和系統啟動相關
tail /var/log/audit/audit.log //系統審計日志
tail /var/log/yum.log //yum
tail /var/log/mysqld.log //MySQL
tail /var/log/xferlog //和訪問FTP服務器相關
w //當前登錄的用戶 /var/log/wtmp
last //最近登錄的用戶 /var/log/btmp
lastlog //所有用戶的登錄情況 /var/log/lastlog
案例1: SSH登錄失敗的用戶
[root@localhost ~]# grep 'Fail' /var/log/secure
案例2: SSH登錄成功的用戶
[root@localhost ~]# grep 'Accepted' /var/log/secure
啟動 rsyslogd配置 程序 systemctl start rsyslog.service
rpm -qc rsyslog //觀察日志程序的配置文件
告訴rsyslogd進程 哪個設備,什么樣的信息,以及存到哪里。比如
vim /etc/rsyslog.conf
RULES:即規則,是一套生成日志,以及存儲日志的策略。
由設備+級別+存放位置組成。
由FACILITY+LEVEL+FILE組成。
authpriv.* /var/log/secure(SSH信息) ssh信息
mail.* -/var/log/maillog(發郵件) 郵件日志
cron.* /var/log/cron(創建任務) 循環任務日志
authpriv.* * <代表所有終端>
authpriv. @192.168.10.230 <UDP>
authpriv.* @@192.168.10.230 <TCP>
@@表示通過tcp協議發送 @表示通過udp進行轉發
目的:通過man手冊理解設備和級別
man 3 syslog
facility:是系統對某種類型事件的定義。如AUTHPRIV是安全事件,CRON是計劃任務事件。
設備如下:
LOG_AUTH
LOG_AUTHPRIV 安全認證
LOG_CRON clock daemon (cron and at)
LOG_DAEMON 后臺進程
LOG_FTP ftp daemon
LOG_KERN kernel messages
LOG_LOCAL0 through LOG_LOCAL7 用戶自定義設備
LOG_LPR printer subsystem
LOG_MAIL 郵件系統mail subsystem
LOG_NEWS news subsystem
LOG_SYSLOG syslogd自身產生的日志
LOG_USER (default)
man 3 syslog
level :是指遇到何種情況(正常、錯誤)才會記錄日志。
LOG_EMERG 緊急,致命,服務無法繼續運行,如配置文件丟失
LOG_ALERT 報警,需要立即處理,如磁盤空使用95%
LOG_CRIT 致命行為
LOG_ERR 錯誤行為
LOG_WARNING 警告信息
LOG_NOTICE 普通,重要的標準信息
LOG_INFO 標準信息
LOG_DEBUG 調試信息,排錯所需,一般不建議使用
從下到上,級別從低到高,記錄的信息越來越少
logger "run......." //messages日志
logger -p emerg "run......." //所有終端
logger -p authpriv.info "run......."
//secure安全日志
日志可以存放在本地
日志可以存放在遠程服務器
案例1:將authpriv設備日志記錄到/var/log/auth.log
1.修改日志文件位置
vim /etc/rsyslog.conf
authpriv.* /var/log/secure
authpriv.* /var/log/auth.log
2.重啟程序,觸發日志生成。
systemctl restart rsyslog.service
ll /var/log/auth.log
-rw-------. 1 root root 964 /var/log/auth.log
cat /var/log/auth.log
案例2:改變應用程序sshd的日志設備為local5, 并定義local5設備日志記錄到/var/log/local5.local
1.設置ssh程序的日志設備為自定義設備。
vim /etc/ssh/sshd_config
SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
2.設置自定義設備日志文件存放位置。
vim /etc/rsyslog.conf
local5.* /var/log/local5.local
3.重啟生效。
systemctl restart sshd 重啟sshd程序
systemctl restart rsyslog 重啟日志
4.嘗試登錄,觸發日志。
5.觀察日志。理解自定義日志設備。
ll /var/log/local5.local
-rw-------. 1 root root 201 /var/log/local5.local
cat /var/log/local5.local
案例3:使用logger程序寫日志到指定的設備及級別,并發送到集中日志服務器。
服務器1(10.18.41.144)發送日志
vim /etc/ssh/sshd_config
SyslogFacility AUTHPRIV 這個 復制下來一份 用 yy p 將上方注釋掉 下邊呢個可以改了
SyslogFacility LOCAL5 這樣是為了避免錯誤后能夠修改回來設備local5 用來區分用
vim /etc/rsyslog.conf 此文件來管理日志
local5.* @10.18.41.12 此處填寫另一臺設備的IP地址。另一臺設備是集中日志服務器。
systemctl restart sshd 重啟sshd程序
systemctl restart rsyslog 重啟日志
systemctl stop firewalld 關閉防火墻
總結: 編輯ssh程序 把
服務器2(10.18.41.12)接受日志
vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514 這兩個 將注釋去掉就行
local5.* /var/log/server152.log
systemctl restart rsyslog
systemctl stop firewalld
嘗試ssh登錄服務器1.
并觀察本地日志
ll /var/log/server152.log