系統日誌
1.系統日誌默認分類
/var/log/messages ##系統服務及日誌,包括服務的信息,報錯等等
/var/log/secure ##系統認證信息日誌
/var/log/maillog ##系統郵件服務信息
/var/log/cron ##系統定時任務信息
/var/log/boot.log ##系統啓動信息
2.日誌管理服務rsyslog
(1)rsyslog負責採集日誌和分類存放日誌
(2)rsyslog日誌分類
vim /etc/rsyslog.conf ##主配置文件
服務.日誌級別 /存放文件
* . * /var/log/westos
systemctl restart rsyslog
格式:
日誌設備(類型).(連接符號)日誌級別 日誌處理方式(action)
日誌設備(可以理解爲日誌類型):
auth ##pam產生的日誌
authpriv ##ssh,ftp等登錄信息的驗證信息
cron ##時間任務相關
kern ##內核
lpr ##打印
mail ##郵件
mark(syslog)–rsyslog ##服務內部的信息,時間標識
news ##新聞組
user ##用戶程序產生的相關信息
uucp ##unix to unix copy, unix主機之間相關的通訊
local 1~7 ##自定義的日誌設備
日誌級別####(. * ) * . * 表示所有
———————————————————————
debug ##有調式信息的,日誌信息最多
info ##般信息的日誌,最常用
notice ##最具有重要性的普通條件的信息
warning ##警告級別
err ##錯誤級別,阻止某個功能或者模塊不能正常工作的信息
crit ##嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息
alert ##需要立刻修改的信息
emerg ##內核崩潰等嚴重信息
none ##什麼都不記錄
注意:從上到下,級別從低到高,記錄的信息越來越少
詳細的可以查看手冊: man 3 syslog
連接符號
——————————————————
.xxx: 表示大於等於xxx級別的信息
.=xxx:表示等於xxx級別的信息
.!xxx:表示在xxx之外的等級的信息
實例
1. 記錄到普通文件或設備文件::
* . * /var/log/file.log #絕對路徑
* . * /dev/pts/0
測試: logger -p local3.info ‘KadeFor is testing the rsyslog and logger ‘ logger 命令用於產生日誌
發送給用戶(需要在線才能收到)
* . * root
* . * root,kadefor,up01 ## 使用,號分隔多個用戶
* . * * ## *號表示所有在線用戶忽略,丟棄
local3.* ~ ## 忽略所有local3類型的所有級別的日誌執行腳本::
local3.* ^/tmp/a.sh ## ^號後跟可執行腳本或程序的絕對路徑
日誌內容可以作爲腳本的第一個參數 ## 可用來觸發報警
日誌同步
systemctl stop firewalld ##關閉兩臺主機的火牆(接收方必須關閉防火牆,發送方可關可不關)
配置日誌發送方(vim /etc/rsyslog.conf,編輯結束後加載配置文件 systemctl restart rsyslog.service)
* . * @172.25.0.1 ##通過udp協議把日誌發送到11主機,@udp,@@tcp
UDP與TCP比較:UDP傳送速度塊,安全性低
配置日誌接受方(vim /etc/rsyslog.conf,編輯結束後加載配置文件 systemctl restart rsyslog.service)
15 $ModLoad imudp ##日誌接收插件
16 $UDPServerRun 514 ##日誌接收插件使用端口
netstat -anulpe | grep rsyslog
udp 0 0 0.0.0.0:514 0.0.0.0:* 0 122073 32654/rsyslogd
udp6 0 0 :::514 :::* 0 122074 32654/rsyslogd
-a ##all
-n ##不做解析
-t ##tcp
-u ##udp
-p ##進程名稱
-e ##擴展信息
測試
> /var/log/messages ##兩邊都作(清空/var/log/messages文件的內容)
logger test message ##日誌發送方(做測試,發送方輸入logger test message,接收方監控顯示test message)
tail -f /var/log/message ##日誌接收方(顯示接收的信息內容並進行監控)
日誌採集格式
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% ##顯示日誌時間
%FROMHOST-IP% ##顯示主機ip
%syslogtag% ##日誌記錄目標
%msg% ##日誌內容
\n ##換行
$ActionfileDefaultTemplate WESTOS
*.info;mail.none;authpriv.none;cron.none /var/log/messages;WESTOS
日誌是以數據的形式傳送,日誌格式採集應在日誌接收方設置,WESTOS僅表示該日誌採集格式的名稱。
3.日誌分析工具journal
systemd-journald ##進程名稱
journalctl ##直接執行,瀏覽系統日誌
-n 3 ##顯示最新3條
-p err ##顯示報錯
-f ##監控日誌
--since --until ## --since "[YYYY-MM-DD] [hh:mm:ss]" ##從什麼時間到什麼時間的日誌
-o verbose ##顯示日誌能夠使用的詳細進程參數
##_SYSTEMD_UNIT=sshd.service服務名稱
##_PID=1182進程pid
對systemd-journald管理
默認情況下此程序會忽略重啓前的日誌信息,如不忽略:
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
killall -1 systemd-journald
ls /var/log/journal/4513ad59a3b442ffa4b7ea88343fa55f
system.journal user-1000.journal
4.時間同步
1.服務端
yum install chrony -y ##安裝服務
vim /etc/chrony.conf ##主配置文件
21 # Allow NTP client access from local network.
22 allow 172.25.0.0/24 ##允許誰去同步我的時間
27 # Serve time even if not synchronized to any NTP server.
28 local stratum 10 ##不去同步任何人的時間,時間同步服務器級別
systemctl restart chronyd
systemctl stop firewalld
2.客戶端
vim /etc/chrony.conf
3 server 0.rhel.pool.ntp.org iburst
4 server 1.rhel.pool.ntp.org iburst====> server 172.25.19.11 iburst
5 server 2.rhel.pool.ntp.org iburst
6 server 3.rhel.pool.ntp.org iburst
systemctl restart chronyd
測試:
chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| / xxxx = adjusted offset,
|| Log2(Polling interval) -. | yyyy = measured offset,
|| \ | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 172.25.0.11 10 6 377 41 +170us[ +201us] +/- 191us
然後對兩個主機的時間進行監控
5.timedatectl命令
timedatectl status ##顯示當前時間信息
set-time ##設定當前時間
set-timezone ##設定當前時區
set-local-rtc 0|1 ##設定是否使用utc時間