美文网首页k8s/istio
基于aws elastic search服务的日志服务搭建

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

作者: 国服最坑开发 | 来源:发表于2021-09-13 18:04 被阅读0次

    0x00 TLDR;

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

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

    0x01 Amazon OpenSearch Service 服务

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

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

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

    需要注意的地方: 我们一般使用的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服务的日志服务搭建

        本文链接:https://www.haomeiwen.com/subject/kvmfgltx.html