網(wǎng)站首頁 編程語言 正文
持久化日志
默認(rèn)情況下,Red Hat Enterprise Linux 7將系統(tǒng)日志存儲在/run/log/journal中,該日志存儲在tmpfs(臨時(shí)文件系統(tǒng))上。這意味著在重新啟動時(shí),所有存儲的信息都將丟失。如果目錄/var/log/journal存在,日志將存儲在那里,從而在重新引導(dǎo)后啟用持久日志。
可以通過使用以下步驟來啟用持久性日志:
mkdir/var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
通過向systemd-journald發(fā)送USR1信號,通知它應(yīng)該使用新位置。當(dāng)然你也是可以重啟的:
killall -USR1 systemd-journald
實(shí)戰(zhàn)練習(xí):收集信息
在本實(shí)驗(yàn)中,我們呢將使用日志文件來排除web服務(wù)器的故障。
您的服務(wù)器一臺機(jī)器正在運(yùn)行一個(gè)web服務(wù)器,為文件servera.lab.example.com/test.html.提供服務(wù)。您的測試經(jīng)理剛剛發(fā)來一張通知,告知您不能從web瀏覽器訪問該文件。通知中沒有給出進(jìn)一步的信息。
使用servera上的日志文件調(diào)查此問題,然后解決此問題。
為了重現(xiàn)這個(gè)問題,你可以在火狐上瀏覽這是個(gè)網(wǎng)頁,也可以執(zhí)行下面的命令:
elinks -dump http://servera.lab.example.com/test.html
我們遇到HTTP 403的問題。這可能有很多原因:文件權(quán)限、Linux類型、內(nèi)部httpd配置等。
你知道web服務(wù)器本身正在運(yùn)行,并且防火墻是打開的。
我們?nèi)ervera服務(wù)器上看看日志呀:
那我們就應(yīng)該知道,在服務(wù)器上的httpd的日志大多數(shù)是存儲在:
/var/log/httpd/access_log for all access attempts
/var/log/httpd/error_log for all errors.
1.首先我們在 /var/log/httpd/access_log這個(gè)地方查詢關(guān)于test.html的任何消息。
grep test.html /var/log/httpd/access_log
這個(gè)輸出中的403是HTTP狀態(tài)代碼。除此之外,可以看到請求的URL、請求的日期和時(shí)間,以及使用的用戶代理,但是沒有任何東西可以進(jìn)一步幫助解決這個(gè)問題。
2.繼續(xù)檢查 /var/log/httpd/error_log
tail /var/log/httpd/error_log
這條消息告訴您httpd被文件權(quán)限阻止讀取test.html文件。這排除了httpd的內(nèi)部配置錯誤,所以文件權(quán)限和SELinux是可能的原因。
- 檢查/var/www/html/test.html上的文件權(quán)限,并在必要時(shí)進(jìn)行修復(fù)。
[root@servera ~]# ls -l /var/www/html/test.html
第一組rw-: 表示這個(gè)文件的擁有者對它的權(quán)限:可讀可寫
第二組---: 表示這個(gè)文件的所屬組對它的權(quán)限
第三組---: 表示這個(gè)文件的其他用戶(相對于上面兩類用戶)對它的權(quán)限
我們可以看到這個(gè)權(quán)限是不太對的。
chmod 644 /var/www/html/test.html
我們讓所有用戶有可讀權(quán)限。
我們使用Firefox或elinks再次測試對文件的訪問,發(fā)現(xiàn)還是沒有解決這個(gè)問題,那么說明文件權(quán)限問題不是全部問題。
那么就要去看看SElinux了:
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強(qiáng)制訪問控制的實(shí)現(xiàn),是 Linux歷史上最杰出的新安全子系統(tǒng)。NSA是在Linux社區(qū)的幫助下開發(fā)了一種訪問控制體系,在這種訪問控制體系的限制下,進(jìn)程只能訪問那些在他的任務(wù)中所需要文件。
- 檢查SELinux日志,查看今天發(fā)生的任何拒絕,并修復(fù)您可能發(fā)現(xiàn)的任何問題。
查看selinux今天是否有拒絕:
ausearch -i -m avc -ts today
這表明test.html文件具有tmp_t的SELinux類型,所以httpd不允許打開它
通過在上運(yùn)行遞歸restorecon修復(fù)此問題 /var/www
[root@servera ~]# restorecon -Rv /var/www
此時(shí)我們再次運(yùn)行那個(gè)網(wǎng)頁就發(fā)現(xiàn)OK了。
原文鏈接:https://juejin.cn/post/7165420573583999006
相關(guān)推薦
- 2022-05-16 C#實(shí)現(xiàn)的4種常用數(shù)據(jù)校驗(yàn)方法小結(jié)(CRC校驗(yàn),LRC校驗(yàn),BCC校驗(yàn),累加和校驗(yàn))_C#教程
- 2022-02-14 flutter封裝自定義打印信息
- 2022-02-22 Android對話框AlertDialog詳解_Android
- 2024-01-27 Apache POI 及 alibaba EasyExcel使用
- 2022-07-08 Qt5?串口類QSerialPort的實(shí)現(xiàn)_C 語言
- 2022-12-22 C/C++?活動預(yù)處理器詳解_C 語言
- 2022-10-05 Python實(shí)現(xiàn)打印彩色字符串的方法詳解_python
- 2022-04-27 Python中的元組(Tuple)操作實(shí)例詳解_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支