Linux 有一個顯著的特點,在正常情況下,你可以通過日志分析系統日志來了解你的系統中發生了什么,或正在發生什么。的確,系統日志是系統管理員在解決系統和應用問題時最需要的第一手資源。我們將在這篇文章中著重講解 Apache HTTP web server 生成的 Apache access 日志。
這次,我們會通過另類的途徑來分析 Apache access 日志,我們使用的工具是 asql。asql 是一個開源的工具,它能夠允許使用者使用 SQL 語句來查詢日志,從而通過更加友好的格式展現相同的信息。
Apache 日志背景知識
Apache 有兩種日志:
雖然管理員可以通過配置 Apache 的配置文件來自定義 Apache access log 的詳細程度,不過在這篇文章中,我們會使用默認的配置,如下:
因此一個典型的 Apache 日志條目就是下面這個樣子:
但是 Apache error log 又是怎么樣的呢?因為 error log 條目主要記錄 access log 中特殊的請求(你可以自定義),所以你可以通過 access log 來獲得關于錯誤情況的更多信息(example 5 有更多細節)。
此外要提前說明的, access log 是系統級別的日志文件。要分析虛擬主機的日志文件,你需要檢查它們相應的配置文件(例如: 在 /etc/apache2/sites-available/[virtual host name] 里(Debian))。
在 Linux 上安裝 asql
asql 由 Perl 編寫,而且需求以下兩個 Perl 模塊:SQLite 的 DBI 驅動以及 GNU readline。
在 Debian, Ubuntu 以及其衍生發行版上安裝 asql
使用基于 Debian 發行版上的 aptitude,asql 以及其依賴會被自動安裝。
- # aptitude install asql
新聞熱點
疑難解答