当您需要查看并分析Apache日志数据时,可以使用Filebeat采集日志数据,并通过阿里云Logstash过滤采集后的日志数据,最终传输到Elasticsearch中进行分析。本文介绍如何通过Filebeat采集Apache日志数据。
前提条件
- 创建阿里云Elasticsearch实例和Logstash实例,两者版本相同,并且在同一专有网络VPC(Virtual Private Cloud)下。
具体操作,请参见创建阿里云Elasticsearch实例和创建阿里云Logstash实例。
- 开启阿里云Elasticsearch实例的自动创建索引功能。
出于安全考虑,阿里云Elasticsearch默认不允许自动创建索引。但是Beats目前依赖该功能,因此如果采集器Output选择为Elasticsearch,需要开启自动创建索引功能。具体操作,请参见快速访问与配置。
- 创建阿里云ECS实例,并且该ECS实例与阿里云Elasticsearch实例和Logstash实例处于同一VPC下。
具体操作,请参见使用向导创建实例。
注意 Beats目前仅支持Aliyun Linux、RedHat和CentOS这三种操作系统。 - 在ECS实例上搭建Httpd服务。
为了便于通过可视化工具分析展示日志,建议在httpd.conf中将Apache日志格式定义为JSON格式,详情请参见步骤一:安装并配置Apache。本文的测试环境配置如下。
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服务。