通過Filebeat采集Apache日志數(shù)據(jù)
當您需要查看并分析Apache日志數(shù)據(jù)時,可以使用Filebeat采集日志數(shù)據(jù),并通過阿里云Logstash過濾采集后的日志數(shù)據(jù),最終傳輸?shù)紼lasticsearch中進行分析。本文介紹如何通過Filebeat采集Apache日志數(shù)據(jù)。
操作流程
步驟一:準備工作
創(chuàng)建阿里云Elasticsearch實例和Logstash實例,兩者版本相同,并且在同一專有網(wǎng)絡(luò)VPC(Virtual Private Cloud)下。
開啟阿里云Elasticsearch實例的自動創(chuàng)建索引功能。
出于安全考慮,阿里云Elasticsearch默認不允許自動創(chuàng)建索引。但是Beats目前依賴該功能,因此如果采集器Output選擇為Elasticsearch,需要開啟自動創(chuàng)建索引功能。具體操作,請參見配置YML參數(shù)。
創(chuàng)建阿里云ECS實例,并且該ECS實例與阿里云Elasticsearch實例和Logstash實例處于同一VPC下。
具體操作,請參見自定義購買實例。
重要Beats目前僅支持Alibaba Cloud Linux、RedHat和CentOS三種操作系統(tǒng)。
阿里云Filebeat僅支持采集與阿里云Elasticsearch或Logstash同地域同VPC下ECS服務(wù)器的日志,不支持采集公網(wǎng)環(huán)境下的日志。
在ECS實例上搭建Httpd服務(wù)。
為了便于通過可視化工具分析展示日志,建議在httpd.conf中將Apache日志格式定義為JSON格式,詳情請參見步驟一:安裝并配置Apache。本文的測試環(huán)境配置如下。
LogFormat "{\"@timestamp\":\"%{%Y-%m-%dT%H:%M:%S%z}t\",\"client_ip\":\"%{X-Forwa rded-For}i\",\"direct_ip\": \"%a\",\"request_time\":%T,\"status\":%>s,\"url\":\"%U%q\",\"method\":\"%m\",\"http_host\":\"%{Host}i\",\"server_ip\":\"%A\",\"http_referer\":\"%{Referer}i\",\"http_user_agent\":\"%{User-agent}i\",\"body_bytes_sent\":\"%B\",\"total_bytes_sent\":\"%O\"}" access_log_json # 注銷原有CustomLog修改為CustomLog "logs/access_log" access_log_json
在目標ECS實例上安裝云助手和Docker服務(wù)。
具體操作,請參見安裝云助手Agent和安裝Docker并使用(Linux)。
步驟二:配置并安裝Filebeat采集器
- 登錄阿里云Elasticsearch控制臺。
- 進入Beats數(shù)據(jù)采集中心。
- 在頂部菜單欄處,選擇地域。
- 在左側(cè)導航欄,單擊Beats數(shù)據(jù)采集中心。
- 可選:首次進入Beats數(shù)據(jù)采集中心頁面,需要在服務(wù)授權(quán)對話框中查看提示信息,無誤后單擊確認,授權(quán)系統(tǒng)創(chuàng)建服務(wù)關(guān)聯(lián)角色。說明 Beats采集不同數(shù)據(jù)源中的數(shù)據(jù)時,依賴于服務(wù)關(guān)聯(lián)角色以及角色規(guī)則。使用過程中請勿刪除服務(wù)關(guān)聯(lián)角色,否則會影響B(tài)eats使用。詳細信息,請參見阿里云ES服務(wù)關(guān)聯(lián)角色。
在創(chuàng)建采集器區(qū)域,將鼠標移至Filebeat上,單擊ECS日志。
配置并安裝采集器。
具體操作,請參見采集ECS服務(wù)日志和采集器YML配置,本文使用的配置如下。
說明采集器Output需要指定目標阿里云Logstash的實例ID,在YML配置中不需要重新指定Output。
Filebeat文件目錄需要填寫數(shù)據(jù)源所在的目錄,同時需要在YML配置中開啟log數(shù)據(jù)采集,并配置log路徑。
單擊下一步。
在采集器安裝配置向?qū)е?,選擇安裝采集器的ECS實例。
說明選擇準備工作中創(chuàng)建和配置的ECS實例。
啟動采集器并查看采集器安裝情況。
單擊啟動。
啟動成功后,系統(tǒng)彈出啟動成功對話框。
單擊前往采集中心查看,返回Beats數(shù)據(jù)采集中心頁面,在采集器管理區(qū)域中,查看啟動成功的Filebeat采集器。
等待采集器狀態(tài)變?yōu)?b data-tag="uicontrol" id="uicontrol-7mq-ifw-ka5" class="uicontrol">已生效1/1后,單擊右側(cè)操作列下的查看運行實例。
在查看運行實例頁面,查看采集器安裝情況,當顯示為心跳正常時,說明采集器安裝成功。
步驟三:配置Logstash管道過濾并同步數(shù)據(jù)
在阿里云Elasticsearch控制臺的左側(cè)導航欄,單擊Logstash實例。
單擊目標Logstash實例右側(cè)操作列下的管道管理。
在管道管理頁面,單擊創(chuàng)建管道。
配置管道。
參考如下示例配置管道,詳細配置方法請參見通過配置文件管理管道。
input { beats { port => 8000 } } filter { json { source => "message" remove_field => "@version" remove_field => "prospector" remove_field => "beat" remove_field => "source" remove_field => "input" remove_field => "offset" remove_field => "fields" remove_field => "host" remove_field => "message" } } output { elasticsearch { hosts => ["http://es-cn-mp91cbxsm00******.elasticsearch.aliyuncs.com:9200"] user => "elastic" password => "<your_password>" index => "<your_index>" } }
參數(shù)
說明
input
接收Beats采集的數(shù)據(jù)。
filter
過濾采集的數(shù)據(jù)。通過JSON插件進行message數(shù)據(jù)解碼,使用remove_field刪除指定字段。
說明本文中的filter配置只適用于當前測試場景,不適用于所有的業(yè)務(wù)場景。請根據(jù)自身業(yè)務(wù)場景修改filter配置,關(guān)于filter支持的插件及每個插件的使用說明,請參見filter plugin。
output
將數(shù)據(jù)傳輸至阿里云Elasticsearch實例中。參數(shù)說明如下:
hosts:替換為您阿里云Elasticsearch實例的訪問地址,可在實例的基本信息頁面獲取,詳細信息請參見查看實例的基本信息。
<your_password>:替換為您阿里云Elasticsearch實例的訪問密碼。
<your_index>:替換為您定義的索引名稱。
步驟四:查看數(shù)據(jù)采集結(jié)果
- 登錄目標阿里云Elasticsearch實例的Kibana控制臺,根據(jù)頁面提示進入Kibana主頁。登錄Kibana控制臺的具體操作,請參見登錄Kibana控制臺。說明 本文以阿里云Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請以實際界面為準。
- 在左側(cè)導航欄,單擊Dev Tools。
在Console中,執(zhí)行如下命令查看采集成功的數(shù)據(jù)。
GET <your_index>/_search
說明<your_index>需要替換為在配置阿里云Logstash實例的管道時,output中所定義的索引名稱。
在左側(cè)導航欄,單擊Discover,選擇一段時間,查看采集的數(shù)據(jù)詳情。
說明在查詢前,請確保您已經(jīng)創(chuàng)建了<your_index>的索引模式。否則需要在Kibana控制臺中,單擊Management,再選擇Kibana區(qū)域中的 ,按照提示創(chuàng)建索引模式。