美文网首页Elastic Search
使用Docker快速部署ELK日志分析及搜索服务

使用Docker快速部署ELK日志分析及搜索服务

作者: 1b5c72c98c24 | 来源:发表于2018-10-09 14:40 被阅读20次

    1. 安装docker

    2. 创建目录

    mkdir -p /home/elasticsearch
    

    3. 拉取ElasticSearch镜像并启动容器

    docker run -dit -p 9200:9200 -v /home/elasticsearch:/usr/share/elasticsearch/data --name=elasticsearch docker.io/elasticsearch
    

    4. 拉取Kibana镜像并启动容器

    docker run -dit -p 5601:5601 --name=kibana --link elasticsearch:elasticsearch docker.io/kibana
    

    5. 安装ElasticSearch Head

    5.1 Docker方式安装

    /*Elasticsearch 5.x 版本*/
    docker run -p 9100:9100 mobz/elasticsearch-head:5
    

    Note: 此方式可能需要解决跨域问题

    /*进入Es的容器,编辑Es配置文件,增加如下内容*/
    http.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    5.2 Chrome插件方式安装

    点击下载插件 或者在Chrome插件中心搜索ElesticSearch Head

    至此ElasticSearch和Kibana安装完成,可以进行基础搜索服务

    6. 安装Logstash

    6.1 创建配置文件

    cd /home
    
    vim logstash.conf
    
    /***输入一下内容***/
    input{
        beats{
            port => "5044"
        }
    }
    filter{
        if [type] == "nginxAccess"{
            json{
                source => "message"
                remove_field => ["message"]
            }
            mutate{
                gsub => ["request_uri", "\?.*" ,""]
                convert => ["body_bytes_sent","integer"]
            }
        }
    }
    output{
        elasticsearch{
            hosts => ["Es所在服务器IP"]
        }
    }
    /******============******/
    

    6.2 拉取Logstash镜像并启动容器

    docker pull docker.io/logstash
    
    docker run -itd -p 5044:5044 -v "$PWD":/config-dir logstash -f /config-dir/logstash.conf
    

    7. 在日志源主机上安装FileBeat

    7.1 安装

    curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.3-x86_64.rpm 
    
    sudo rpm -vi filebeat-5.6.3-x86_64.rpm
    
    

    7.2 配置

    vi /etc/filebeat/filebeat.yml
    
    /******============******/
    filebeat:
      prospectors:
        -
          paths:
            - /data/logs/nginx_access.log
          input_type: log
          document_type: nginxAccessDev2
        -
          paths:
            - /data/logs/nginx_error.log
          input_type: log
          document_type: nginxErrorDev2
    output:
      logstash:
        hosts: ["IP地址:5044"]
    /******============******/
    
    /***检测配置文件是否正确***/
    ./filebeat.sh -configtest -e
    
    /***重启filebeat服务***/
    /etc/init.d/filebeat restart
    

    至此ELK搭建完成,下面配置nginx的日志输出格式

    log_format main '{"remote_addr": "$remote_addr",'
                    '"remote_user": "$remote_user",'
                    '"body_bytes_sent": $body_bytes_sent,'
                    '"request_time": $request_time,'
                    '"status": "$status",'
                    '"request": "$request",'
                    '"uri":"$uri",'
                    '"request_filename":"$request_filename",'
                    '"document_uri":"$document_uri",'
                    '"request_method": "$request_method",'
                    '"http_referrer": "$http_referer",'
                    '"body_bytes_sent":"$body_bytes_sent",'
                    '"http_x_forwarded_for": "$http_x_forwarded_for",'
                    '"http_user_agent": "$http_user_agent",'
                    '"request_uri":"$request_uri"}';
    

    重启Nginx服务。可以到kibana控制台进行图形绘制。

    相关文章

      网友评论

        本文标题:使用Docker快速部署ELK日志分析及搜索服务

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