zoukankan      html  css  js  c++  java
  • Docker笔记02-日志平台ELK搭建

    OS: Centos7

    准备工作:

    虚拟机中安装Centos, 搭建Docker环境

    ELK简介: 略

    文档地址 https://elk-docker.readthedocs.io/ 

    需要注意的是在Beats套件加入ELK Stack后,新的称呼是 Elastic Stack , 本次实践的是 filebeat + elk 

    由于elk镜像很大7.0.1版本大约1.8G 开始前建议将镜像源设置成国内地址 如阿里镜像库,网易镜像库等

    阿里镜像源设置可参考 https://www.cnblogs.com/anliven/p/6218741.html/

    1.下载镜像

    docker pull sebp/elk
    

    2.运行镜像

    docker run -p  5601:5601 -p 9200:9200 -p 5044:5044  -v /usr/dockerfile:/data -it -d --name elk sebp/elk
    • 5601 (Kibana web interface).
    • 9200 (Elasticsearch JSON interface).
    • 5044 (Logstash Beats interface, receives logs from Beats such as Filebeat – see the Forwarding logs with Filebeat section).

      本机elk镜像运行有点慢,查看运行日志

      docker logs elk   

    3. 配置logstash文件  可以不用配置 由于filebeat比logstash有更好的性能基本是用filebeat搜集日志后直接发给elasticsearch来分析存储

      如果需要处理日志可以filebeat收集日志发给logstash,再由logstash整理后给elasticsearch

    vim  /usr/dockerfile/config/logstash.yml

    input 数据来源是filebeat 端口是5044 禁用ssl
    output 输出是elasticsearch 配置 elasticsearch 地址 和索引

    input {
      beats {
        port => 5044
        ssl => false
        codec => "json"
      }
    }

    output {
      elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "filebeat-%{+YYYY.MM.dd}"
      }
    }

    4.查看elk是否成功启动

    host 192.168.95.131 是本地虚拟机的ip 

    http://192.168.95.131:9200/_search?pretty 

    http://192.168.95.131:5601/

    能正常打开页面表示成功了

    5.安装filebeat 

       可以根据Kibana页面提示安装filebeat

       进入Kibana Home页后   选择 Add log data  =>  Logstash logs 

       

    根据对应主机系统选择不同的安装方式

    6.配置filebeat.yml

       cd /etc/filebeat 进入配置文件路径

       ls fields.yml  filebeat.reference.yml  filebeat.yml  modules.d 

       需要配置的就是filebeat.yml , filebeat.reference.yml 是完整的配置项   

    filebeat.inputs:
    - type: log
      enabled: true        # 启用 #
      paths:
        - /data/logs/*.log   # 扫描的文件logs目录下所有.log后缀的文件 #
        - /data/logs/*/*.txt  # 扫描logs目录下文件夹下的.txt后缀的文件#
      fields:                  # 标签 表示 name = host value = 192.168.95.130 logstash中 获取方式 fields.host #
        host: "192.168.95.130"
    
    filebeat.config.modules:
      path: ${path.config}/modules.d/*.yml
    
      reload.enabled: true
    
    setup.template.settings:
      index.number_of_shards: 1
      _source.enabled: true
    
    output.elasticsearch:
      hosts: ["192.168.95.131:9200"]  #elasticsearch 地址#
    
    
    processors:
      - add_host_metadata: ~
      - add_cloud_metadata: ~
      - drop_fields:
          fields: ["cpu.user","cpu.system","host.os.family"]  # 过滤的字段 # 
    
    logging.to_files: true   # filebeat 运行日志 保存到 /var/log/filebeat 路径下 #
    logging.files:
      path: /var/log/filebeat

    7.filebeat 停止/启动/状态查看命令

    sudo service filebeat stop
    sudo service filebeat start
    sudo service filebeat status

    启动filebeat后需查看status来确认是否成功启动,通常失败的原因是filebeat.yml文件配置有误

    成功状态如下 :

    8.验证elk平台是否正常

      登陆Kibanna > Management > Kinbana > Index Patterns  根据提示创建索引

     点击 Discover 选择索引 filebeat-* 或者 logstash-*  点击刷新 查看日志

     或者点击Logs 菜单 查看所有日志 可以点击 Stream live 实时查看日志

    遇到的坑:

    1.启动elk失败,内存不足

    https://www.cnblogs.com/yidiandhappy/p/7714489.html
    

      

    2.filebeat 启动时提示成功了 但是收集不到日志,使用 sudo service filebeat status 查看启动状态 发现是失败的,后来验证是filebeat.yml配置错误

    elk基础功能搭建完成

    其他功能还在探索中....

    参考

    https://www.imooc.com/article/70996

    在实践Filebeat发送日志给Logstash的过程中一直有些问题,最终发现是logstash配置文件有误,真确的路径是进入容器后的/etc/logstash/conf.d/02-beats-input.conf
    参考 https://juejin.im/post/5ba4c8ef6fb9a05d082a1f53
    
    在收集filebeat自己的运行日志时发现一直没产生?!
    解决方案是配置filebeat.yml
        查看filebeat运行状态
    # sudo service filebeat status

        

    然后 # sudo filebeat run

    这条命令是阻塞式的,然后新开窗口进入日志目录进看到日志

      

    下一篇 Docker网络模式

  • 相关阅读:
    DOM操作之获取HTML、文本和值
    DOM操作之属性和样式操作
    DOM节点的增删改查
    其他选择器
    属性过滤选择器
    Linux
    Linux
    Appium自动化(3)
    Appium自动化(2)
    Appium自动化(1)
  • 原文地址:https://www.cnblogs.com/dbycl/p/10876373.html
Copyright © 2011-2022 走看看