zoukankan      html  css  js  c++  java
  • 用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的部分功能进行了说明。

  • 相关阅读:
    mybatis <=或这个>=提示错误Tag name expecte问题解决
    Navicat 设置自增长初始值
    mysql 时间与字符串相互转换
    jquery 动态控制显隐
    mysql 查询常见时间段数据
    jquery 取得select选中的值
    java8 运算语法集
    springboot 单元测试
    idea 自动生成并跳转单元测试
    限制页面被pc端访问
  • 原文地址:https://www.cnblogs.com/mushou/p/9638818.html
Copyright © 2011-2022 走看看