基于aws elastic search服务的日志服务搭建

0x00 TLDR;

本文记录了使用aws的es服务, 加上自建filebeat服务,最小成本实现日志收集和远程展示
内容包括:

  • es服务创建,及特性介绍
  • filebeat安装和配置
  • nginx 公网配置

0x01 Amazon OpenSearch Service 服务

Amazon OpenSearch Service就是之前我们熟知的 elastic search服务, 服务创建时,使用的关键配置信息:

域访问策略: 允许对域进行公开访问
加密: 对所有数据都不进行加密

服务创建完成后, 我们会得到两个有用链接:

  • es服务链接: https://xxx.eu-central-1.es.amazonaws.com
  • kibana服务链接: https://xxx.eu-central-1.es.amazonaws.com/_plugin/kibana

需要注意的地方: 我们一般使用的es服务端口为9200, 这里使用的是443.
同时, 这两个链接, 只支持VPC内网访问, 对于kibana的远程访问, 在文末有提及.

0x02 filebeat 安装和配置

这里为了使用简单, 我们并未使用 logstash,kafka.

在第一步安装的时候, 从console网页上, 可以知道当前es的使用版本(7.10)
接下来, 我们可以在自己的ec2节点上,安装filebeat服务.

由于aws一般都使用的是开源版本(OSS)的服务, 所以,我们这里使用的下载链接为:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.10.2-x86_64.rpm

然后, 使用 rpm -ivh *.rpm 完成安装.

重点来了, 我们在配置filebeat有以下几个关键点:

  • 禁用x_pack校验(开源版用不到这个)
  • 自定义 es的index名称
  • 使用 json格式上报日志

配置文件如下: /etc/filebeat/filebeat.yml

#logging.level: info
#logging.to_files: true

filebeat.inputs:
- type: log
  enabled: true
  paths:
   # 递归目录日志
    - /logpath/**/*.log
  json.keys_under_root: true
  json.overwrite_keys: true
  json.add_error_key: true

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false

setup.template.settings:
  index.number_of_shards: 1

output.elasticsearch:
  # 留意行尾的 443 ,不写的话, 会解析成 9200
  hosts: ["https://xxxx.eu-central-1.es.amazonaws.com:443"]
  index: "mylog-%{+yyyy-MM-dd}"

setup.template.name: "mylog"
setup.template.pattern: "mylog-"

processors:
  - drop_fields:
      fields: ["input","agent","ecs","log"]

# 禁用 x_pack校验
setup.ilm.enabled: false

完成配置后, 启动服务: service filebeat start

0x03 公网访问kibana

由于默认的kibana服务只能VPC内部访问, 不方便我们实际的开发需求.
这里可以通过一个nginx反向代理请求, 实现远程访问. 当然, 对IP:PORT的白名单设置比较简单, 这里不表.

直接上配置:


server {
        listen 99;
        server_name _;
        access_log off;
        location / {
                proxy_set_header   X-Real-IP $remote_addr;
                proxy_set_header   Host      $http_host;
                proxy_pass         https://xxx.eu-central-1.es.amazonaws.com;
                proxy_set_header Authorization "";
                proxy_hide_header Authorization;
        }
}

重启nginx后, 就可以通过下面的链接访问 kibana:

http://you_public_ip:99/_plugin/kibana

完~

你可能感兴趣的:(基于aws elastic search服务的日志服务搭建)