• 使用docker搭建ELK日志搜集系统(一)


    导读:本篇主要介绍ELF/EFK中Elasticsearch、Kibana的配置安装 

    ELK是什么?


     

    简单来说ELK 是一个开源的日志统一搜集,存储,管理,分析,展示的平台

    ELK架构


     

    # 主要组件包括:

    • ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部
    1. Elasticsearch 是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能
    2. Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式
    3. Kibana 是一个开源和免费的工具,可以为ElasticSearch提供日志分析友好Web界面
    4. Filebeat 可以理解成时一个轻量级的Logstash,因为相对来说Logstash资源消耗比较大(JVM内存),Filebeat可以把搜集的日志转发到Logstash
    5. fluented 是一个开源免费的日志搜集工具,经常代替Logstash(EFK),支持的插件非常多,对docker支持较好
    6. X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中

    参考:

    https://www.elastic.co/guide/index.html

    https://docs.fluentd.org/v1.0/articles/quickstart

    https://www.elastic.co/downloads/x-pack

    https://www.elastic.co/products/x-pack/open

    ELK/EFK的安装配置


     

    系统安装运行需求和建议:

    1. 一台独立的linux host centos 7.4,docker 18.06.1-ce+以上版本,docker swarm环境,

    2. 自定义Kibana服务器的域名:log.yujianbo.vip ,可以在hosts文件自定义指向对应的服务器

    3. 把ELK集群安装在一个独立的docker swarm环境中

    4. 安装The Elastic Stack 5.5.1版本

    安装步骤:

    1. 安装docker swarm环境

     简单docker swarm环境搭建步骤:https://www.cnblogs.com/yjb007/p/9551878.html

    2.修改docker宿主机的 vm.max_map_count 配置在 /etc/sysctl.conf

    vim /etc/sysctl.conf
    vm.max_map_count=262144
    grep vm.max_map_count /etc/sysctl.conf
    sysctl -w vm.max_map_count=262144

    3.安装Elasticsearch+X-Pack扩展包

    mkdir -p /soft/es/
    cd /soft/es/
    #下载x-pack-5.5.1.zip,x-pack-5.5.1.jar文件到当前目录,下载地址:https://pan.baidu.com/s/12x5vxYwJHAvd3AnFc1M4_A
    
    cat > Dockerfile << 'EOF'
    FROM elasticsearch:5.5.1
    
    COPY x-pack-5.5.1.zip /tmp/
    RUN elasticsearch-plugin install file:///tmp/x-pack-5.5.1.zip 
    COPY x-pack-5.5.1.jar /usr/share/elasticsearch/plugins/x-pack/x-pack-5.5.1.jar
    RUN chown root:root /usr/share/elasticsearch/plugins/x-pack/x-pack-5.5.1.jar && chmod 644 /usr/share/elasticsearch/plugins/x-pack/x-pack-5.5.1.jar
    RUN rm -rf /tmp/*
    EOF
    
    docker build --no-cache --pull -t elasticsearch/yujianbo:5.5.1 ./
    
    mkdir -p /srv/volume/elasticsearch/data
    docker service create 
        --name pilipa-inside-elasticsearch 
        --network my-network 
        --replicas 1 
        --publish "mode=host,published=9200,target=9200" 
        --mount type=bind,src=/srv/volume/elasticsearch/data,dst=/usr/share/elasticsearch/data 
        --env "cluster.name=docker-cluster" 
        --env ES_JAVA_OPTS="-Xms512m -Xmx512m" 
    elasticsearch/yujianbo:5.5.1

    安装完成后可以通过 curl -u elastic:changeme http://127.0.0.1:9200/_cat/health 访问elasticsearch

    默认账号密码:elastic/changeme

    4.安装Kibana+X-Pack扩展包

    mkdir -p /soft/kibana/
    cd /soft/kibana/
    #下载x-pack-5.5.1.zip文件到当前目录,下载地址:https://pan.baidu.com/s/12x5vxYwJHAvd3AnFc1M4_A
    
    cat > Dockerfile << 'EOF'
    FROM kibana:5.5.1
    
    COPY x-pack-5.5.1.zip /tmp/
    RUN kibana-plugin install file:///tmp/x-pack-5.5.1.zip 
    RUN rm -rf /tmp/*
    EOF
    
    docker build --no-cache --pull -t kibana/yujianbo:5.5.1 ./
    
    mkdir -p /srv/volume/kibana/
    cat > /srv/volume/kibana/kibana.yml << 'EOF'
    server.host: '0.0.0.0'
    elasticsearch.url: 'http://pilipa-inside-elasticsearch:9200'
    EOF
    
    
    docker service create 
    --name pilipa-inside-kibana 
    --network my-network 
    --replicas 1 
    --mount type=bind,src=/srv/volume/kibana/kibana.yml,dst=/etc/kibana/kibana.yml 
    --publish "mode=host,published=5601,target=5601" 
    kibana/yujianbo:5.5.1
    

     登陆http://log.yujianbo.vip:5601就可以在kibana页面了,默认账号密码:elastic/changeme

    5.更新X-PACK licence信息

    #在Dev Tools中输入下面的信息进行licence更新

    PUT _xpack/license
    {
        "license": {
            "uid": "568c8040-63fe-4fb7-81e4-f8fe94693ef9",
            "type": "platinum",
            "issue_date_in_millis": 1505174400000,
            "expiry_date_in_millis": 2536796799999,
            "max_nodes": 100,
            "issued_to": "jianbo yu (i-counting)",
            "issuer": "Web Form",
            "signature": "AAAAAwAAAA1H1ROSSTmyGk1iX87BAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQBxmqnrW+hya/tr/l/aHmLpUpwYMJ7NLCpzr2SRMbjNcJqZGQZYwqCn37MNtMQuNrYF3EJ41wDOKEf4MoOEg593iK+Q1Iih8n9eWhcKh0uHqa2hLu4aBE2cIBb7aedj7/JGMthQLbc5M7xgtcUG1O3n4q0plgm/teRuHxW+ray8tj/daNuXgUAIoFDrWfNmPnCjphLGjg9brzf7KauIYy7zCpcGO/QItIgaFgFV8tUuhwI3ns42O5MIjgUEmt1oG8ZGiqoJg6U/J7UN1/zRjzbyZSyzmGh9YI97sEvYgu72O7p6vMOoJoEVvnFgr4nlSUp6cQyovlnxKgxsab9BKzjV",
            "start_date_in_millis": 1505174400000
        }
    }

     6.在Management中创建只读kibana_read Role

     下一章介绍通过ELK/EFK搜集docker上容器的日志

    参考资料:

    https://www.docker.elastic.co/#

    大漠孤烟直 长河落日圆
  • 相关阅读:
    DELPHI SOKET 编程(使用TServerSocket和TClientSocket)
    DELPHI 任务栏无EXE显示
    Delphi 实现无窗口移动(详细使用WM_NCHITTEST和PtInRect API进行测试)
    ViewPager的简单使用
    delphi 网页提交按钮执行点击事件
    Delphi 获取网站验证码的图片
    Delphi 模拟网站验证码(酷,把随机文字写道图片上)
    张文木的文章都很不错,有空仔细看看
    深度RAMOS,把操作系统全部安装在内存上
    C# ASP.net 入门之简单通讯录
  • 原文地址:https://www.cnblogs.com/yjb007/p/9535330.html
Copyright © 2020-2023  润新知