最近更新时间:2022-05-30 16:37:52
本文通过介绍如何使用Filebeat采集云主机KEC的Nginx日志数据为例,说明如何实现数据实时采集。当前除了兼容开源Filebeat采集外、SDK采集、还支持API方式实时推送数据。
在华北1(北京)已创建云服务器实例,且服务器上有待采集的日志数据。
klog-filebeat
可以点击此处下载。wget "https://ks3-cn-beijing.ksyun.com/klog/filebeat/klog-filebeat.latest.tar.gz"
tar xvf klog-filebeat.latest.tar.gz
接下来以采集/var/log/nginx/access.log日志文件为例,配置数据采集任务。 日志示例如下:
10.168.255.134 [01/Sep/2016:11:04:48 +0800] "GET /account/fund/fundDetail.html?1472699086917 HTTP/1.1" - 200 3777 "https://wenjinbao.winfae.com/account/myAccount.html" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.108 Safari/537.36 2345Explorer/7.1.0.12633" 0.000 115.226.250.21
字段格式定义如下:
log_format main '$remote_addr [$time_local] "$request" '
'$request_body $status $body_bytes_sent "$http_referer" "$http_user_agent" '
'$request_time $http_x_forwarded_for';
klog-filebeat需要2个配置文件,分别是filebeat.yml
和credential.ini
,这两个配置文件均在klog-filebeat压缩包中,解压后即可看到。
这个配置文件的内容是您的金山云access_key
和secret_key
。内容示例:
[klog]
access_key = AKLT6-bcdesfg-ajsIjfiejI9
secret_key = Jf2390j9E9finfiDIOFJFD8483+dfsDVdOCTFazCnDEAw+mxA/7Lfeh3ugErwoKKb5wNOIei==
这个是主配置文件,内容示例如下:
filebeat.inputs:
- type: log
enabled: true
paths:
# 需要采集的日志文件
- /var/log/nginx/access.log
output.klog:
endpoint: https://klog-cn-beijing.ksyun.com
credential:
path: credential.ini
check_interval: 60
targets:
- project_name: project_demo
pool_name: project_demo
fields:
- key: message
skip_root: true
- key: grok
skip_root: true
processors:
#grok处理器可以把普通文本日志解析为json对象。
#由于grok是基于正则表达式的,所以开启该选项会增加filebeat的资源消耗。
- grok:
# 解析哪个字段
source_field: message
# 解析结果保存到哪个字段
target_field: grok
# 用于解析的表达式
pattern: "%{IPORHOST:clientip} \[%{HTTPDATE:time}\] \"%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}\" \- %{NUMBER:http_status_code} %{NUMBER:bytes} \"(?<http_referer>\S+)\" \"(?<http_user_agent>(\S+\s+)*\S+)\" (%{BASE16FLOAT:request_time}) (%{IPORHOST:http_x_forwarded_for}|-)"
关于output.klog
的详细配置说明可参考klog-filebeat。其余详细配置可参考filebeat官方文档。
注意:在输出到klog的情况下,
filebeat
的modules
功能无法使用。
执行如下命令,启动klog-filebeat。启动后,会在指定的日志池中看到写入的日志数据。
./filebeat -e
纯净模式
鼠标选中内容,快速反馈问题