網站首頁 編程語言 正文
持久化日志
默認情況下,Red Hat Enterprise Linux 7將系統日志存儲在/run/log/journal中,該日志存儲在tmpfs(臨時文件系統)上。這意味著在重新啟動時,所有存儲的信息都將丟失。如果目錄/var/log/journal存在,日志將存儲在那里,從而在重新引導后啟用持久日志。
可以通過使用以下步驟來啟用持久性日志:
mkdir/var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
通過向systemd-journald發送USR1信號,通知它應該使用新位置。當然你也是可以重啟的:
killall -USR1 systemd-journald
實戰練習:收集信息
在本實驗中,我們呢將使用日志文件來排除web服務器的故障。
您的服務器一臺機器正在運行一個web服務器,為文件servera.lab.example.com/test.html.提供服務。您的測試經理剛剛發來一張通知,告知您不能從web瀏覽器訪問該文件。通知中沒有給出進一步的信息。
使用servera上的日志文件調查此問題,然后解決此問題。
為了重現這個問題,你可以在火狐上瀏覽這是個網頁,也可以執行下面的命令:
elinks -dump http://servera.lab.example.com/test.html
我們遇到HTTP 403的問題。這可能有很多原因:文件權限、Linux類型、內部httpd配置等。
你知道web服務器本身正在運行,并且防火墻是打開的。
我們去servera服務器上看看日志呀:
那我們就應該知道,在服務器上的httpd的日志大多數是存儲在:
/var/log/httpd/access_log for all access attempts
/var/log/httpd/error_log for all errors.
1.首先我們在 /var/log/httpd/access_log這個地方查詢關于test.html的任何消息。
grep test.html /var/log/httpd/access_log
這個輸出中的403是HTTP狀態代碼。除此之外,可以看到請求的URL、請求的日期和時間,以及使用的用戶代理,但是沒有任何東西可以進一步幫助解決這個問題。
2.繼續檢查 /var/log/httpd/error_log
tail /var/log/httpd/error_log
這條消息告訴您httpd被文件權限阻止讀取test.html文件。這排除了httpd的內部配置錯誤,所以文件權限和SELinux是可能的原因。
- 檢查/var/www/html/test.html上的文件權限,并在必要時進行修復。
[root@servera ~]# ls -l /var/www/html/test.html
第一組rw-: 表示這個文件的擁有者對它的權限:可讀可寫
第二組---: 表示這個文件的所屬組對它的權限
第三組---: 表示這個文件的其他用戶(相對于上面兩類用戶)對它的權限
我們可以看到這個權限是不太對的。
chmod 644 /var/www/html/test.html
我們讓所有用戶有可讀權限。
我們使用Firefox或elinks再次測試對文件的訪問,發現還是沒有解決這個問題,那么說明文件權限問題不是全部問題。
那么就要去看看SElinux了:
SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現,是 Linux歷史上最杰出的新安全子系統。NSA是在Linux社區的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,進程只能訪問那些在他的任務中所需要文件。
- 檢查SELinux日志,查看今天發生的任何拒絕,并修復您可能發現的任何問題。
查看selinux今天是否有拒絕:
ausearch -i -m avc -ts today
這表明test.html文件具有tmp_t的SELinux類型,所以httpd不允許打開它
通過在上運行遞歸restorecon修復此問題 /var/www
[root@servera ~]# restorecon -Rv /var/www
此時我們再次運行那個網頁就發現OK了。
原文鏈接:https://juejin.cn/post/7165420573583999006
相關推薦
- 2023-07-05 Maven的-pl -am -amd參數
- 2022-01-17 報錯:是否需要更改目標庫?請嘗試將lib編譯器選項更改為es2015或更高版本
- 2024-01-09 idea如何設置自動換行
- 2022-06-14 ASP.NET?Core?MVC中的標簽助手(TagHelper)用法_實用技巧
- 2023-02-10 python中以函數作為參數(回調函數)的實現方法_python
- 2022-06-06 基于VSTS的Xamarin.Android持續集成步驟詳解_Android
- 2022-11-08 Fluentd搭建日志收集服務_服務器其它
- 2022-07-12 Hive獲取當天0點時間,條件查詢某一天數據
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支