ELK日志收集系统集群实验(5.5.0版)

这篇具有很好参考价值的文章主要介绍了ELK日志收集系统集群实验(5.5.0版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、概述

二、组件介绍

1、elasticsearch

2、logstash

3、kibana

三、架构类型

四、ELK日志收集集群实验

1、实验拓扑

2、在node1和node2节点安装elasticsearch

3、启动elasticsearch服务

4、在node1安装elasticsearch-head插件

5、测试输入

6、node1服务器安装logstash

7、logstash日志收集文件格式(默认存储在/etc/logstash/conf.d)

8、node1节点安装kibana

五、配置http节点



前言

ELK是指Elasticsearch、Logstash和Kibana的组合。它们是一套开源的日志收集、存储、搜索和可视化系统,常用于集中管理和分析日志数据。

1. Elasticsearch:一个分布式的实时搜索和分析引擎。它能够处理大规模的数据,并提供快速的搜索、聚合和数据分析功能。

2. Logstash:一个用于日志收集、处理和传输的工具。它支持从多种来源收集日志数据,可以进行数据清洗、转换和过滤,并将数据发送到Elasticsearch等目标存储。

3. Kibana:一个用于数据可视化和分析的工具。它可以通过图表、仪表盘和报表等方式,直观地展示Elasticsearch中的数据,帮助用户理解和分析日志。

ELK日志收集系统的工作流程如下:
1. Logstash配置:在Logstash中配置输入插件,指定日志数据的来源,如文件、网络或消息队列等。
2. 数据处理:通过Logstash的过滤插件对日志数据进行清洗、转换和过滤,使其符合需要,然后将处理后的数据发送到Elasticsearch。
3. 数据存储:Elasticsearch将接收到的日志数据进行索引并存储,以便快速搜索和分析。
4. 数据可视化:使用Kibana创建图表、仪表盘和报表等可视化组件,通过搜索和聚合数据,展示日志数据的统计信息和趋势。
5. 实时搜索和分析:通过Kibana提供的搜索功能,可以实时搜索和分析日志数据,帮助发现问题、监控系统和进行性能优化。

ELK日志收集系统的优点包括:
- 高效处理大规模日志数据:Elasticsearch作为存储和搜索引擎,能够处理大规模的日志数据。
- 灵活的数据处理和过滤:Logstash提供了丰富的插件和过滤器,可以对日志数据进行灵活的处理和转换。
- 直观的数据可视化:Kibana提供了图形化的界面,以直观的方式展示日志数据的统计信息和趋势。
- 实时搜索和分析:ELK系统支持实时搜索和分析,可以帮助快速定位和解决问题。

总之,ELK日志收集系统是一个功能强大的工具组合,可以帮助企业集中管理、存储、搜索和可视化大量的日志数据,提高系统的监控和故障排查能力。


一、概述

1、ELK由三个组件构成Elasticsearch、Logstash和Kibana的组合

日志收集 Logstash
日志分析 Elasticsearch
日志可视化 Kibana

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

二、组件介绍

1、elasticsearch

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

特点:

分布式
零配置
自动发现
索引自动分片
索引副本机制
Restful风格接口
多数据源
自动搜索负载

2、logstash

作用:日志收集 、搜集、分析、过滤日志的工具

工作的过程:

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

inputs(输入)
File:从文件系统的文件中读取,类似于tail -f命令
Syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析
Redis:从redis service中读取
Beats:从filebeat中读取
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数据发送到图形化组件中,踏实一个当前较流行的开源存储图形化展示的组件。
3、kibana

作用:日志可视化

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

三、架构类型

1、ELK
    es
    logstash
    kibana

2、ELKK
    es
    logstash
    kafka
    kibana

3、ELFK
    es
    logstash  重量级 、占用系统资源较多
    filebeat    轻量级、占用系统资源较少
    kibana

4、ELFKK
    es
    logstash
    filebeat
    kafka
    kibana

四、ELK日志收集集群实验

1、实验拓扑

在进行本实验时至少每台主机给到2核4G。不然嘿嘿~~你懂得。

下载地址 https://elasticsearch.cn/download/

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

在node1和node2设置主机名

####分别修改主机名#####
###node1
hostnamectl set-hostname node1
echo "192.168.115.131 node1" "192.168.115.136 node2" >> /etc/hosts
scp /etc/hosts 192.168.115.136:/etc/hosts
bash
###node2
hostnamectl set-hostname node2
bash
######测试通联#######
###node1
ping node2
###node2
ping node1

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

2、在node1和node2节点安装elasticsearch

2.1、首先检查Java环境Java-version,如果没有就装一个yum install -y java-1.8.0-openjdkELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

2.2、安装elasticsearch

如下所示这是本次实验用到的安装包

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

##安装elasticsearch
rpm -ivh elasticsearch-5.5.0.rpm
##配置
vim /etc/elasticsearch/elasticsearch.yml
###进去解开注释
cluster.name:my-elk-cluster  #集群名称   
node.name:node1              #节点名字
path.data: /var/lib/elasticsearch      #数据存放路径
path.logs:/var/log/elasticsearch/   #日志存放路径
bootstrap.memory_lock:false           #在启动的时候不锁定内存
network.host:192.168.115.131                  #提供服务绑定的IP地址,0.0.0.0代表所有地址
http.port:9200                        #侦听端口为9200
discovery.zen.ping.unicast.hosts:["node1","node2"] #群集发现通过单播实现
###同理安装node2的elasticsearch
###把这份配置文件传输给node2,修改一下节点名字和IP就好了
scp /etc/elasticsearch/elasticsearch.yml 192.168.115.136:/etc/elasticsearch/elasticsearch.yml
3、启动elasticsearch服务

3.1、启动命令systemctl start elasticsearch.service

node1ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

node2ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

3.2、浏览器访问查看节点信息

192.168.115.131:9200

192.168.115.136
:9200

查看集群健康状态:192.168.115.131:9200/cluster/health

                                192.168.115.136:9200/cluster/health

Green 健康   yellow  警告    red  集群不可用,严重错误

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

4、在node1安装elasticsearch-head插件
####编译安装
cd elk

tar xf node-v8.2.1.tar.gz

cd node-v8.2.1

./configure && make && make install
###等待安装完毕。安装完毕后会生成命令:npm
###拷贝命令
cd elk
tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs  /usr/local/bin
##安装elasticsearch-head
cd elk
tar xf elasticsearch-head.tar.gz 
cd elasticsearch-head
npm install

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

###修改elasticsearch配置文件node1、2都要改
vim /etc/elasticsearch/elasticsearch.yml
 # Require explicit names when deleting indices:
#
#action.destructive_requires_name:true 
http.cors.enabled: true  //开启跨域访问支持,默认为false
http.cors.allow-origin: "*"  //跨域访问允许的域名地址

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器​4.1、重启服务: systemctl restart elasticsearch两个节点都检查一下9200端口起来了吗

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

###启动elasticsearch-head
cd /root/elk/elasticsearch-head
npm run start &
##查看监听: netstat -anput | grep :9100

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器4.2、访问192.168.115.136:9100

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

5、测试输入

5.1、curl  -XPUT  '192.168.115.131:9200/index-demo/test/1?pretty&pretty' -H  'Content-Type: application/json' -d '{"user":"hy","mesg":"hello"}

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

访问192.168.115.131:9100可以看到我们的测试数据 “hy hello”

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

6、node1服务器安装logstash
cd  elk
rpm -ivh logstash-5.5.1.rpm
systemctl start logstash.service
In -s /usr/share/logstash/bin/logstash  /usr/local/bin/

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

测试1: 标准输入与输出logstash -e 'input{ stdin{} }output { stdout{} }'

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

测试2: 使用rubydebug解码logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug }}'ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

测试3:输出到elasticsearch

logstash -e 'input { stdin{} } output { elasticsearch{ hosts=>["192.168.115.131:9200"]} }'

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

OK,测试完了,我们去192.168.115.131:9100查看一下ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

elasticsearch已经在分析了,这就是测得内容而且多了一个索引了

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

7、logstash日志收集文件格式(默认存储在/etc/logstash/conf.d)

7.1、介绍

Logstash配置文件基本由三部分组成:input、output以及 filter(根据需要)。标准的配置文件格式如下:
input (...)  输入
filter {...}   过滤
output {...}  输出
在每个部分中,也可以指定多个访问方式。例如,若要指定两个日志来源文件,则格式如下:
input {
file{path =>"/var/log/messages" type =>"syslog"}
file { path =>"/var/log/apache/access.log"  type =>"apache"}
}

7.2、配置

通过logstash收集系统信息日志

##因为要收集日志,root用户可以操作,其他用户是没权限的,所以加个读取的权限,否则是收集不到日志的
chmod o+r /var/log/messages

vim /etc/logstash/conf.d/system.conf  
##system.conf是自定义的因为我搜集的是系统日志,若其他的应用的话可以取对应的名字来作为区分
##插入
input {
file{                          ##类型:文件
path =>"/var/log/messages"     ##系统日志文件路径
type => "system"               ##类型自定义
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.115.131:9200"]   ##给谁处理
index => "system-%{+YYYY.MM.dd}" ##自定义索引
}
}

重启日志服务: systemctl restart logstash

浏览器查看 192.168.115.131:9100ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

8、node1节点安装kibana

8.1、安装配置

####安装kibana
cd elk
rpm -ivh kibana-5.5.1-x86_64.rpm
##配置kibana
vim /etc/kibana/kibana.yml
server.port:5601                          #Kibana打开的端口
server.host:"0.0.0.0"                     #Kibana侦听的地址
elasticsearch.url: "http://192.168.115.131:9200"  #和Elasticsearch 建立连接
kibana.index:".kibana"  #在Elasticsearch中添加.kibana索引

##启动kibana
systemctl start kibana

8.2、访问kibana

访问192.168.115.131:9100ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

访问192.168.115.131:5601  可以添加索引,可以添加上图中有的索引ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

这里我添加一个系统的索引ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

五、配置http节点

1、配置192.168.115.140的http服务

yum -y install httpd
systemctl start httpd
netstat -anput | grep 80

访问httpdELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

2.在此节点上配置我们的logstash来收集我们的http服务器的访问日志

http访问日志的路径/var/log/httpd/access_log

##安装logstash
rpm -ivh logstash-5.5.1.rpm

3、修改配置文件

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.131:9200"]   ##给谁处理
index => "httpd-%{+YYYY.MM.dd}" ##自定义索引
}
}

启动日志收集systemctl start logstash.service

使用logstash命令导入配置:

创建软连接In -s /usr/share/logstash/bin/logstash  /usr/local/bin/

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

4、访问192.168.115.131:9200

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

kibana 192.168.115.131:5601ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

查看httpd的访问日志情况

ELK日志收集系统集群实验(5.5.0版),elk,linux,运维,服务器

OK,至此实验结束文章来源地址https://www.toymoban.com/news/detail-694035.html

到了这里,关于ELK日志收集系统集群实验(5.5.0版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ELK (一)部署ELK+Filebeat日志收集分析系统

    说明:此安装流程只适用于8.0.0以下的版本 1.1 下载ElasticSearch的wget指令: 1.2 解压安装包到指定目录 指定解压缩到 /usr/local 目录下 1.3 修改配置文件 (1)elasticsearch.yml 分别创建 path.data、path.logs 对应的 data、logs文件夹。 详细配置: (2)limits.conf 末尾追加以下内容: (3)s

    2024年02月08日
    浏览(48)
  • ELK---日志收集系统

    1.要收集哪些日志? ①系统日志–为监控做准备 ②服务日志–数据库–MySQL–慢查询日志、错误日志、普通日志 ③业务日志–log4j( 必须要收集的是业务日志 ) 注:log4j—Java类的数据业务日志 (1)要有针对性的去收集 (2)调整日志级别 2.日志收集后,如何展示?(可视化

    2023年04月08日
    浏览(39)
  • 【ELK日志收集系统】

    目录 一、概述 1.作用 2.为什么使用? 二、组件 1.elasticsearch 1.1 作用 1.2 特点 2.logstash 2.1 作用 2.2 工作过程 2.3 INPUT 2.4 FILETER 2.5 OUTPUTS 3.kibana 三、架构类型 1.ELK 2.ELKK 3.ELFK 4.ELFKK 四、案例 - 构建ELK集群 1.环境配置 2.安装node1与node2节点的elasticsearch 2.1 安装 2.2 配置 2.3 启动ela

    2024年02月10日
    浏览(38)
  • ELK日志收集系统

    ELK由三个组件构成 作用:日志收集 日志分析 日志可视化     日志分析     开源的日志收集、分析、存储程序     特点         分布式         零配置         自动发现         索引自动分片         索引副本机制         Restful风格接口         多数据源

    2024年02月10日
    浏览(37)
  • ELK日志收集系统(四十九)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、组件 1. elasticsearch 2. logstash 2.1 工作过程 2.2 INPUT 2.3  FILETER 2.4  OUTPUTS 3. kibana 三、架构类型 3.1 ELK 3.2 ELKK 3.3 ELFK 3.5 EFK 四、案例 ELK日志收集系统是一种常用的开源系统,由三个主

    2024年02月10日
    浏览(42)
  • ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示

    大致流程:将nginx 服务器(web-filebeat)的日志通过filebeat收集之后,存储到缓存服务器kafka,之后logstash到kafka服务器上取出相应日志,经过处理后写入到elasticsearch服务器并在kibana上展示。 一、集群环境准备 二、搭建zookeeper集群 前提条件:三台机器分别修改时区、关闭防火墙

    2024年02月04日
    浏览(48)
  • ELK+Kafka+Zookeeper日志收集系统

    节点IP 节点规划 主机名 192.168.112.3 Elasticsearch + Kibana + Logstash + Zookeeper + Kafka + Nginx elk-node1 192.168.112.3 Elasticsearch + Logstash + Zookeeper + Kafka elk-node2 192.168.112.3 Elasticsearch + Logstash + Zookeeper + Kafka + Nginx elk-node3 修改主机名 配置映射 安装Elasticserach 三台主机都需安装java及elasticserach 启动

    2024年04月18日
    浏览(66)
  • ELK 日志系统收集K8s中日志

    • K8s弹性伸缩性:导致不能预先确定采集的目标 • 容器隔离性:容器的文件系统与宿主机是隔离,导致日志采集器读取日志文件受阻。 应用程序日志记录体现方式分为两类: • 标准输出:输出到控制台,使用kubectl logs可以看到。 例如 nginx日志是将访问日志输出到标准输出

    2024年02月09日
    浏览(33)
  • 【分布式技术】ELK大型日志收集分析系统

    目录 步骤一:完成JAVA环境部署 步骤二:部署ES节点(三台主机) 步骤三:内核参数修改 步骤四:web端查看验证 步骤五:yum安装nginx  步骤六:完成logstash部署 步骤七:部署kibana  步骤八:测试ELK

    2024年01月20日
    浏览(46)
  • 部署ELK+Kafka+Filebeat日志收集分析系统

    ELK是三个软件的统称,即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都先后归于Elastic.co企业名下,故被简称为ELK协议栈。ELK主要用于部署在企业架构中,收集多台设备上多个服务的日志信息,并将其统一整合后提供给用户。

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包