ELK日志收集系统

目录

一、概述

二、组件

一、logstash

一、工作过程

二、INPUT

三、FILETER

四、OUTPUTS

二、elasticsearch

三、kibana

三、架构类型

一、ELK

二、ELKK

三、ELFK

四、ELFKK

五、EFK

四、配置ELK日志收集系统集群实验的步骤文档

五、配置ELK日志收集系统集群

一、开启三台机器

二、两台机器分别设置 hosts 文件

三、两台机器分别安装 elasticsearch 、Java环境

四、测试通讯性

五、配置文件更改

六、启动服务并查看状态

七、验证

八、查看集群健康状态

九、健康检查颜色解析

十、安装包

十一、修改配置文件

十二、启动服务

十三、网页验证及内容验证

十四、安装包

十五、三种测试

十六、网页验证

十七、logstash日志收集

十八、更改配置文件

十九、网页验证

二十、安装kibana

二十一、更改配置文件

二十二、验证

二十三、企业案例、安装httpd 和 logstash

二十四、配置文件

二十五、建立一个软连接

二十六、导入配置

二十七、输入索引验证


一、概述

ELK由三个组件构成

  1. Elasticsearch:Elasticsearch 是一个基于 Lucene 的开源搜索和分析引擎。它可以实时存储、检索和分析大量数据。Elasticsearch 提供了分布式的搜索和分析能力,支持高可用和可伸缩性。

  2. Logstash:Logstash 是一个用于收集、处理和转发日志和事件数据的开源工具。它可以从各种来源(如文件、数据库、消息队列等)收集数据,并进行过滤、转换和传输到 Elasticsearch 或其他目的地。

  3. Kibana:Kibana 是一个基于 Web 的用户界面,用于可视化和分析 Elasticsearch 中的数据。它提供了丰富的图表、仪表板和搜索功能,使用户可以轻松地查询和探索数据,并创建交互式的数据可视化。

这三个组件结合在一起,构成了一个功能强大的日志和数据分析平台。Logstash 用于收集和处理数据,Elasticsearch 用于存储和分析数据,而 Kibana 则提供了用户友好的界面,方便用户查询和可视化分析数据。

作用

日志收集、分析、可视化

为什么会使用elk

日志对于分析系统、应用的状态十分重要,但一般日志的量会比较大,并且比较分散。

如果管理的服务器或者程序比较少的情况我们还可以逐一登录到各个服务器去查看、分析。但如果服务器或者程序的数量比较多了之后这种方法就显得力不从心。基于此,一些集中式的日志系统也就应用而生。目前比较有名成熟的有,Splunk(商业)、FaceBook 的Scribe、Apache的Chukwa Cloudera的Fluentd、还有ELK等等。

二、组件

一、logstash

日志收集

搜集、分析、过滤日志的工具

一、工作过程

一般工作方式为c/s架构,Client端安装在需要收集日志的服务器上,Server端负责将收到的各节点日志进行过滤、修改等操作,再一并发往Elasticsearch上去

Inputs → Filters → Outputs

输入-->过滤-->输出

二、INPUT

File:从文件系统的文件中读取,类似于tail -f命令

Syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析

Redis:从redis service中读取

Beats:从filebeat中读取

ELK日志收集系统_第1张图片

三、FILETER

Grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。

官方提供的grok表达式:logstash-patterns-core/patterns at main · logstash-plugins/logstash-patterns-core · GitHub

Grok在线调试:Grok Debugger

Mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。

Drop:丢弃一部分Events不进行处理。

Clone:拷贝Event,这个过程中也可以添加或移除字段。

Geoip:添加地理信息(为前台kibana图形化展示使用)

四、OUTPUTS

Elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。
File:将Event数据保存到文件中。

Graphite:将Event数据发送到图形化组件中,踏实一个当前较流行的开源存储图形化展示的组件。

二、elasticsearch

日志分析

开源的日志收集、分析、存储程序

特点

分布式

零配置

自动发现

索引自动分片

索引副本机制

Restful风格接口

多数据源

自动搜索负载

三、kibana

日志可视化        Grafana

为Logstash和ElasticSearch在收集、存储的日志基础上进行分析时友好的Web界面,可以帮助汇总、分析和搜索重要数据日志。

三、架构类型

一、ELK

es        logstash      kibana

二、ELKK

es        logstash      kafka      kibana

三、ELFK

es       logstash (重量级  占用系统资源较多) 

filebeat (轻量级  占用系统资源较少)   kibana

四、ELFKK

es       logstash       filebeat       kafka       kibana

五、EFK

es       logstash       fluentd       kafka       kibana

四、配置ELK日志收集系统集群实验的步骤文档

软件包(完成集群操作需要如下软件包,注意此集群,不支持中文,所以碰到中文的地方要改正,配置文件也是一样,此集群相当耗费配置和内存,建议最少要赋予2核4G,否则会出现内存已满死机的状态

ELK日志收集系统_第2张图片

按下方流程操作即可成功配置日志收集系统

ELK日志收集系统_第3张图片

ELK日志收集系统_第4张图片

ELK日志收集系统_第5张图片

ELK日志收集系统_第6张图片

ELK日志收集系统_第7张图片

ELK日志收集系统_第8张图片

ELK日志收集系统_第9张图片ELK日志收集系统_第10张图片

五、配置ELK日志收集系统集群

一、开启三台机器

第一台机器 IP 192.168.115.7 作为node节点1

第二台机器 IP 192.168.115.6 作为node节点2

第三台机器 IP 192.168.115.8 作为服务器访问

首先

将两台节点机器 主机分别改名为 node1 和 node2

ELK日志收集系统_第11张图片

软件包(完成集群操作需要如下软件包,注意此集群,不支持中文,所以碰到中文的地方要改正,配置文件也是一样,此集群相当耗费配置和内存,建议最少要赋予2核4G,否则会出现内存已满死机的状态

ELK日志收集系统_第12张图片

二、两台机器分别设置 hosts 文件

node1

vim /etc/hosts

ELK日志收集系统_第13张图片

node2

ELK日志收集系统_第14张图片

三、两台机器分别安装 elasticsearch 、Java环境

ELK日志收集系统_第15张图片

node1

ELK日志收集系统_第16张图片

ELK日志收集系统_第17张图片

ELK日志收集系统_第18张图片

node2 显示结果一样

四、测试通讯性

第一台服务 ping node2

第二台服务 ping node1  查看是否成功通信

ELK日志收集系统_第19张图片ELK日志收集系统_第20张图片

ELK日志收集系统_第21张图片

注意,编译安装时间相当长,要有心理准备

五、配置文件更改

来到node1 配置  配置文件

ELK日志收集系统_第22张图片

vim /etc/elasticsearch/elasticsearch.yml

更改如下配置文件内容

ELK日志收集系统_第23张图片

ELK日志收集系统_第24张图片

ELK日志收集系统_第25张图片

ELK日志收集系统_第26张图片

更改完成后 重启服务 并将配置文件拷贝到 第二台机器 192.168.115.6 

ELK日志收集系统_第27张图片

来到第二台机器更改配置文件

ELK日志收集系统_第28张图片

ELK日志收集系统_第29张图片

六、启动服务并查看状态

重启服务,加载程序,设置开机自启

ELK日志收集系统_第30张图片

两边成功启动后,查看状态

ELK日志收集系统_第31张图片

ELK日志收集系统_第32张图片

七、验证

来到网站验证 查看节点信息

第一台结果

ELK日志收集系统_第33张图片

第二台结果

ELK日志收集系统_第34张图片

八、查看集群健康状态

验证

node1

ELK日志收集系统_第35张图片

node2

ELK日志收集系统_第36张图片

九、健康检查颜色解析

ELK日志收集系统_第37张图片

这个URL是Elasticsearch的健康检查接口。当你访问`http://192.168.115.6:9200/_cat/health`时,它将返回有关Elasticsearch集群的健康状态信息。

具体来说,以下是URL中的不同部分的含义:

- `http://`:这是用于指定使用HTTP协议进行通信的URL的前缀。
- `192.168.115.6`:这是Elasticsearch集群的主机名或IP地址。
- `9200`:这是Elasticsearch集群的HTTP REST API的默认端口。
- `/_cat/health`:这是指定要获取Elasticsearch集群健康状况的特殊端点。

通过访问该URL,你可以获取有关Elasticsearch集群健康状况的详细信息,如集群名称、节点数量、分片数量、节点状态等。健康状态信息通常以表格形式呈现,提供了对集群整体运行状况的快速了解。

健康状态的输出通常有以下几个字段:
- `epoch`:表示健康状态请求的时间戳。
- `timestamp`:显示日期和时间戳。
- `cluster`:显示集群名称。
- `status`:表示集群的整体状态,有`green`(绿色,表示健康状态)、`yellow`(黄色,表示有一些分片不可用)、`red`(红色,表示有严重问题)三种状态。
- `node.total`:显示集群中节点的总数。
- `node.data`:显示具有数据的节点数。
- `shards`:显示集群中总分片数量。
- `pri`:显示主分片数量。
- `rep`:显示副本分片数量。

ELK日志收集系统_第38张图片

根据你提供的URL `http://192.168.115.6:9200/_cat/health?v' --color`,其中的`v`和`--color`是一些参数,可以用于改变输出的格式和显示颜色。

- `v`参数是用于显示更详细的信息,例如节点的IP地址、分片的状态等。它提供了更具体的健康状态报告。
- `--color`参数是用于在终端中显示带有颜色的输出,以提高可读性。

因此,当你访问`http://192.168.115.6:9200/_cat/health?v' --color`时,它将返回对应Elasticsearch集群的健康状态信息,并以详细的形式呈现,并且终端中的输出将以带有颜色的方式显示。

请注意,这个URL在浏览器中打开可能不会显示预期的结果,因为浏览器通常不会显示控制台的颜色和格式化,所以它最适合在命令行终端中使用。

进入var下

less my-application.log

less my-application.log是一个命令,用于在终端中查看名为my-application.log的日志文件的内容。

当你执行less my-application.log时,终端上将显示文件的内容,并且你可以通过按键进行浏览和搜索。下面是一些常用的按键命令:

  • 使用上下箭头键或Page Up/Page Down键来上下滚动文件。
  • /键后输入关键字可进行搜索。按n键跳到下一个匹配项,按N键跳到上一个匹配项。
  • 输入q键来退出less的浏览。

通过使用less my-application.log命令,你可以方便地在终端中查看和浏览日志文件的内容,对于调试和故障排除非常有用。

十、安装包

在节点1上安装

ELK日志收集系统_第39张图片

ELK日志收集系统_第40张图片

ELK日志收集系统_第41张图片

ELK日志收集系统_第42张图片

ELK日志收集系统_第43张图片

十一、修改配置文件

两台服务更改配置文件

ELK日志收集系统_第44张图片

ELK日志收集系统_第45张图片

十二、启动服务

更改后启动服务

输入后,等他自己完成,在进行下一步操作(有点慢)

ELK日志收集系统_第46张图片

查看监听端口号 (成功启动)

十三、网页验证及内容验证

来到网页验证

ELK日志收集系统_第47张图片

将 localhost 改成 node1的IP

则成功可以查看到配置的两个节点 (集群健康值显示,正常)

ELK日志收集系统_第48张图片

ELK日志收集系统_第49张图片

输入内容 进行验证

ELK日志收集系统_第50张图片

curl  -XPUT  'localhost:9200/index-demo/test/1?pretty&pretty' -H  'Content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

如下图显示则说明正常  将localhost 改为ip

来到网页验证

ELK日志收集系统_第51张图片

ELK日志收集系统_第52张图片

说明成功添加

十四、安装包

ELK日志收集系统_第53张图片

ELK日志收集系统_第54张图片

ELK日志收集系统_第55张图片

十五、三种测试

ELK日志收集系统_第56张图片

测试一

输入 hello 会给回应

测试二

ELK日志收集系统_第57张图片

测试三 

ELK日志收集系统_第58张图片

十六、网页验证

来到网页验证 (多了一个索引)

ELK日志收集系统_第59张图片

十七、logstash日志收集

ELK日志收集系统_第60张图片

ELK日志收集系统_第61张图片

十八、更改配置文件

授权并编写配置文件

ELK日志收集系统_第62张图片

input {
file{
path =>"/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.115.7:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
 

ELK日志收集系统_第63张图片

重启服务

systemctl restart logstash.service

十九、网页验证

网页验证 (多了一个system)

ELK日志收集系统_第64张图片

ELK日志收集系统_第65张图片

二十、安装kibana

ELK日志收集系统_第66张图片

安装 kibana

ELK日志收集系统_第67张图片

二十一、更改配置文件

进入配置文件更改

ELK日志收集系统_第68张图片ELK日志收集系统_第69张图片

重启并查看监听端口

ELK日志收集系统_第70张图片

二十二、验证

网页验证 可成功访问

ELK日志收集系统_第71张图片

如下图显示则为成功

ELK日志收集系统_第72张图片

ELK日志收集系统_第73张图片

如果搜索不到则提示

ELK日志收集系统_第74张图片

二十三、企业案例、安装httpd 和 logstash

ELK日志收集系统_第75张图片

来到第三台服务器 192.168.115.8

yum 安装 httpd

ELK日志收集系统_第76张图片

ELK日志收集系统_第77张图片

二十四、配置文件

 vim /etc/logstash/conf.d/httpd.conf 更改配置文件没有则创建

input {
file{
path =>"/var/log/httpd/access_log"
type => "access"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.115.7:9200"]
index => "httpd_access-%{+YYYY.MM.dd}"
}
}

ELK日志收集系统_第78张图片

二十五、建立一个软连接

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

开启httpd服务

二十六、导入配置

logstash -f  /etc/logstash/conf.d/httpd.conf

二十七、输入索引验证

输入索引 则成功查看

ELK日志收集系统_第79张图片

ELK日志收集系统_第80张图片

ELK日志收集系统_第81张图片

到现在为止,ELK日志收集系统集群成功创建

你可能感兴趣的:(elk)