• 用elk+filebeat监控容器日志


    elk  为 elasticsearch(查询搜索引擎),logstash(对日志进行分析和过滤,然后转发给elasticsearch),kibana(一个web图形界面用于可视化elasticsearch数据)缩写

    1.安装docker环境

    2. 准备镜像

    拉取 elk镜像,我们用sebp/elk

    docker  pull  sebp/elk,

    3. 启动容器

    docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk  -d

    -p 端口映射,5601为kibana 使用,9200为elasticsearch使用,5044为logstash使用

    -d 守护进程运行容器

    在浏览器输入hostip:5601

    正常情况下会显示界面,但是没有日志,因为还没有收集日志信息,我们要做的是将docker的日志导入elk.

    4.安装filebeat

    我们知道docker 会将容器日志记录到 /var/lib/docker/containers/id/id-json.log

    只要将此文件发给elk就可以实现日志管理,elk提供了一个配套工具filebeat,转发日志和监控日志文件

    wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.1-x86_64.rpm

    rpm -ivh  filebeat-6.1.1-x86_64.rpm

    修改配置文件

    cd /etc/filebeat

    vim  filebeat.yml

    enable   改为 true

    paths:改为

    - /var/lib/docker/container/*/*.log

    - /var/log/syslog

     启动filebeat,systemctl   start   filebeat

    进入ELK容器,修改cd /etc/logstash/conf.d/

    vim  02-beats-input.conf

    下三行删除掉,意思是否使用证书,本例是不使用证书的,如果你需要使用证书,将logstash.crt拷贝到客户端,然后在filebeat.yml里面添加路径即可

        ssl => true
        ssl_certificate => "/pki/tls/certs/logstash.crt"
        ssl_key => "/pki/tls/private/logstash.key"

    注意:sebp/elk docker是自建立了一个证书logstash.crt,默认使用*通配配符,如果你使用证书,filebeat.yml使用的服务器地址必须使用域名,不能使用IP地址,否则会报错,这个坑是我踩后得出来的心得,说见官网文档说明即可

    5.

    打开kibana管理页面:http://ip:5601  新建filebeat-*

    这时我们启动容器,就可以在kibana看到有新的日志输出。

    在此,我们只是对elk的部分功能进行了说明。

  • 相关阅读:
    程序员:不要自称为码农
    SpringBoot对静态资源配置
    LeetCode 572. Subtree of Another Tree(子树)
    LeetCode 437. Path Sum III(统计路径和等于sum的路径数量)
    LeetCode 112. Path Sum(判断路径和是否等于一个数)
    LeetCode 617. Merge Two Binary Trees(归并两棵二叉树)
    LeetCode 226. Invert Binary Tree(翻转二叉树)
    Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom:2.6 的解决办法
    linux-查询某软件的安装的目录
    WebService概念解释
  • 原文地址:https://www.cnblogs.com/mushou/p/9638818.html
Copyright © 2020-2023  润新知