使用Rsyslog記錄Apache日誌
原文:
http://blog.sina.com.cn/s/blog_7f2122c501013d2d.html
把各種應用程式通過syslogd的機制,動態把重要日誌寫入遠端日誌伺服器,優勢是很明顯的,主要表現在幾個方面: 1 日誌統一,集中式管理 2 日誌實時傳送到一個更加安全的遠端伺服器上,真正記錄使用者行為,使日誌的2次更改可能性大大降低,從而能夠對日誌進行真實回放,便於問題追蹤。
事實上,大部分的programe的日誌記錄總是使用標準的unix domain socket(/dev/log)來實現。這就使的和syslogd聯合,並且利用syslogd的遠端傳送日誌功能實現更加安全的遠距離日誌備份需求。
本文主要描述把apache,squid日誌寫通過syslog寫入遠端日誌伺服器的配置過程。有興趣的同學可以看看。
本文所涉及的軟體環境:
客戶端:
Syslog:rsyslog-relp-3.21.3-4.fc10
rsyslog-3.21.3-4.fc10
Programe:httpd-2.2.9-1.fc8
squid-2.6.STABLE22-3941.8.fc8
伺服器端:
Syslog:rsyslog-relp-3.21.3-4.fc10
rsyslog-3.21.3-4.fc10
日誌系統架構圖:
apache,squid和syslog的聯動配置簡介
這裡主要描述本地客戶端的配置內容:
1 首先是配置apache檔案,只顯示文章話題相關的配置內容:
###/etc/http/conf/httpd.conf
#ErrorLog logs/error_log
ErrorLog syslog <—–修改配置表示對errorlog啟用syslog
#LogLevel warn
LogLevel notice <—–notice以上的log全部記錄,預設的facility是
local7
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
LogFormat “%h %l %u %t “%r” %>s %b” common
LogFormat “%{Referer}i -> %U” referer
LogFormat “%{User-agent}i” agent
#CustomLog logs/access_log combined
CustomLog “|/usr/bin/logger -p local4.info” combined <—–access_log全部通過管道寫入syslog,並且log的facility配置為local4。
rsyslog的配置如下:
# Load output RELP module
$ModLoad omrelp <—由於採用的是relp協議傳送給遠端日誌伺服器,所以需要匯入omrelp模組
# Don`t log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local4.none;local7.none /var/log/messages <–local4 以及local7日誌不寫入 /var/log/message,有後面專門的寫入檔案
# Save local7 to a file
local7.* /var/log/apache_error_log
# Save local4 to a file
local4.* /var/log/apache_access_log
# Send local7 to remote syslog
local7.* :omrelp:syslog.chou.com:2514
<—-local7(也就是apache的error_log)除了本地儲存一份之外,還通過relp協議送給遠端的伺服器syslog.chou.com,遠端伺服器的偵聽埠是2514
# Send authentification messages to remote syslog
auth,authpriv.* :omrelp:syslog.chou.com:2514
<—伺服器的認證資訊,屬於重要的安全資訊,通過relp協議送給遠端的伺服器syslog.chou.com,遠端伺服器的偵聽埠是2514
重啟rsyslog和apache之後,正常情況下應該在遠端很本地伺服器上看到如下資訊:
[root@remote_machine root]# tail -f /var/log/apache_error_log
Oct 6 20:30:53 xxx.xxx httpd[1837]: [notice] Digest: generating secret for digest authentication …
Oct 6 20:30:53 xxx.xxx httpd[1837]: [notice] Digest: done
Oct 6 20:30:54 xxx.xxx httpd[1837]: [notice] Apache/2.2.9 (Unix) DAV/2
PHP/5.2.3 configured — resuming normal operations
[root@localhost root]# tail -f /var/log/apache_error_log
Oct 6 20:30:53 localhost httpd[1837]: [notice] Digest: generating secret for digest authentication …
Oct 6 20:30:53 localhost httpd[1837]: [notice] Digest: done
Oct 6 20:30:54 localhost httpd[1837]: [notice] Apache/2.2.9 (Unix) DAV/2
PHP/5.2.3 configured — resuming normal operation
2 關於squid的客戶端伺服器配置如下
####/etc/squid/squid.conf的追加配置如下
access_log syslog:local7.* squid <—配置squid的訪問日誌啟用syslog,並且定義facility為local7,輸出所有級別日誌
rsyslog的配置內容是:(etc/rsyslog.conf)
# Load output RELP module
$ModLoad omrelp <—由於採用的是relp協議傳送給遠端日誌伺服器,所以需要匯入omrelp模組
# Don`t log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;local7.none /var/log/messages <–local7日誌不寫入 /var/log/message,有後面專門的寫入檔案
# Save local7 to a file
local7.* /var/log/squid_access_log
# Send local7 to remote syslog
local7.* :omrelp:syslog.chou.com:2514
<—-local7(也就是apache的error_log)除了本地儲存一份之外,還通過relp協議送給遠端的伺服器syslog.chou.com,遠端伺服器的偵聽埠是2514
# Send authentification messages to remote syslog
auth,authpriv.* :omrelp:syslog.chou.com:2514
<—伺服器的認證資訊,屬於重要的安全資訊,通過relp協議送給遠端的伺服器syslog.chou.com,遠端伺服器的偵聽埠是2514
參考:http://wiki.rsyslog.com/index.php/Working_Apache_and_Rsyslog_configuration
*.warn;authpriv.notice;auth.notice @@192.168.18.5 #@@TCP/@UDP
致命級(KERN_EMESG),
警戒級(KERN_ALERT),
臨界級(KERN_CRIT),
錯誤級(KERN_ERR),
告警級(KERN_WARN),
注意級(KERN_NOTICE),
通知級(KERN_INFO),
除錯級(KERN_DEBUG).
本文轉自 nonono11 51CTO部落格,原文連結:http://blog.51cto.com/abian/1091743,如需轉載請自行聯絡原作者
相關文章
- Linux下rsyslog日誌收集服務環境部署記錄Linux
- rsyslog日誌總結
- Rsyslog日誌系統
- Apache 記錄請求響應時間日誌Apache
- Linux 實現rsyslog日誌裡面的IP地址記錄 未測試Linux
- 記錄騰訊雲使用日誌
- ELK日誌系統之使用Rsyslog快速方便的收集Nginx日誌Nginx
- php日誌,記錄日誌PHP
- linux_scritp_apache日誌中IP地址記錄LinuxApache
- 使用Redis記錄系統日誌Redis
- 使用 .NET Core 的日誌記錄
- 日誌記錄器
- .NET Core使用Nlog記錄日誌
- 使用CDN之後APACHE日誌記錄中IP地址不正確的解決方案Apache
- 日誌分析-apache日誌分析Apache
- Swoft AOP 記錄使用者操作日誌
- Laravel sql 日誌記錄LaravelSQL
- secureCRT記錄操作日誌Securecrt
- 記錄日誌檔案
- PHP日誌記錄方法PHP
- oracle日誌操作記錄Oracle
- 使apache的日誌檔案裡不記錄圖片檔案Apache
- 使用rsyslog+loganalzey收集日誌顯示客戶端ip客戶端
- RHEL 6.5 搭建Rsyslog日誌伺服器和Loganalyzer日誌分析工具伺服器
- 日誌記錄 PHP下往linux目錄下寫日誌PHPLinux
- Gin 框架 - 使用 logrus 進行日誌記錄框架
- golang常用庫:日誌記錄庫-logrus使用Golang
- 使用Log4j進行日誌記錄
- .Net Core中使用DiagnosticSource進行日誌記錄
- Oracle補充日誌及日誌記錄規則Oracle
- db2不記錄日誌插入記錄DB2
- 記錄 | 實習日誌 9
- mysql開啟日誌記錄MySql
- 記錄 sql 查詢日誌SQL
- SecureCRT自動記錄日誌Securecrt
- Appfuse:記錄操作日誌APP
- storm 問題日誌記錄ORM
- 第11章 日誌記錄