使用ELK Stack分析Apache日志的核心步驟如下:
在Apache配置文件(如httpd.conf
)中,使用LogFormat
指令定義結構化日志格式,推薦使用combined
格式或JSON格式,便于后續解析。
示例(combined
格式):
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog "/var/log/apache2/access.log" combined
elasticsearch.yml
(如設置集群名稱、節點IP)。logstash.conf
文件。kibana.yml
連接Elasticsearch。在logstash.conf
中定義輸入、過濾和輸出規則:
input { file { path => "/var/log/apache2/access.log" } }
。grok
插件解析日志字段(如IP、請求方法、狀態碼),匹配COMBINEDAPACHELOG
模式。filter {
grok { match => { "message" => "%{COMBINEDAPACHELOG}" } }
date { match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] }
geoip { source => "clientip" } # 可選:解析地理位置
}
apache-access-%{+YYYY.MM.dd}
)。apache-access-*
),定義時間字段(@timestamp
)。pipeline.workers
和bulk_max_size
參數,提升處理吞吐量。[1,2,3,5,6,7,8,9,10,11]