目錄
一、inode和block
1、inode表結構
2、?查看inode號碼的命令
3、Linux系統(tǒng)文件三個主要時間屬性
4、用戶通過文件名打開文件時系統(tǒng)內(nèi)部的過程
5、inode的大小
6、命令與inode
6.1 cp 命令:
6.2 rm 命令:
6.3 mv命令
二、日志
1、功能
2、日志文件的分類及一些常見日志文件
2.1 內(nèi)核及系統(tǒng)日志
2.2 用戶日志
2.3 程序日志
三、系統(tǒng)日志介紹
1、sysklogd系統(tǒng)日志服務
2、rsyslog系統(tǒng)日志管理
2.1rsyslog特性
3、ELK
四、rsyslog管理
1、日志消息級別
2、服務名稱
? ? ? ? ?3、rsyslog配置文件
4、實際應用:
4.1 將ssh服務的日志單獨設置
4.2 實例:通過網(wǎng)絡將本地的日志遠程備份到另一臺機器,網(wǎng)絡日志(遠程日志功能)
一、inode和block
- 文件數(shù)據(jù)包括元信息與實際數(shù)據(jù)
- 文件存儲在硬盤上,硬盤最小存儲單位為“扇區(qū)”,每個扇區(qū)存儲512字節(jié)
- block(塊)
- 連續(xù)的八個扇區(qū)組成一個block
- 是文件存取的最小單位
- inode(索引節(jié)點)
- 用于存儲文件信息
- 同一個硬件設備上是唯一的,不可以跨設備,inode實際是資源,是可以被用完的,用完后無法創(chuàng)建任何文件。(xargs:讀取前面的參數(shù);?? -n1:一個一個給)
- inode和block的關系
- 文件數(shù)據(jù)包括實際數(shù)據(jù)與元信息(類似文件屬性)。文件數(shù)據(jù)存儲在“塊"中,存儲文件元信息(比如文件的創(chuàng)建者、創(chuàng)建日期、文件大小、文件權限等)的區(qū)域就叫做inode。 因此,一 個文件必須占用一個inode, 并且至少占用一個block.
- inode不包含文件名。文件名是存放在目錄當中的。Linux系統(tǒng)中一切皆文件,因此目錄也是一種文件。
- 每個inode都有一個號碼,操作系統(tǒng)用inode號碼來識別不同的文件。Linux系統(tǒng)內(nèi)部不使用文件名,而使用inode號碼來識別文件。對于系統(tǒng)來說,文件名只是inode號碼便于識別的別稱,文件名和inode號碼是一 一對應關系,每個inode號碼對應一個文件名。
?
1、inode表結構
? ? ? ? ? 每個文件的屬性信息,比如:文件的大小,時間,類型,權限等,稱為文件的元數(shù)據(jù)(meta data 元信息 )
? ? ? ? ?元數(shù)據(jù)是存放在inode(index node)表中。inode 表中有很多條記錄組成,第一條記錄對應的存放了一個文件的元數(shù)據(jù)信息。
每一個inode表記錄對應的保存了以下信息:
inode number 節(jié)點號
文件類型
權限
UID
GID
鏈接數(shù)(指向這個文件名路徑名稱個數(shù))
該文件的大小和不同的時間戳
指向磁盤上文件的數(shù)據(jù)塊指針
有關文件的其他數(shù)據(jù)
2、?查看inode號碼的命令
1. 查看文件名對應的inode號碼
ls -i 文件名
2. 查看文件inode信息中的inode號碼
stat 文件名
3、Linux系統(tǒng)文件三個主要時間屬性
- ctime(change time):最后一次改變文件或目錄(屬性)的時間
- atime(access time):最后一次訪問文件或目錄的時間
- mtime(modify time):最后一次修改文件或目錄(內(nèi)容)的時間
4、用戶通過文件名打開文件時系統(tǒng)內(nèi)部的過程
- 系統(tǒng)找到這個文件名對應的inode號碼
- 通過inode號碼,獲取inode信息
- 根據(jù)inode信息,找到文件數(shù)據(jù)所在的block,讀出數(shù)據(jù)
問題:我磁盤空間還剩余很多但無法繼續(xù)建立文件?
答案:因為inode號用完了
解決方法:
- 如果是lvm邏輯卷,可以擴容 。
- 普通分區(qū),刪除沒有用的文件。
5、inode的大小
- inode也會消耗硬盤空間,每個inode的大小一般是128字節(jié)或256字節(jié)
- inode的總數(shù),在格式化時就確定
- 如果磁盤還有空間,但inode號被全部占用,無法創(chuàng)建新文件。
- inode號在同一個文件系統(tǒng)內(nèi)唯一,在不同的文件系統(tǒng)中可以重復。
- 查看每個硬盤分區(qū)的inode總數(shù)和已經(jīng)使用的數(shù)量,可以使用命令: df -I
6、命令與inode
6.1 cp 命令:
-
分配一個空閑的inode號,在inode表中生成新條目
-
在目錄中創(chuàng)建一個目錄項,將名稱與inode編號關聯(lián)
-
拷貝數(shù)據(jù)生成新的文件
6.2 rm 命令:
-
硬鏈接數(shù)遞減,從而釋放的inode號可以被重用
-
把數(shù)據(jù)塊放在空閑列表中
-
刪除目錄項
-
數(shù)據(jù)實際上不會馬上被刪除,但當另一個文件使用數(shù)據(jù)塊時將被覆蓋
6.3 mv命令
- 如果mv命令的目標和源在同一設備,
- 不影響inode表(除時間戳)或磁盤上的數(shù)據(jù)位置:沒有數(shù)據(jù)被移動!
- 刪除舊的目錄對應關系新建目錄對應關系
二、日志
1、功能
- 用于記錄系統(tǒng)、程序運行中發(fā)生的各種事件
- 通過閱讀日志,有助于診斷和解決系統(tǒng)故障
2、日志文件的分類及一些常見日志文件
2.1 內(nèi)核及系統(tǒng)日志
- 由系統(tǒng)服務rsyslog統(tǒng)一進行管理,日志格式基本相似
- 主配置文件
/etc/rsyslog.conf
日志文件位置 | 日志文件說明 |
/var/log/messages內(nèi)核和公共日志 | 系統(tǒng)中大部分的信息 |
/var/log/secure | 系統(tǒng)安全日志,文本格式,應周期性分析 |
2.2 用戶日志
記錄系統(tǒng)用戶登錄及退出系統(tǒng)的相關信息
日志文件位置 | 日志文件說明 |
/var/log/btmp |
當前系統(tǒng)上,用戶的失敗嘗試登錄相關的日志信息,二進制格式,lastb命令進行查看 |
/var/log/wtmp | 當前系統(tǒng)上,用戶正常登錄系統(tǒng)的相關日志信息,二進制格式,last命令可以查看 |
/var/log/lastlog | 每一個用戶最近一次的登錄信息,二進制格式,lastlog命令可以查看 |
2.3 程序日志
- 由各種應用程序獨立管理的日志文件,記錄格式不統(tǒng)一
- 是和程序本身有關,有的有獨有日志,有的沒有獨立日志
三、系統(tǒng)日志介紹
1、sysklogd系統(tǒng)日志服務
CentOS 5 之前版本采用的日志管理系統(tǒng)服務
- syslogd: system application 記錄應用日志
- klogd: linux kernel 記錄內(nèi)核日志
事件記錄格式:
- 日期時間 主機 進程[pid]: 事件內(nèi)容
- ?C/S架構:通過TCP或UDP協(xié)議的服務完成日志記錄傳送,將分布在不同主機的日志實現(xiàn)集中管理
2、rsyslog系統(tǒng)日志管理
- rsyslog是CentOS 6以后版本的系統(tǒng)管理服務:它提供了高性能,出色的安全性和模塊化設計。
- 官網(wǎng)地址:http://www.rsyslog.com/? ? ?
2.1rsyslog特性
-
多線程
-
UDP, TCP, SSL, TLS, RELP
-
MySQL, PGSQL, Oracle實現(xiàn)日志存儲
-
強大的過濾器,可實現(xiàn)過濾記錄日志信息中任意部分
-
自定義輸出格式 可以日志
-
適用于企業(yè)級
3、ELK
由Elasticsearch, Logstash, Kibana三個軟件組成
- 非關系型分布式數(shù)據(jù)庫基于apache軟件基金會jakarta項目組的項目lucene
- Elasticsearch是個開源分布式搜索引擎,可以處理大規(guī)模日志數(shù)據(jù),比如:Nginx、Tomcat、系統(tǒng)日志等功能
- Logstash對日志進行收集、分析,過濾,并將其存儲供以后使用
- Kibana 可以提供的日志分析友好的 Web 界面
?
四、rsyslog管理
1、日志消息級別
Linux系統(tǒng)內(nèi)核日志消息的優(yōu)先級別(數(shù)字等級越小,優(yōu)先級越高,消息越重要):
級別 | 消息 | 級別 | 具體描述 |
---|---|---|---|
0 | EMERG | 緊急 | 會導致主機系統(tǒng)不可用的情況 |
1 | ALERT | 警告 | 必須馬上采取措施解決的問題 |
2 | CRIT | 嚴重 | 比較嚴重的情況 |
3 | ERR | 錯誤 | 運行出現(xiàn)錯誤 |
4 | WARNING | 提醒 | 可能影響系統(tǒng)功能,需要提醒用戶的重要事件 |
5 | NOTICE | 注意 | 不會影響正常功能,但是需要注意的事件 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 調(diào)試 | 程序或系統(tǒng)調(diào)試信息等 |
- 軟件由它的配置文件所決定
- 決定它的服務方式、網(wǎng)絡地址、個性化功能等
- 是yum 或rpm安裝配置文件一般放在etc下
- 查看軟件的配置文件位置,用rpm -qc 軟件名? 去查看,一般以 .conf結尾的是配置文件
- 在改配置文件前一定要先備份
2、服務名稱
服務名稱 | 說明 |
---|---|
auth(LOG_AUTH) | 安全和認證相關消息 (不推薦使用authpriv替代) |
authpriv(LOG_AUTHPRIV) | 安全和認證相關消息(私有的) |
cron (LOG_CRON) | 系統(tǒng)定時任務cront和at產(chǎn)生的日志 |
daemon (LOG_DAEMON) | 與各個守護進程相關的曰志 |
ftp (LOG_FTP) | ftp守護進程產(chǎn)生的曰志 |
kern(LOG_KERN) | 內(nèi)核產(chǎn)生的曰志(不是用戶進程產(chǎn)生的) |
Iocal0-local7 (LOG_LOCAL 0-7) | 為本地使用預留的服務 |
lpr (LOG_LPR) | 打印產(chǎn)生的日志 |
mail (LOG_MAIL) | 郵件收發(fā)信息 |
news (LOG_NEWS) | 與新聞服務器相關的日志 |
syslog (LOG_SYSLOG) | 存syslogd服務產(chǎn)生的曰志信息(雖然服務名稱己經(jīng)改為reyslogd,但是很多配罝依然沿用了syslogd服務的,所以這里并沒有修改服務名稱) |
user (LOG_USER) | 用戶等級類別的日志信息 |
uucp (LOG_UUCP) | uucp子系統(tǒng)的日志信息,uucp是早期Linux系統(tǒng)進行數(shù)據(jù)傳遞的協(xié)議,后來也常用在新聞組服務中 |
3、rsyslog配置文件
/etc/rsyslog.conf?配置文件格式:由三部分組成
-
MODULES:相關模塊配置
-
GLOBAL DIRECTIVES:全局配置
-
RULES:日志記錄相關的規(guī)則配置
4、實際應用:
4.1 將ssh服務的日志單獨設置
原來ssh日志在/var/log/secure
將 ssh服務的日志文件獨立出來
[root@localhost ~]#tail -f /var/log/secure
#查看ssh服務的日志位置
[root@localhost ~]#vim /etc/ssh/sshd_config
#修改ssh配置文件,32下一行添加自己的自定義
32 #SyslogFacility AUTHPRIV
33 SyslogFacility LOCAL6
[root@localhost ~]#vim /etc/rsyslog.conf
#76 行添加自己的文件位置
local6.* /opt/ssh.log
[root@localhost log]#systemctl restart rsyslog.service sshd
#重啟服務
①進入ssh配置文件,將ssh配置成使用local6
②進入rsyslog配置文件,添加自己的文件位置
③重啟
④驗證,并查看本機日志記錄(實時查看tail -f /var/log/secure)
4.2 實例:通過網(wǎng)絡將本地的日志遠程備份到另一臺機器,網(wǎng)絡日志(遠程日志功能)
就算本機系統(tǒng)崩潰,我們可以查看另一臺機器備份的日志,來排查故障。
#開啟日志的遠程傳輸功能在192.168.80.112 10 臺左右的服務器
[root@localhost ~]#vim /etc/rsyslog.conf
#打開19 20 行 兩端都要開
19 #$ModLoad imtcp
20 #$InputTCPServerRun 514
[root@localhost ~]#ss -ntap |grep 514
#查看514端口是否打開
#在192.168.91.101 上設置發(fā)送到哪臺主機去
[root@centos7-2 ~]#vim /etc/rsyslog.conf
#修改配置文件
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages
#復制54行 改成ip地址
55 *.info;mail.none;authpriv.none;cron.none @@192.168.80.112
#兩個@ 代表使用 tcp 一個代表udp
如果修改 的是udp @192.168.80.112
如果要想指定端口 @192.168.80.112:端口號
[root@centos7-2 ~]#logger "this is test log from 192.168.80.114 22"
#測試,寫日志進去
①兩臺機器都關閉防火墻工具和selinux?
②分別打開兩個主機的配置文件,進行修改,及打開遠程傳輸功能?
③打開想要傳輸備份文件給其他主機的主機的配置文件,?設置他想發(fā)送到哪臺主機去
?④重啟,并查看端口號是否開啟?
?⑤寫一條日志進去,并查看文章來源:http://www.zghlxwxcb.cn/news/detail-780111.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-780111.html
到了這里,關于Linux文件系統(tǒng)與日志管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!