linux系统日志的查看和采集
我們首先要明白,日志是程序本身產生的,那么日志儲存在哪里,該如何查看呢?
一、查看日志
先來了解以下日志的類型和日志的級別。
1.日志的類型
auth ##pam產生的日志 suthpriv ##ssh,ftp等登陸信息的驗證信息 cron ##時間任務相關 kern ##內核 lpr ##打印 mail ##郵件 mark(syslog)-rlog ##服務內部的信息,時間標識 news ##新聞組 user ##用戶程序產生的相關信息 uucp ##unix to unix copy,unix主機之間相關的通訊 local 1~7 ##自定義的日志設備2.日志的級別
debug ##有調式信息的,日志信息最多 info ##一般信息的日志,最常用 notice ##最具有重要性的普通條件的信息 warning ##警告級別 err ##錯誤級別,阻止某個功能或者模塊不能正常工作的信息 crit ##嚴重級別,阻止整個系統或軟件不能正常工作的信息 alert ##需要立刻修改的信息 emerg ##內核崩潰等嚴重信息 none ##什么都不記錄注意:從上到小,級別從低到高,記錄的信息越來越少。
3.系統產生的日志在/var/log下,分類有:服務信息messages、服務認證secure、郵件服務日志maillog、定時日志cron等。
上條命令可以查看日志中的服務日志。
二、采集日志
如果我們要采集一些主機里的日志信息時,需要完成以下的步驟,這里我將ip為172.25.254.130的node1作為管理日志方(以下稱為接受方),將ip為172.25.254.230的node2作為發送日志的一方(以下成為發送方):
接受方:
1.使用 systemctl stop firewalld關閉火墻
2.使用vim /etc/rsyslog.conf編輯日志文件,讓日志接口打開(把第15、16行的注釋去掉)
3.使用systemctl restart rsyslog.service重啟
發送方:
1.使用vim /etc/rsyslog.conf編輯日志文件,在RULES下面添加發送端的ip,如圖
2.使用systemctl restart rsyslog.service重啟
3.使用>/var/log/messages清除日志,方便等下測試
4.建立一個測試日志logger test,在接受方使用cat /var/log/messages查看
如果出現/etc/rc.d/rc.local等文件的話,使用> /etc/rc.d/rc.local 然后reboot,然后重新連接退出的這個id:ssh @ip,重新測驗:logger westos,之后使用cat查看:cat /var/log/messages,可以發現/etc/rc.d/rc.local等文件沒了。
既然node1采集的是node2的日志,那么日志時間應該和node2的一致,但是在完成以上操作時,發現node1接受到的日志時間和node2是不一致的。
此時需要將采集日志的格式進行規定,同時同步時間。
-
1 設定日志格式
vim /etc/rsyslog.conf
進去后在rules下一行加:
$template WESTOS,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n",并且要在57行最后加上;WESTOS
重啟:
systemctl restart rsyslog.service
之后就可以使用WESTOS了
如下圖:
-
2 同步時間
1.先在接收端編輯:
vim /etc/chrony.conf
在第22行修改:
allow 172.25.254/24
重啟:
systemctl restart chronyd.service
2.在發送端編輯:
vim /etc/chrony.conf
編輯第3行,改成:
server 172.25.254.130 iburst
編輯第26行 打開ocal stratum 10這一行
重啟:
systemctl restart chronyd.service
- 3 怎么查看發送端是否和接收端的時間同步
在發送方使用:
chronyc sources -v 來進行查看
發現左下角有172.25.254.130,說明時間同步了。
如果在接收端重新更改時間,需要在發送端先重啟一下
此時發送端不會同步更改后的時間,也需要同步一下并稍微等待一會兒
三、手動設置時間信息timedatectl
使用date查看時間信息,有時候時間信息會和硬件時間不一致。
1.設置時區(本地時間)
1)先使用:
timedatectl list-timezones來查看時區
2)再用:
timedatectl set-timezone Asia/Shanghai設置時區
2.重新查看timedatectl
#bios time 硬件時間#
為了讓硬件時間是本地時間
1)timedatectl set-local-rtc 0(先關閉)
timedatectl查看各個時間
2)timedatectl set-local-rtc 1(再開啟)
timedatectl查看
更改時間
1)timedatectl set-time "2018-11-14 09:25:11"
2)使用date查看
四、使用journalctl采集目錄
使用journalctl -n 5查看最新的5條
按時間查看日志
從某個時間開始 journalctl --since 09:20
某時刻到某時刻 journalctl --since 09:20 --until 09:01:50
錯誤日志 journalctl -p err
有時候使用systemctl status sshd 查看服務信息時,(如下圖ssh的id是1213)
當我使用systemctl restart sshd.service重啟服務后,
再使用systemctl status sshd,(如下圖,發現id改變了)
id改變,journalctl查看的是哪一次的操作不清楚
可以查看所有日志詳細參數 journalctl -o verbose
查看之后可以輸入自己想看的id信息,
比如journalctl _PID=30053 _COMM=sshd
##采集目錄
因為關機之后日志會被釋放,所以要建一個journal目錄來保存日志
1)mkdir /var/log/journal/
2)查看journal權限ll -d /var/log/journal/
3)改組名:
4)列出進程并過濾:
ps aux | grep systemd-journald5)給組加權限,只能組員更改:
chmod g+s /var/log/journal/6)ls -ld /var/log/journal查看journal權限
7)kill -1 361 重啟
8)重啟后繼續查看日志在不在:
cd /var/log/journal/
9)ls 發現有一串碼
10)bootctl查看機器碼
11)ll 946cb0e817ea4adb916183df8c4fc817
總結
以上是生活随笔為你收集整理的linux系统日志的查看和采集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 易语言自己学习篇
- 下一篇: pxcook导出html代码,Pxcoo