Linux日誌管理及優化方式
實驗環境
兩臺虛擬機
rhel8:192.168.1.32
rhel7: 192.168.1.33
1. journald
服務名稱 systemd-journald.service
默認日誌存放路徑 /run/log (重啓後會清空)
實驗1
journalctl命令的用法
journalctl ##直接執行,瀏覽系統日誌
journalctl -n 3 ##顯示最新3條
journalctl --since "2020-2-13 12:30" --until "2020-2-13 21:00"從什麼時間到什麼時間的日誌
journalctl -o verbose ##顯示日誌能夠使用的詳細進程參數
journalctl -o short ##經典模式顯示日誌
journalctl -o export ##適合傳出和備份的二進制格式
journalctl -o json ##js格式顯示
journalctl -p 顯示級別的日誌
journalctl -F PRIORITY
journalctl -u sshd
journalctl --disk-usage
journalctl --vacuum-size(臨時)
journalctl --vacuum-time(臨時)
vim /etc/systemd/journald_conf 永久設定日誌容量大小
journalctl -f 監控
查看指定pid的sshd日誌
journalctl -o export 通過查看二進制日誌獲取信息
journalctl _PID=12861 _SYSTEMD_UNIT=sshd.service
實驗2 用journald服務永久存放日誌
系統默認從存放位置 /run/log/journal 中
默認方式在系統重啓後日志會被清理,永久保存日誌需要以下操作
測試
systemctl restart systemd-journal.service
reboot 重啓虛擬機
2. rsyslog
服務名稱:rsyslog.service
/var/log/messages ##系統服務及日誌,信息,報錯
/var/log/secure ##系統認證信息日誌
/var/log/maillog ##系統郵件服務信息
/var/log/cron ##系統定時任務信息
/var/log/boot.log ##系統啓動信息
配置文件:etc/rsyslog.conf
實驗1 自定義日誌文件採集路徑
####日誌類型####
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 ##內核崩潰等嚴重信息
vim /etc/rsyslog.conf
systemctl restart rsyslog.service 重啓服務
cat /var/log/westos | less查看文件
實驗2
1.更改日誌採集格式
vim /etc/rsyslog.conf
30行
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
2.設置採集格式應用
cat /var/log/westos
實驗3 日誌的遠程同步
rhel7:192.168.1.33 作爲接受臺,所有人日誌都存放在這臺主機
rhel8: 192.168.1.32 發送日誌到rhel7中
1.在rhel7中接收日誌
vim /etc/rsyslog.conf
netstat -antlupe | grep rsyslog 查詢端口
2.在rhel8中設定將日誌發送到 rhel7中
vim /etc/rsyslog.conf
配置日誌發送方
*.* @172.25.0.11 ##通過udp協議把日誌發送到11主機,@udp,@@tcp
測試:
在兩個虛擬機中清空日誌 > /var/log/messages
在rhel8中logger westos test messages生成日誌
在rhel7中查看
3.timedatectl
timedatectl status ##顯示當前時間信息
set-time ##設定當前時間
list-timezones ##顯示系統所有時區
set-timezone "Asia/shanghai" ##設定當前時區
set-local-rtc 0|1 ##設定是否使用utc時間
timedatectl set-time "2020-2-13 19:56"
imedatectl status
timedatectl list-timezones
timedatectl set-timezone "Asia/Shanghai"
4. 時間同步
服務名稱chronyd.service
配置文件/etc/chrony.cof
rhel7作爲時間源,rhel8同步rhel7的時間
在rhel7中
vim /etc/chrony.conf
systemctl restart chronyd.service 重啓服務
systemctl stop firewalld 關閉防火牆
在rhel8中
vim /etc/chrony.conf
systemctl restart chronyd
chronyc sources -v