阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux部署ELK 日志分析系统与简单测试

402次阅读
没有评论

共计 4702 个字符,预计需要花费 12 分钟才能阅读完成。

写在前边的话

    ELK stack 是指由 Elasticsearch,Logstash,Kibana 三个组件结合起来而构成的一个日志收集,分析,可视化的一个套件。
    环境说明

  • Deepin15.2
  • Java 1.8.0
  • Elasticsearch 2.4.0
  • Logstash 2.4.0
  • Kibana 4.6.1

    部署路径:/opt/elk
    官网下载地址 (配套下载,避免出现版本不匹配问题):https://www.elastic.co/products


简单介绍


1:E->Elasticsearch

es 和 solr 比较类似,都是基于 lucene 的来提供的搜索服务。但是在高并发的表现上,ES 的负载均衡效果是优于 solr 的。
Elasticsearch 是基于 Lucene 的近实时搜索平台,它能在一秒内返回你要查找的且已经在 Elasticsearch 做了索引的文档。它默认基于 Gossip 路由算法的自动发现机制构建配置有相同 cluster name 的集群,但是有的时候这种机制并不可靠,会发生脑裂现象。鉴于主动发现机制的不稳定性,用户可以选择在每一个节点上配置集群其他节点的主机名,在启动集群时进行被动发现。

Elasticsearch 中的 Index 是一组具有相似特征的文档集合,类似于关系数据库模型中的数据库实例,Index 中可以指定 Type 区分不同的文档,类似于数据库实例中的关系表,Document 是存储的基本单位,都是 JSON 格式,类似于关系表中行级对象。我们处理后的 JSON 文档格式的日志都要在 Elasticsearch 中做索引,相应的 Logstash 有 Elasticsearch output 插件,对于用户是透明的。

Hadoop 生态圈为大规模数据集的处理提供多种分析功能,但实时搜索一直是 Hadoop 的软肋。如今,Elasticsearch for Apache Hadoop(ES-Hadoop)弥补了这一缺陷,为用户整合了 Hadoop 的大数据分析能力以及 Elasticsearch 的实时搜索能力.

2:L->Logstash

Logstash 是一种功能强大的信息采集工具,类似于 Hadoop 生态圈里的 Flume。通常在其配置文件规定 Logstash 如何处理各种类型的事件流,一般包含 input、filter、output 三个部分。Logstash 为各个部分提供相应的插件,因而有 input、filter、output 三类插件完成各种处理和转换;另外 codec 类的插件可以放在 input 和 output 部分通过简单编码来简化处理过程。

3:K->Kibana

kibana 是一个可以可以用来查看 ES 里数据的 Web。在早期 logstash 有一个 logstash-web,但是功能比较简单。咱们这里说的 kibana 严格意义上说是 kibana4,是在 2015 年重构完成的一个版本。


ELK 与 Hadoop/Spark 的比较


ELK 应付常见的日志摘要和分析是没问题的,上 PB 级的数据量也不是难事。ELK 简单、轻量、易扩展倒是真的,但数据容量,二次抽洗,以及周边生态,还是没有 Hadoop 来得好。elk 在掌握简单的正则以后即可对任意数据进行抽取(要求半格式化数据),处理同样的数据 spark 还需要学一门编程语言。

具体参考:
http://sanwen.net/a/kewgsbo.html


Elasticsearch 的部署与 head 插件的安装


1:Elasticsearch 的部署

解压到指定目录 /opt/elk,并启动

sudo tar -zxvf /home/thinkgamer/ 下载 /ELK/elasticsearch-2.4.0.tar.gz -C .

bin/elasticsearch

利用以下命令获取状态信息(得到的内容和下边图片上显示的是一样的)

curl -X GET http://localhost:9200/

也可以在浏览器窗口输入 localhost:9200,可以看到类似于如下的界面
Linux 部署 ELK 日志分析系统与简单测试

从中我们可以看出 elasticsearch 的版本为 2.4.0,是基于 lucene5.5.2 开发的

2:安装 head 插件

执行命令

bin/plugin install mobz/elasticsearch-head

访问 url:

http://localhost:9200/_plugin/head/


LogStash 的部署


解压到 /opt/elk 目录下:

tar -zxvf /home/thinkgamer/ 下载 /ELK/logstash-2.4.0.tar.gz -C .

这里针对这个 input 和 output 有三种情况

1.shell 端输入 shell 端输出

此种情况下,并不涉及 elasticsearch 和 kibana,只是简单测试 Logstash 服务是否正常,预期将输入的内容结构化的输出到界面上

bin/logstash -e‘input {stdin {} } output {stdout {} }’&

提示:

Settings: Default pipeline workers: 4
Pipeline main started

这个时候由于我们定义的 input 和 output 是 stdin 和 stdout,并没有进行额外的处理,所以你输入什么就会输出什么

thinkgamer@thinkgamer-pc:/opt/elk/logstash-2.4.0$ bin/logstash -e 'input{stdin{}} output{stdout{}}'
Picked up _JAVA_OPTIONS:   -Dawt.useSystemAAFontSettings=gasp
Settings: Default pipeline workers: 4
Pipeline main started
qwewq
2016-09-25T05:14:04.819Z thinkgamer-pc qwewq
safdaas
2016-09-25T05:15:32.132Z thinkgamer-pc safdaas
我爱你
2016-09-25T05:15:34.792Z thinkgamer-pc 我爱你 

PS:以下两种方式涉及 kibana 的 web 展示,所以在配置 web 输出后,需要进行的操作是 creat 动作,具体看 kibana 部署中的示例

2.shell 端输入 web 端展示

然后我们创建 Logstash 配置文件,并再次测试 Logstash 服务是否正常,预期可以将输入内容以结构化的日志形式打印在界面上(这里我们配置了 Logstash 作为索引器,将日志数据传送到 elasticsearch 中)

mkdir config
vim config/hello_search.conf

填写如下内容:

input {stdin {} }
output {elasticsearch { hosts => "localhost"}
  stdout {codec => rubydebug}
}

bin/logstash -f config/hello_search.conf

再次测试执行的效果:

thinkgamer@thinkgamer-pc:/opt/elk/logstash-2.4.0$ bin/logstash agent -f config/hello_search.conf 
Picked up _JAVA_OPTIONS:   -Dawt.useSystemAAFontSettings=gasp
Settings: Default pipeline workers: 4
Pipeline main started
sdf
[2016-09-25 13:28:21,997][INFO ][cluster.metadata         ] [Arcademan] [logstash-2016.09.25] creating index, cause [auto(bulk api)], templates [logstash], shards [5]/[1], mappings [_default_]
[2016-09-25 13:28:22,758][INFO ][cluster.routing.allocation] [Arcademan] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[logstash-2016.09.25][4]] ...]).
[2016-09-25 13:28:22,993][INFO ][cluster.metadata         ] [Arcademan] [logstash-2016.09.25] create_mapping [logs]
{       "message" => "sdf",
      "@version" => "1",
    "@timestamp" => "2016-09-25T05:28:21.161Z",
          "host" => "thinkgamer-pc"
}
受到方式  
{       "message" => "受到方",
      "@version" => "1",
    "@timestamp" => "2016-09-25T05:28:30.998Z",
          "host" => "thinkgamer-pc"
}
我爱你
{       "message" => "我爱你",
      "@version" => "1",
    "@timestamp" => "2016-09-25T05:28:58.399Z",
          "host" => "thinkgamer-pc"
}

我们可以在 Elastic 的 web 界面上看到
Linux 部署 ELK 日志分析系统与简单测试

3. 监测指定文件,web 展示

在 /opt/elk/testlog 下有两个文件,分别是 access.log 和 error.log,我们通过 echo 往这两个文件追加内容,来测试整个日志收集系统是否可行

 vim /opt/elk/logstash-2.4.0/config/hello_search.conf
input {
  file {type =>"syslog"
     path => ["/opt/elk/auth.log" ]
  }
  syslog {type =>"syslog"
    port =>"5544"
  }
}
output {stdout { codec=> rubydebug}
  elasticsearch {hosts => "localhost"}
}

启动

bin/logstash -f config/hello_search.conf

这里需要再次打开 http://localhost:5601/ 进行 create

测试效果

echo 9 >> auth.log

Linux 部署 ELK 日志分析系统与简单测试

Kibana 部署


解压到指定目录 /opt/

tar -zxvf /home/thinkgamer/ 下载 /ELK/kibana-4.6.1-linux-x86_64.tar.gz -C .

启动 kibana

bin/kibana

web 访问:http://localhost:5601/
Linux 部署 ELK 日志分析系统与简单测试

这里需要配置一个索引:
默认,Kibana 的数据被指向 Elasticsearch,使用默认的 logstash-* 的索引名称,并且是基于时间的,点击“Create”即可。
看到如下界面说明 OK 了
Linux 部署 ELK 日志分析系统与简单测试
点击 Discover 可以看到,我们刚才在终端测试的输入
Linux 部署 ELK 日志分析系统与简单测试

至此,一个小的 ELK stack 日志分析系统已经完成了,但是我们可以看出仍然有许多不是很难理解的地方,接下来我们看一个实例


END

ELK Stack 日志系统搭建  http://www.linuxidc.com/Linux/2016-08/134166.htm

CentOS 7 下安装 Logstash ELK Stack 日志管理系统  http://www.linuxidc.com/Linux/2016-08/134165.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-10/135849.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4702字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7982060
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...