上节我们已经部署了容器化的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
管理日志
[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"
}
}
配置 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等。可以挖掘的内容很多,用法很丰富。
- HDFS部署测试记录(2019/05)
目录 HDFS部署测试记录 0.HDFS基础知识 1.基本组成结构与文件访问过程 2.NameNode启动时如何维护元数据 3.HDFS文件上传流程 1.系统环境 1.安装大致记录: 2.磁盘分区 3 ...
- 2019/05/13 JAVA虚拟机堆内存调优
-Xms4000m 堆内存初始值 * -Xmx4000m 堆内存最大值 * -XX:+PrintGCDetails 打印GC信息 * -XX:+UseSerialGC 使用串行GC * -XX:+Pr ...
- 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 ...
- 精讲 使用ELK堆栈部署Kafka
使用ELK堆栈部署Kafka 通过优锐课的java架构学习分享,在本文中,我将展示如何使用ELK Stack和Kafka部署建立弹性数据管道所需的所有组件. 在发生生产事件后,恰恰在你最需要它们时,日 ...
- Docker环境 ELK 快速部署
Docker环境 ELK快速部署 环境 Centos 7.4 , Docker version 17.12 Docker至少3GB内存: #内核配置 echo ' vm.max_map_count = ...
- ELK 安装部署实战 (最新6.4.0版本)
一.实战背景 根据公司平台的发展速度,对于ELK日志分析日益迫切.主要的需求有: 1.用户行为分析 2.运营活动点击率分析 作为上述2点需求,安装最新版本6.4.0是非常有必要的,大家可根据本人之前博 ...
- 每日一练ACM 2019.04.13
2019.04.13 第1002题:A+B Proble Ⅱ Problem DescriptionI have a very simple problem for you. Given two in ...
- ELK Stack部署
部署ELK Stack 官网:https://www.elastic.co 环境准备: ip hostname 服务 用户.组 192.168.20.3 node2003 kibana6.5,file ...
- ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)
上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示. 几乎所有的软件和应用都有自己的日志文件,容器也不例外.前面我们已经知道 Docker 会将容器日志记录到 /var ...
随机推荐
- C++入门经典-例6.12-使用数组地址将二维数组输出
1:以a[4][3]为例 a代表二维数组的地址,通过指针运算符可以获取数组中的元素 (1)a+n代表第n行的首地址 (2)&a[0][0]既可以看作第0行0列的首地址,同样也可以被看作是二维数 ...
- 实现真正意义上的前后端分离------由淘宝引入nodejs引发的思考
说起前后端分离,大家包括我自己都会想到: 当今流行的MVC不就是最标准的前后端分离吗? 说到这里,我不禁要反问,MVC真正的实现了前后端分离了吗? 无论是PHP的MVC框架TP还是JAVA的MVC框架 ...
- react属性之exact
exact是Route下的一个属性,react路由会匹配到所有能匹配到的路由组件,exact能够使得路由的匹配更严格一些. exact的值为bool型,为true时表示严格匹配,为false时为正常匹 ...
- anaconda 安装pyspider出错
注释Lib\mimetypes.py里面的 try: mimetype = mimetype.encode(default_encoding) except UnicodeEncodeErr ...
- VIM速查表-转
在linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑器之神. 最近抽空整理了这份速查表,收获颇丰,并分享给大家. 进入vim vim配置 移动光标 屏幕滚动 插入文本类 删除命令 ...
- Jenkins发布回滚方案
Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回 ...
- PythonScript_demo--搭建PXE服务器
前言 是一个测试向的Demo,在实验环境中改改还是可以用的,有助理解PXE服务器的原理.可以结合PXE服务器原理细节来看,传送门:点这里 软件环境 系统 RHEL7 软件 Python 27 RHEL ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_1 ioc的概念和作用
IOC的含义 new的方式创建对象,是主动去找对象.对我的资源独立就变的很难,因为这有明显的依赖关系 第二种方式创建对象.app断开了和资源的联系,.而是去找工厂要一个资源.由工厂负责和资源去的联系, ...
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_7 spring中bean的细节之作用范围
bean的作用范围调整. 我们的bean通常情况下都是一个单例的模式 Spring是否也知道这些都是单例 构造函数只走了一次.也就是spring这个对象默认情况就是单例的 scope属性 定义bean ...
- SQL Server 批量创建作业(备份主分区)
一. 需求背景 在我的数据库实例中,有很多类似下图所示的数据库,这些数据库的名称是有规律的,每个数据库包含的表都是相同的,其中2个表是类似流水记录的表,表的数据量会比较大,占用的空间有几十G到上百G不 ...