• 基于docker部署使用ELK+FileBeat日志管理平台


      Docker从狭义上来讲就是一个进程,从广义上来讲是一个虚拟容器,专业叫法为 Application Container(应用容器)。Docker进程和普通的进程没有任何区别,它就是一个普通的应用进程,不过是用来操作镜像文件的。所以Docker进程+构建的应用镜像文件就等于Docker容器。作为时下最热门的技术,docker轻量、便捷,极大的简化了后端开发/后期运维工作。同时,ELK+Filebeat的集中式日志解决方案也是大热。开发环境,Ubuntu 16.04

      1、Docker安装

      1.校验Linux内核版本

    uname -ir

      Linux内核版本高于3.10,64位系统

      2.获取最新doker安装包

    wget -qO- https://get.docker.com/ | sh

      如上图,即安装完成

      3.启动docker后台服务

    sudo service docker start #启动守护进程
    docker -v # 检查版本

      如此docker即装好,具体的安装详情,教程很多,不赘述

      2、安装elk镜像

      1.拉取 sebp/elk镜像

    sudo docker pull sebp/elk

      镜像较大,差不多1.65G

      2.说几个会用到的docker命令

    sudo docker images // 查看本地已有镜像
    sudo docker run [image] // 拉取并运行镜像
    sudo docker ps -a // 查看容器状态
    sudo docker stop [image_id] sudo docker rm [image_id] // 删除指定容器 sudo docker exec -it [image_id] /bin/bash // 进入容器,推荐bash //拷贝容器内文件至主机目录 sudo docker [image_id]:/etc/pki/tls/certs/logstash-beats.crt ~ exit // 退出容器

      3.运行elk容器

      运行elk容器的时候,需将宿主机的端口转发到该容器,其中ES端口为9200,kibana端口为5601,logstash为5044(注:可进入容器自行修改,再自由分配);建议将配置文件和数据存放在宿主机,便于后期维护,因此还需要将宿主机目录挂载在容器/data当中;最终构造的命令如下:

    sudo docker run -p  5601:5601 -p 9200:9200 -p 5044:5044  -v /home/nya/dockerFile:/data -it -d --name elk sebp/elk

      4.ELK服务端简单配置

      这里是将ELK作为服务端,而sebp/elk镜像默认生成有ssl证书,将证书拷贝至客户端即可,容器中logstash的相关配置位于/etc/logstash/conf.d,输入默认配置如下:

    input {
      beats {
        port => 5044
        ssl => true
        ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
        ssl_key => "/etc/pki/tls/private/logstash-beats.key"
      }
    }

      :产生的数据文件及相关配置文件,可统一至于 之前挂载的 /data目录下

      5.简单测试

      一般不存在问题,可直接访问Kibana页面:

      多数无法访问可能因为网络不通,即防火墙未打开:

    sudo ufw allow 5601 // 开启5601端口

      3、ELK客户端配置

      ELK客户端配置核心在于Filebeat的相关配置

      1.添加elastic key至客户端

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

      2.安装apt-transport-https

      由于将使用https传输的elastic数据,需安装apt-transport-https

    sudo apt-get install -y apt-transport-https

      3.添加elastic库并更新apt-get库

    echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
    sudo apt-get update

      4.安装Filebeat及相关配置

    sudo apt-get install -y filebeat
    sudo vi /etc/filebeat/filebeat.yml

      简版相关配置:

    filebeat.prospectors:
    
    - input_type: log
    
      paths:
        - /data/rosetta/logs/image-search.log
        - /data/rosetta/logs/summary.log
      document_type: syslog
    output.logstash:
      hosts: ["ip:5044"]
      bulk_max_size: 2048
    
      # ssl.certificate_authorities: ["/etc/logstash/logstash.crt"]
      ssl.certificate_authorities: ["/home/nya/logstash-beats.crt"]
      template.name: "filebeat"
      template.path: "filebeat.template.json"
      template.overwrite: false

      注意:配置文件为 .yml,格式特别重要,尤其是配置key: 后必须有一个空格,否则filebeat启动失败。

      5.启动Filebeat

    sudo systemctl start filebeat  // 启动  
    sudo systemctl enable filebeat // 设置为开机启动
    sudo systemctl status filebeat // 检查服务状态

      执行检查服务状态,返回结果如下图即可:

      4、校验并测试

      此处无甚可说,组图展示:

    1.

    2.

    3.

    4.

    5.大功告成 -- 结束

  • 相关阅读:
    npm版本管理
    spring框架学习笔记5:SpringAOP示例
    spring框架学习笔记4:SpringAOP实现原理
    spring框架学习笔记3:使用注解代替配置文件
    spring框架学习笔记2:配置详解
    spring框架学习笔记1:搭建测试
    struts2框架学习笔记7:struts2标签
    struts2框架学习笔记6:拦截器
    struts2框架学习笔记5:OGNL表达式
    struts2框架学习笔记4:获取参数
  • 原文地址:https://www.cnblogs.com/nyatom/p/10038557.html
Copyright © 2020-2023  润新知