Elastic Stack(ELK)介绍及相关示例实验

栏目: 后端 · 发布时间: 5年前

内容简介:官方网站:如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集

本节索引:

一、Elastic Stack介绍

二、核心组件之ElasticSearch

三、核心组件之Logstash

四、核心组件之Kibana

五、核心组件之Filebeat

一、Elastic Stack介绍

官方网站: https://www.elastic.co/products

主要功能:

(1)日志存储和分析

如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁

琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集

汇总。

集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux

命令能实现检索和统计,但是对于要求更高的查询、 排序 和统计等要求和庞大的机器数量依然使用这样的

方法难免有点力不从心。

开源实时日志分析 elastic stack 平台能够完美的解决我们上述的问题

(2)站内内容搜索

大型搜索引擎需用到实时计算

中小型企业站内搜索不需要实时计算,过去的解决方案一般为:Solr

ElasticSearch 出现后,由于其支持弹性搜索引擎,分布式运行,可运行在多个节点上的优势,逐渐占领

了站内搜索领域,Solr解决方案慢慢被淘汰

Elastic Stack(ELK)介绍及相关示例实验

搜索引擎一般由两部分组成: 搜索组件与索引组件

搜索组件:提供用户友好的搜索界面,接入用户搜索信息

索引组件:分析、改造原始数据成为适合搜索引擎搜索的数据结构

早期 ELK :核心组成由 ElasticSearch、Logstash Kibana 三个开源 工具 组成

1、 Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜

索)

2、 ElasticSearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索

引副本机制,restful风格接口,多数据源,自动搜索负载等

3、 Kibana 也是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界

面,可以帮助你汇总、分析和搜索重要数据日志

后期在 ELK 的基础上加入了 filebeat ,并且改名为 Elastic Stack

Filebeat 是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日

志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者

logstash中存放。

二、核心组件之ElasticSearch

ElasticSearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索

引副本机制,restful风格接口,多数据源,自动搜索负载等

监听端口:

    9200: 对客户端提供服务

    9300: 集群内部事务,选举谁是主节点

官网下载: https://www.elastic.co/downloads/past-releases

版本说明:ElasticSearch早期生产环境中由于ELK各核心版本不统一,以2版本居多,5版本之后各组件版

本进行了统一

本文实验均已ELK 5.6.8版本为准

实验:安装ElasticSearch集群

前期准备:

虚拟机3台

node1: 192.168.30.10

node2: 192.168.30.18

node3: 192.168.30.27

具体步骤:

node1,node2,node3端操作:

安装jdk开发环境

yum install java-1.8.0-openjdk-devel -y

下载elasticsearch安装包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.rpm

安装elasticsearch

rpm -ivh elasticsearch-5.6.8.rpm

主要配置文件:

[root@node1 ~]# ls /etc/elasticsearch/

elasticsearch.yml   jvm.options   log4j2.properties   scripts

vim jvm.options

-Xms1g                   #修改初始内存大小

-Xmx1g

Elastic Stack(ELK)介绍及相关示例实验

vim elasticsearch.yml

—————- Cluster ——————

cluster.name:wxlinux    #集群名称,桥接环境下注意修改

————— Network —————–

network.host:本机IP地址

—————– Node ——————–

node.name:node1 or 2 or 3

—————– Paths ——————-

path.data:/myels/data

path.logs:/mysles/logs

————— Discovery —————

discovery.zen.ping.unicast.hosts: [“192.168.30.10”, “192.168.30.18”,”192.168.30.27″]

discovery.zen.minimum_master_nodes: 2

创建数据与日志目录:

mkdir -pv /myels/{data,logs}

chown elasticsearch.elasticsearch  /myels/*

启动elasticsearch服务

systemctl start elasticsearch

查看对应端口是否处于监听状态

ss -ntl

Elastic Stack(ELK)介绍及相关示例实验

判定集群是否正常启动生效

curl -XGET http://192.168.30.18:9200/

Elastic Stack(ELK)介绍及相关示例实验

三、核心组件之Logstash

Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜

索)

Logstash 有三类插件:

1、 输入插件: input,从指定的数据源抽取数据

2、 过滤器插件: ouput,在本地进行格式转换

3、 输出插件: filter,将处理后的结果保留在指定数据库

官方文档: https://www.elastic.co/guide/en/logstash-versioned-plugins/current/index.html

配置文件:

/etc/logstash.conf

/etc/logstash/conf.d/

注意:logstash配置conf.d目录不要求后缀,任意格式均生效

示例1:安装logstash

yum Install java-1.8.0-openjdk-devel

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.8.rpm

rpm -ivh logstash-5.6.8.rpm

添加到环境变量:

vim /etc/profile.d/logstash.sh

PATH=/usr/share/logstash/bin:$PATH

. /etc/profile.d/logstash.sh

配置测试:

vim test1.conf

Elastic Stack(ELK)介绍及相关示例实验

语法检查

logstash -f test1.conf -t

加载运行配置

logstash -f test1.conf

Elastic Stack(ELK)介绍及相关示例实验

示例2:实现标准输出美观化

Elastic Stack(ELK)介绍及相关示例实验

加载运行配置

logstash -f test2.conf

Elastic Stack(ELK)介绍及相关示例实验

示例3:Logstash实现结构化日志输出

客户端模拟随机IP进行访问,在logstash端创建200个测试页面:

[root@logstash ~]# for i in {1..200};do echo “Test Page $i” > /var/www/html/test$i.html;done

修改http配置文件中的日志格式

Elastic Stack(ELK)介绍及相关示例实验

[root@client ~]# while true;do client=$[$RANDOM%254+1];curl –header “X-Forwarded-For: 192.30.0.$client” http://192.168.30.10/test$client.html;sleep 1;done

Elastic Stack(ELK)介绍及相关示例实验

Logstash端:

修改配置文件:

Elastic Stack(ELK)介绍及相关示例实验

当客户端进行访问时,logstash将日志进行结构化输出

Elastic Stack(ELK)介绍及相关示例实验

示例4:引入grok过滤器插件

功能:使非结构化日志转化为结构化日志格式

Elastic Stack(ELK)介绍及相关示例实验

加载运行配置

logstash -f test4.conf

Elastic Stack(ELK)介绍及相关示例实验

示例5:引用grok内置变量

Elastic Stack(ELK)介绍及相关示例实验

加载运行配置

logstash -f test5.conf

Elastic Stack(ELK)介绍及相关示例实验

当日志来源有多个时,可加判断语句:

Elastic Stack(ELK)介绍及相关示例实验

示例6:date filter插件示例

功能:将@timestamp的时间替换为timestamp字段,原@timestamp时间移除

Elastic Stack(ELK)介绍及相关示例实验

加载运行配置

logstash -f test5.conf

Elastic Stack(ELK)介绍及相关示例实验

示例7:Geoip插件

功能:根据ip地址定位来自哪个地区或城市

下载IP地址信息库

Elastic Stack(ELK)介绍及相关示例实验

查看配置

Elastic Stack(ELK)介绍及相关示例实验

vim test6.conf

Elastic Stack(ELK)介绍及相关示例实验

加载运行配置

logstash -f test6.conf

Elastic Stack(ELK)介绍及相关示例实验

四、核心组件之Kibana

Kibana 是一个开源和免费的工具,它可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可

以帮助你汇总、分析和搜索重要数据日志

默认监听 5601 端口,工作于 http 协议

示例:安装kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.8-x86_64.rpm

rpm -ivh kibana-5.6.8-x86_64.rpm

修改kibana配置文件

vim kibana.conf

server.port:5601

server.host:”0.0.0.0″ #5601监听的本地地址

server.name:”master.wxlinux.com”

elasticsearch.url:”http://node1:9200″

查看5601端口已处于监听状态

Elastic Stack(ELK)介绍及相关示例实验

浏览器访问 http://localhost:5601

进行一些相关设置即可正常使用

Elastic Stack(ELK)介绍及相关示例实验

输入关键词可进行搜索

Elastic Stack(ELK)介绍及相关示例实验

可根据状态码进行范围查询

Elastic Stack(ELK)介绍及相关示例实验

生成统计表图结构

Elastic Stack(ELK)介绍及相关示例实验

也可根据geoip信息生成位置访问统计

Elastic Stack(ELK)介绍及相关示例实验

五、核心组件之Filebeat

Filebeat 是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日

志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者

logstash中存放。

早期部署ELK时,需要将Logstatsh安装于每台需要收集日志的服务器上,但由于Logstash属于重量级应

用。为了减少服务器的性能消耗,在filebeat出现后,一般利用filebeat用来替代过去logstash的收集、读取

日志功能,而将logstash分离出来做成集群专门来负责转换格式使用。

官网介绍:轻量级的数据搬用工具

Elastic Stack(ELK)介绍及相关示例实验

示例:实现由filebeat收集服务器日志,转发给elasticsearch

前期准备:

虚拟机三台

filebeat: 192.168.30.10

elasticsearch 1: 192.168.30.18

elasticsearch 2: 192.168.30.27

其中elasticsearch 1与elasticsearch 2组成一个elasticsearch集群

具体步骤

安装filebeat:

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.8-x86_64.rpm

rpm -ivh filebeat-5.6.8-x86_64.rpm

修改配置文件:

vim /etc/filebeat/filebeat.yml

修改输入类型为log,文件路径为httpd访问日志

Elastic Stack(ELK)介绍及相关示例实验

输出到elasticsearch,指定主机IP地址

Elastic Stack(ELK)介绍及相关示例实验

启动filebeat服务

systemctl start filebeat

查看filebeat文件已在elasticsearch端生成,且不断增加中

Elastic Stack(ELK)介绍及相关示例实验

本文来自投稿,不代表 Linux 运维部落立场,如若转载,请注明出处:http://www.178linux.com/104311


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Android编程权威指南

Android编程权威指南

[美] Bill Phillips、[美] Brian Hardy / 王明发 / 人民邮电出版社 / 2014-4 / CNY 99.00元

权威、全面、实用、易懂,是本书最大的特色。本书根据美国大名鼎鼎的Big Nerd Ranch训练营的Android培训讲义编写而成,已经为微软、谷歌、Facebook等行业巨头培养了众多专业人才。作者巧妙地把Android开发所需的庞杂知识、行业实践、编程规范等融入一本书中,通过精心编排的应用示例、循序渐进的内容组织,以及循循善诱的语言,深入地讲解了Android开发的方方面面。如果学完一章之后仍......一起来看看 《Android编程权威指南》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具