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网络模式

Docker笔记02-日志平台ELK搭建的更多相关文章

  1. 日志框架elk 搭建

    CENTOS7 安装 NGINX ELK之LOGSTASH ELK之ELASTICSEARCH安装 ELK之KIBANA

  2. 分布式日志系统ELK搭建

    ELK:Elasticsearch  Logstash Kibana Elasticsearch:是基于JSON的分布式搜索和分析引擎,专为实现水平扩展.高可用和管理便捷性而设计 Logstash:是 ...

  3. 啃掉Hadoop系列笔记(02)-Hadoop运行环境搭建

    一.新增一个普通用户bigdata

  4. 从头开始搭建分布式日志平台的docker环境

    上篇(spring mvc+ELK从头开始搭建日志平台)分享了从头开始搭建基于spring mvc+redis+logback+logstash+elasticsearch+kibana的分布式日志平 ...

  5. ELK搭建实时日志分析平台之一ElasticSearch搭建

    文:铁乐与猫 系统:CentOS Linux release 7.3.1611 (Core) 注:我这里为测试和实验方便,ELK整套都装在同一台服务器环境中了,生产环境的话,可以分开搭建在不同的服务器 ...

  6. 基于Kafka+ELK搭建海量日志平台

    早在传统的单体应用时代,查看日志大都通过SSH客户端登服务器去看,使用较多的命令就是 less 或者 tail.如果服务部署了好几台,就要分别登录到这几台机器上看,等到了分布式和微服务架构流行时代,一 ...

  7. ELK快速搭建日志平台

    1.  抛砖引入 <Elasticsearch> <Logstash> <Filebeat> <Filebeat模块与配置> <Kibana> ...

  8. 利用 ELK 搭建 Docker 容器化应用日志中心

    利用 ELK 搭建 Docker 容器化应用日志中心 概述 应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 ...

  9. elk日志平台搭建小记

    最近抽出点时间,搭建了新版本的elk日志平台 elastaicsearch 和logstash,kibana和filebeat都是5.6版本的 中间使用redis做缓存,版本为3.2 使用的系统为ce ...

随机推荐

  1. js进阶 10-1 JQuery是什么

    js进阶 10-1 JQuery是什么 一.总结 一句话总结: 1.两种引用jquery的方法? 可以在线jquery和本地jquery两种 2.jquery主要好处? 浏览器兼容问题 二.js进阶 ...

  2. iOS 日志自动上报

       您好,欢迎使用腾讯Bugly!腾讯Bugly是腾讯公司为移动开发者开放的服务之一. 针对移动应用,腾讯Bugly提供了专业的Crash(崩溃).Android ANR(application n ...

  3. 呈现样式UIModalPresentation

    nModal   n在iPhone开发中 pModal是一种常见的切换控制器的方式 p默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 n n在iPad开发中 pModal的使用频率也是非常高的 ...

  4. Linux中vim中出现H不能正常编辑的问题

    使用Linux中,由于是远程操作,我使用crt,由于有的文档有乱码,我就设置了一下session的字符... vim出现问题,下方出现H,导致不能正常编辑... 耗费一下午的时间,在高人的指点之下,终 ...

  5. android开发之微信支付功能的实现

    移动开发中,支付类的App越来越多,对于开发者来说也是不可少的,不可不会的:下面就来说一说支付开发的流程 1.申请你的AppID 请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该 ...

  6. [Android]TextView点击获取部分内容

    TextView控件本身有很多属性可以进行控制,如果要获取内容只需要getText()方法就可以实现,同时也可以为TextView设置各种监听器.但是,如果想要实现点击获取TextView内部的部分内 ...

  7. matlab 编程的细节问题

    1. reshape 对元素的操作 使用单一维度对矩阵进行操作时,矩阵是逐列地进行编号的(如下矩阵中的 4, 5, 6,分别在矩阵 A 的第 4, 5, 6 索引处,而不是以行进行排序的 2,5,8 ...

  8. ES数据

    通过Elasticsearch使用的你的数据 Elasticsearch 系列导航 elasticsearch 与 elasticsearch-head 的安装 ElasticSearch Index ...

  9. E: Could not get lock /var/lib/dpkg/lock(无法获得锁)

    出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用.而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,进而出现此状况,解决的办法其实很简单.有以下两种解决办法: 1. 强制解锁 执 ...

  10. 如何更好的利用redis

    原文地址http://oldblog.antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html @(syoka)[re ...