上节我们已经部署了容器化的ELK,本节我们学习如何将日志导入ELK并进行图形化展示。
 
几乎所有的软件和应用都有自己的日志文件,容器也不例外。前面我们已经知道Docker会将容器日志记录到 /va/lib/docker/containers/<containers ID>/<container ID>-json.log ,那么只要我们能够将此文件发送给ELK就可以实现日志管理。
 
要实现这一步其实不难,因为ELK提供了一个配套小工具 Filebeat ,他能将指定路径下的日志文件转发给ELK。同时Filebeat很聪明,他会监控日志文件,当日志更新时,Filebeat会将新的内容发送给ELK。
 
安装Filebeat
 
 
root@host1:~# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.0.1-amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13.0M  100 13.0M    0     0   245k      0  0:00:54  0:00:54 --:--:--  384k
root@host1:~# dpkg -i filebeat-7.0.1-amd64.deb
Selecting previously unselected package filebeat.
(Reading database ... 66499 files and directories currently installed.)
Preparing to unpack filebeat-7.0.1-amd64.deb ...
Unpacking filebeat (7.0.1) ...
Setting up filebeat (7.0.1) ...
Processing triggers for systemd (229-4ubuntu21.21) ...
Processing triggers for ureadahead (0.100.0-19) ...
 
配置Filebeat
 
Filebeat 的配置文件为 /etc/filebeat/filebeat.yml 我们需要告诉Filebeat两件事:
    1、监控哪些日志文件    --    见下面paths部分
    2、将日志发送到哪里    --    见下面output部分,可以发送给Elasticsearch,也可以发送给Logstash
 
root@host1:~# cat /etc/filebeat/filebeat.yml  | grep -v '#'
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
    - /var/lib/docker/containers/*/*.log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 1
setup.kibana:
output.elasticsearch:
  hosts: ["localhost:9200"]
#output.logstash:
  # The Logstash hosts
  #hosts: ["localhost:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
 
上面的配置大概如下图所示
 
 
启动 Filebeat
 
安装的时候已经将Filebeat注册为 systemd 的服务,用的时候直接启动即可
 
root@host1:~# systemctl start filebeat.service
 
管理日志
 
Filebeat 启动后,正常情况下会将监控的日志发送给Elasticsearch。刷新Elasticsearch的JSON接口进行确认  http://10.12.31.211:9200/_search?pretty
 
[root@makeISO shells]# curl -s  http://10.12.31.211:9200/_search?pretty | jq .hits.hits[5]
{
  "_index": "filebeat-7.0.1-2019.05.13-000001",
  "_type": "_doc",
  "_id": "325LsWoBFnozufrcnyIX",
  "_score": 1,
  "_source": {
    "@timestamp": "2019-05-13T13:04:41.668Z",
    "input": {
      "type": "log"
    },
    "ecs": {
      "version": "1.0.0"
    },
    "host": {
      "id": "f30f106ea21f7a1abddeb5fa5c91ad7e",
      "containerized": false,
      "name": "host1",
      "hostname": "host1",
      "architecture": "x86_64",
      "os": {
        "family": "debian",
        "name": "Ubuntu",
        "kernel": "4.4.0-31-generic",
        "codename": "xenial",
        "platform": "ubuntu",
        "version": "16.04.1 LTS (Xenial Xerus)"
      }
    },
    "agent": {
      "version": "7.0.1",
      "type": "filebeat",
      "ephemeral_id": "f1376a70-18cd-40ec-b48f-b984da5f3de0",
      "hostname": "host1",
      "id": "fd05d865-a43a-4baf-bbfb-1a82aaceb903"
    },
    "log": {
      "offset": 234,
      "file": {
        "path": "/var/log/a.log"    #    为了方便控制日志的内容,这里将监控日志设置成了/var/log 下的 a.log、b.log、c.log
      }
    },
    "message": "1"
  }
}
 
Kibana 配置 index pattern( http://10.12.31.211:5601
 
配置 index pattern 告诉Kibana查询和分析 Elasticsearch中的哪些日志
 
 
 
指定 index pattern 为 filebeat-* ,这与Elasticsearch中的index一致,然后点击下一步按钮
 
 
Time Filter field name 选择 @timestamp,然后点击创建按钮
 
 
创建完成后,点击左侧的 Discover 按钮,便可以看到收集到的日志。
 
 
检索日志内容
 
root@host1:/var/log# echo test_log_message >> a.log
 
 
 
上面只是简单的将日志导入 ELK 并朴素的显示出来,实际上 ELK 还可以对日志进行归类汇总、分析聚合、创建炫酷的Dashboard等。可以挖掘的内容很多,用法很丰富。

090、ELK完成部署和使用 (2019-05-13 周二)的更多相关文章

  1. HDFS部署测试记录(2019/05)

    目录 HDFS部署测试记录 0.HDFS基础知识 1.基本组成结构与文件访问过程 2.NameNode启动时如何维护元数据 3.HDFS文件上传流程 1.系统环境 1.安装大致记录: 2.磁盘分区 3 ...

  2. 2019/05/13 JAVA虚拟机堆内存调优

    -Xms4000m 堆内存初始值 * -Xmx4000m 堆内存最大值 * -XX:+PrintGCDetails 打印GC信息 * -XX:+UseSerialGC 使用串行GC * -XX:+Pr ...

  3. Heartbeat took longer than "00:00:01" at "09/06/2019 05:08:08 +00:00".

    .netcore在k8s+docker+linux,部署后,偶尔会报这样的警告 Warn:Microsoft.AspNetCore.Server.KestrelHeartbeat took longe ...

  4. 精讲 使用ELK堆栈部署Kafka

    使用ELK堆栈部署Kafka 通过优锐课的java架构学习分享,在本文中,我将展示如何使用ELK Stack和Kafka部署建立弹性数据管道所需的所有组件. 在发生生产事件后,恰恰在你最需要它们时,日 ...

  5. Docker环境 ELK 快速部署

    Docker环境 ELK快速部署 环境 Centos 7.4 , Docker version 17.12 Docker至少3GB内存: #内核配置 echo ' vm.max_map_count = ...

  6. ELK 安装部署实战 (最新6.4.0版本)

    一.实战背景 根据公司平台的发展速度,对于ELK日志分析日益迫切.主要的需求有: 1.用户行为分析 2.运营活动点击率分析 作为上述2点需求,安装最新版本6.4.0是非常有必要的,大家可根据本人之前博 ...

  7. 每日一练ACM 2019.04.13

    2019.04.13 第1002题:A+B Proble Ⅱ Problem DescriptionI have a very simple problem for you. Given two in ...

  8. ELK Stack部署

    部署ELK Stack 官网:https://www.elastic.co 环境准备: ip hostname 服务 用户.组 192.168.20.3 node2003 kibana6.5,file ...

  9. ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)

    上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示. 几乎所有的软件和应用都有自己的日志文件,容器也不例外.前面我们已经知道 Docker 会将容器日志记录到 /var ...

随机推荐

  1. R_Studio(关联)对Groceries数据集进行关联分析

    RGui的arules程序包里含有Groceries数据集,该数据集是某个杂货店一个月真实的交易记录,共有9835条消费记录,169个商品 #install.packages("arules ...

  2. spring整合之后运行报什么只读错误。Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

    解决办法, 再大dao的实现类上添加注解: @Transactional(readOnly = false ) 不让它只读就行了

  3. Edge Detection

      Edge Detection Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22604   Accepted: 5311 ...

  4. Win7、win8、win10下实现精准截获Explorer拷贝行为

    介绍了windows下对Explorer的拷贝动作的精确截获,这个在企业数据安全dlp产品系列中减少审计的噪音很有效,方便运营人员做针对性的审计. 在企业数据安全中我通常需要监测用户的拷贝行为,特别像 ...

  5. 1.2 Mac下配置maven环境变量

    1.下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.下载Mave ...

  6. SQL server中的一些查询

    SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后 ...

  7. python异常处理--try except else raise finally

    转载自https://www.cnblogs.com/bokeyuan11/p/9146607.html 写程序时遇到异常情况,程序可能无法正常运行.此时就需要引入异常处理 1.try ...exce ...

  8. 学习笔记 - MarkDown 语法

    学习参考网址:https://www.appinn.com/markdown/index.html # **gitskill** ## 标题 ># 这是 H1 >## 这是 H2 > ...

  9. 【flask】处理表单数据

     表单数据的处理涉及很多内容,除去表单提交不说,从获取数据到保存数据大致会经历以下步骤: 解析请求,获取表单数据. 对数据进行必要的转换,比如将勾选框的植转换为Python的布尔值. 验证数据是否符合 ...

  10. 基于 Node.js 的服务器自动化部署搭建实录

    基于 Node.js 的服务器自动化部署搭建实录 在服务器上安装 Node.js 编写拉取仓库.重启服务器脚本 配置 Github 仓库的 Webhook 设置 配置 Node.js 脚本 其他问题 ...