zoukankan      html  css  js  c++  java
  • Docker部署ELK 日志归集

    ELK

    ELK是Elasticsearch、Logstash、Kibana的缩写,使用ELK的原因是因为公司使用Spring cloud部署了多个微服务,不同的微服务有不同的日志文件,当生产上出现问题是不能及时排查,所以使用Logstash手机日志,Elasticsearch实现全文检索,Kibana作为显示与分析。
    当然同样优秀的还有graylog但是都是基于Elasticsearch,所以这里选用ELK

    修改服务器配置

    #因为对内存有要求所以
    vim /etc/sysctl.conf
    # 添加下面配置
    vm.max_map_count=655360
    # 编辑完,使命令生效
    sysctl -p
    
    # 编辑文件
    vi /etc/security/limits.conf
    # 修改并加入下面配置
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    

    Elasticsearch

    首先在官网查询到最新版本

    docker pull elasticsearch:7.2.0
    

    启动es

    docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearch -d elasticsearch
    

    安装ik分词器

    #进入容器
    docker exec -it 容器id /bin/bash
    #进入plugins目录
    cd /usr/share/elasticsearch/plugins/
    #下载ik分词器
    https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip
    #解压
    unzip -d ik-analysis elasticsearch-analysis-ik-7.2.0.zip
    #删除压缩包(切记删除或移动到其他目录否则无法启动)
    rm -rf elasticsearch-analysis-ik-7.2.0.zip
    #退出容器
    exit
    #重启容器
    docker restart 容器id
    

    允许跨域

    #进入
    /usr/share/elasticsearch/config/elasticsearch.yml
    #添加
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    Kibana

    下载镜像

    docker pull kibana:7.2.0
    

    查看es内部ip

    docker inspect 容器id 
    #找到NetworkSettings.IPAddress 
    

    运行容器

    docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana:7.2.0 
    #官方推荐以上方式,如果es不是docker容器可以采用以下方式
    -e ELASTICSEARCH_HOSTS=http://ip:9200
    

    Filebeat

    下载包

    wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-linux-x86_64.tar.gz
    

    解压

    tar -xzvf filebeat-7.2.0-linux-x86_64.tar.gz
    

    修改filebeat.yml

    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /tmp/log/*.log
    output.logstash:
      enabled: true
      hosts: ["logstash IP:5044"]
    

    启动

    #前台启动
    ./filebeat -e -c filebeat.yml
    #后台启动
    nohup ./filebeat -e -c filebeat.yml > filebeat.log &
    #结束进程
    ps -ef |grep filebeat 
    kill -9  进程号
    

    Logstash

    docker下载

    docker pull logstash:7.2.0
    

    启动

    docker run -p 5044:5044 -p 9600:9600 -d --name logstash logstash:7.2.0
    

    进入容器

    docker exec -it -u 0 logstash /bin/bash
    

    删除示例

    rm -rf logstash-sample.conf
    

    重启

    docker restart logstash
    
  • 相关阅读:
    忘记Linux用户密码怎么办?
    新建虚拟机并与XShell连接(配置网卡)
    虚拟机U盘挂载
    Linux 创建虚拟机,配置网卡,桥接,连接XShell
    C/C++产生随机数
    举例说明数据结构在网络技术领域和实际生活中的应用
    组合数学--容斥原理&鸽巢原理
    计算机组成原理-好文总结
    八大排序算法
    博客园自定义页面风格设计
  • 原文地址:https://www.cnblogs.com/ingxx/p/11286951.html
Copyright © 2011-2022 走看看