日志管理服務
基本介紹
- 日志檔案是重要的系統檔案,記錄許多重要的系統事件,如:用戶登錄資訊、系統啟動資訊、系統的安全資訊等
- /var/log 目錄是系統日志檔案的保存位置
- centos7.6日志管理服務是rsyslogd, centos6.x的是syslogd,兩者兼容,
常用的日志檔案:

組態檔
組態檔,在/etc/rsyslog.conf,里面存放規則方便那些東西放在哪里,
格式
格式為*.*,第一個*表示日志型別,第二個*表示日志級別,
- 日志型別
| 型別 | 說明 |
|---|---|
| auth | pam產生的日志 |
| authpriv | ssh、ftp等登錄資訊的驗證資訊 |
| corn | 時間任務相關 |
| kern | 內核 |
| lpr | 列印 |
| 郵件 | |
| mark(syslog)-rsyslog | 服務內部的資訊,時間標識 |
| news | 新聞組 |
| user | 用戶程式產生的相關資訊 |
| uucp | unix to nuix copy主機之間的相關通訊 |
| local 1-7 | 自定義的日志設備 |
- 日志級別
| 級別 | 說明 |
|---|---|
| debug | 有除錯資訊 |
| info | 一般資訊日志,最常用 |
| notice | 最具有重要性的普通條件的資訊 |
| warning | 警告級別 |
| err | 錯誤級別,阻止某個功能或者模塊不能正常作業的資訊 |
| crit | 嚴重級別,阻止整個系統或者整個軟體不能正常作業的資訊 |
| alert | 需要立即修改的資訊 |
| emerg | 內核崩潰等重要資訊 |
| none | 什么也不做 |
從上到下,級別越來越高,記錄資訊越來越少
前提
rsyslogd是否運行: ps aux | grep "rsyslogd" | grep -v "rsyslogd
查看日志
- 注意當前用戶權限
- 使用命令查看,可以是cat/more/less等
比如:
[root@rH7-1 ~]# cat /var/log/secure
Jan 3 20:39:18 rH7-1 sshd[10878]: Accepted password for lczmx from 192.168.255.1 port 19375 ssh2
日志格式:
時間 主機 由哪個程式(服務)發生 時間描述資訊
實體:
- 修改組態檔,使用一個自定義的檔案接受并保存資訊
- 查看該檔案的日志
# 在/etc/rsyslog.conf中加入
*.* /var/log/all.log
# 在/var/log下創建all.log
touch all.log
# 用ssh登錄到該主機,然后查看日志,假如沒有資訊,可以restart一下rsyslog.service
grep "sshd" /var/log/all.log
Jan 5 13:28:26 rH7-1 sshd[10428]: Received disconnect from 192.168.255.1 port 2226:11: disconnected by user
Jan 5 13:28:26 rH7-1 sshd[10428]: Disconnected from 192.168.255.1 port 2226
Jan 5 13:28:26 rH7-1 sshd[10424]: pam_unix(sshd:session): session closed for user lczmx
Jan 5 13:28:29 rH7-1 sshd[10562]: Accepted password for lczmx from 192.168.255.1 port 2248 ssh2
Jan 5 13:28:30 rH7-1 sshd[10562]: pam_unix(sshd:session): session opened for user lczmx by (uid=0)
日志輪替
把舊的日志檔案移動并重命名,同時建立空的日志檔案,當舊的日志檔案超過保存范圍后洗掉,
如何輪替需要設定組態檔:/etc/logrotate.conf
組態檔引數
| 引數 | 說明 |
|---|---|
| daily | 每天 |
| weekly | 每周 |
| monthly | 每月 |
| rotate 數字 | 保留幾份,0表示沒有備份 |
| compress | 輪替時,舊的日志是否壓縮 |
| create mode owner group | 建立新日志,指定權限、所有者、所屬組 |
| mail address | 輪替時,輸出內容通過郵件發送到指定郵件地址 |
| missingok | 日志不存在時,忽略該日志的警告資訊 |
| notifempty | 日志為空檔案時,不進行日志輪替 |
| minsize | 輪替最小值,只有達到最小值了才會輪替 |
| size | 日志大于指定大小時輪替,不是按照時間輪替 |
| dateext | 以日期作為輪替檔案后綴 |
| sharedscripts | 此關鍵詞后的腳本只執行一次 |
| prerotate/endscript | 輪替前執行腳本 |
| postrotate/endscript | 輪替后執行腳本 |
- dateext引數:以日期命名,需要指定保存日志的個數,超出時,洗掉多余的日志檔案,
- 假如沒有dateext引數,默認以xx.1、xx.2的格式命名,生成新的日志檔案時,數字會往后推,
/etc/logrotate.conf檔案:
# see "man logrotate" for details
# rotate log files weekly 每周對日志進性一次輪替
weekly
# keep 4 weeks worth of backlogs 保存多少份
rotate 4
# create new (empty) log files after rotating old ones 在日志輪替后,創建新的空的日志檔案
create
# use date as a suffix of the rotated file 使用日期作為日志輪替檔案后綴
dateext
# uncomment this if you want your log files compressed 日志檔案是否壓縮,不注釋即為壓縮
#compress
# RPM packages drop log rotation information into this directory
# 下面是配置某個日志檔案,可以寫在這里,也可以寫在/etc/logrotate.d
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp # 664權限,所有者:root,所屬組:utmp
minsize 1M # 檔案最小輪替大小
rotate 1 # 僅保留一份
}
/var/log/btmp {
missingok # 日志不存在則忽略
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
日志輪替的運行原理
crond后臺程式執行:/etc/cron.daily/logrotate
logrotate檔案的內容:
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=https://www.cnblogs.com/lczmx/archive/2021/01/08/$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
/etc/cron.daily/logrotate中執行logrotate命令并指定配置資訊:/etc/logrotate.conf,
查看記憶體日志
記憶體日志即存放在記憶體中的日志,用journalctl查看,需要注意的是在電腦關機之后,記憶體中的日志就會被清除,
常用命令:
journalctl可以查看記憶體日志journalctl -n 3查看最新3條日志journalctl --since 19:00 --until 19:10:10查看起始時間到結束時間的日志,可加日期journalctl -p err報錯日志journalctl -o verbose日志詳細內容journalctl _PID=123 _COMM=sshd查看包含這些引數的日志
我的github
我的博客
我的筆記
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/246391.html
標籤:其他
上一篇:SRAM VS DRAM
下一篇:Redis--組態檔詳解
