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

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

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


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

查看所有标签

猜你喜欢:

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

Mobilizing Web Sites

Mobilizing Web Sites

Layon, Kristofer / 2011-12 / 266.00元

Everyone has been talking about the mobile web in recent years, and more of us are browsing the web on smartphones and similar devices than ever before. But most of what we are viewing has not yet bee......一起来看看 《Mobilizing Web Sites》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码