ELK、ELFK企业级日志分析系统

目录

一、ELK简介

1、什么是ELK

2、ELK工作原理及过程​编辑

3、ELK相关名词介绍

①Elasticsearch介绍

②Logstash介绍

③Kibana介绍

④Fluentd介绍

⑤Filebeat介绍

二、ELK部署

1、实验环境

2、安装elasticsearch

3、安装logstash

​编辑4、安装kiabana

​编辑 5、监控apache日志

三、ELFK部署

1、实验环境

2、部署filebeat

3、logstash配置及验证 

四、ELK及ELFK排错思路

1、filebeat侧排查

2、logstash侧排查

3、ES、kibana侧问题


一、ELK简介

1、什么是ELK

ELK日志分析系统:由3个组件组成 Elasticesearch、Kiabana、Logstash完成更强大的用户对日志的查询排序和统计需求

日志服务器作用:提高安全性、集中存放日志、

缺陷:对日志分析困难

2、ELK工作原理及过程

①、将日志进行集中化管理,从消息队列进入logstash

②、logstash将日志进行过滤、格式化并输出到Elasticsearch

③、Elasticsearch对格式化的数据进行索引和存储

④、Kibana从Elasticsearch中获取数据进行前端数据的展示

3、ELK相关名词介绍

①Elasticsearch介绍

基于Lucenne(全文搜索引擎的架构)分布式多用户能力的全文搜索引擎、基于JAVA开发、可扩展的,允许进行全文结构化搜索。理解为全局搜索引擎

核心概念:接近实时、集群、节点、索引(库--表--文档记录)、分片和副本、

②Logstash介绍

数据收集引擎,强大的数据处理工具,可以实现数据传输、格式处理、格式化输出、数据输入、数据加工(过滤、改写等)以及数据输出。

作用:数据收集引擎,支持动态的从各种数据源收集数据,对数据进行过滤、分析、丰富统一格式等操作,存储到用户指定的位置,一般发送给elasticsearch。

组件:Shipper、indexer、Boker、search and storage 、web interface

logstash常用命令:

-f:通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash的输入和输出流,可以加载配置文件

-e:从命令中获取,输入、输出后面跟着字符串,此字符串可以被当做logstash的配置,如果为空默认使用stdin输入stdout输出

-t:测试配置文件是否正确然后退出

③Kibana介绍

ES的一个功能强大的数据可视化,提供图形化的web界面流量ES日志数据,汇总分析搜索重要数据。

Filebeat:轻量级的开源日志文件数据收集器。通常在需要采集数据的客户端安装,指定目录与日志格式,filebeat能快速收集数据,发送给logstash或直接发送给ES存储,性能上比运行在JVM上的logstash优势明显。常用于ELFK架构

④Fluentd介绍

流行的开源数据收集器,logstash太重量级的缺点,引入logstash性能低耗费资源少、更易用、性能更高,常用于EFK中

⑤Filebeat介绍

轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中。

二、ELK部署

1、实验环境

节点名ip地址安装软件
node1192.168.30.11elasticsearch、kibana
node2192.168.30.12elasticsearch
apache192.168.30.14apache、logstash

2、安装elasticsearch

node1、node2执行:
systemctl stop firewalld 
setenforce 0 
#关闭防火墙和selinux
cd /opt
将es的rpm安装包上传到/opt目录下
rpm -ivh elasticsearch-5.5.0.rpm 
#安装elasticsearch
systemctl daemon-reload  
#重新加载system管理
systemctl  enable  elasticsearch.service 
#设置服务开机自启
vim /etc/elasticsearch/elasticsearch.yml
#修改elasticsearch配置文件
添加内容:
cluster.name: my-elk-cluster       
#设置es集群名称
node.name: node2						
#设置本机节点名称
path.data: /data/elk_data			
#指定数据存放路径
path.logs: /var/log/elasticsearch 
#指定日志存放路径(固定)
bootstrap.memory_lock: false     
#启动时不锁定内存
network.host: "0.0.0.0"				  
#监听地址所有
http.port: 9200								
#监听端口为9200ES的默认端口
discovery.zen.ping.unicast.hosts: ["node1", "node2"]  
#集群发现通过单播实现,指定要发现的节点名,保存退出
grep -v  "^#"  /etc/elasticsearch/elasticsearch.yml  
#过滤非#开头的行检查配置是否有问题
mkdir  -p /data/elk_data
chown   elasticsearch:elasticsearch  /data/elk_data
#创建数据存放路径并授权
systemctl start elasticsearch.service
netstat -antp | grep 9200
#启动ELK并检查是否启动成功,netstat查看端口会有延迟,可以直接查看服务状态
浏览器验证节点信息网页显示status是green则表示状态正常:
192.168.30.11:9200/_cluster/health?pretty
192.168.30.13:9200/_cluster/health?pretty

3、安装logstash

apache机器执行:
systemctl stop firewalld 
setenforce 0 
#关闭防火墙和selinux
cd /opt
#将logstash的rpm安装包上传到/opt目录下
rpm -ivh logstash-5.5.1.rpm     
#安装logstash
systemctl enable  logstash.service   --now
#设置开机自启logstash并立即启动
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
#配置logstash命令全局可用
chmod +r /var/log/messages
#设置任何人可读此日志
vim /etc/logstash/conf.d/system.conf
#编辑一个新的logstash子配置文件读取
文件内容:
input {
    file{
        path =>"/var/log/messages"						#指定要收集的日志的位置
        type =>"system"									#自定义日志类型标识
        start_position =>"beginning"					#表示从开始处收集
    }
}
output {
    elasticsearch {										#输出到 elasticsearch
        hosts => ["192.168.30.11:9200"]					#指定 elasticsearch 服务器的地址和端口
        index =>"system-%{+YYYY.MM.dd}"					#指定输出到 elasticsearch 的索引格式
    }
}
systemctl restart logstash
#修改 Logstash 配置文件,让其收集系统日志/var/log/messages,并将其输出到 elasticsearch 中。
Logstash 命令常用选项:
-f:通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入和输出流。
-e:从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)。
-t:测试配置文件是否正确,然后退出。
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
www.baidu.com
#测试logstash,输完命令后输入www.baidu.com查看是否会出现下图内容,出现则表示无问题退出即可


4、安装kiabana

node1节点操作:
cd /opt
#上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录
rpm -ivh kibana-5.5.1-x86_64.rpm
#安装kibana
vim /etc/kibana/kibana.yml
添加内容:
server.port: 5601
#监听端口5601
server.host: "0.0.0.0"
#监听地址所有
elasticsearch.url: "http://192.168.30.11:9200" 
#从那台es中获取数据
kibana.index: ".kibana"
systemctl enable kibana.service  --now
netstat -natp | grep 5601
#启动 Kibana 服务
验证 Kibana
浏览器访问 http://192.168.30.11:5601
第一次登录需要添加一个 Elasticsearch 索引:
Index name or pattern
//输入:system-*			#在索引名中输入之前配置的 Output 前缀“system”
单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
数据展示可以分类显示,在“Available Fields”中的“host”,然后单击 “add”按钮,可以看到按照“host”筛选后的结果,如下图

 5、监控apache日志

apache节点:
yum install  -y apache
systemctl start httpd
#安装启动apache并在本机页面访问apache 192.168.30.14
vim /etc/logstash/conf.d/apache_log.conf
#创建一个apache的logstash子配置文件
添加内容:
input {
    file {
        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
    }
    file {
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
    }
}
output {
    if [type] == "access" {
        elasticsearch {
            hosts => ["192.168.30.11:9200"]
            index => "apache_access-%{+YYYY.MM.dd}"
        }
    }
	if [type] == "error" {
        elasticsearch {
            hosts => ["192.168.30.11:9200"]
            index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}
cd /etc/logstash/conf.d/
#进入logstash子配置文件路径
logstash -f apache_log.conf
#热加载新的子配置文件apache
#浏览器访问 http://192.168.30.11:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引, 在索引名中输入之前配置的 Output 前缀 apache_access-*,并单击“Create”按钮。在用相同的方法添加 apache_error-*索引。
选择“Discover”选项卡,在中间下拉列表中选择刚添加的 apache_access-* 、apache_error-* 索引, 可以查看相应的图表及日志信息。

三、ELFK部署

1、实验环境

节点名ip地址安装软件
node1192.168.30.11elasticsearch、kibana
node2192.168.30.12elasticsearch
apache192.168.30.14apache、logstash
pc3192.168.30.13filebeat

2、部署filebeat

pc3新机器上执行:
cd /opt
tar zxvf filebeat-6.2.4-linux-x86_64.tar.gz
#将filebeat压缩包上传到/opt路径下并解压
mv filebeat-6.2.4-linux-x86_64/ /usr/local/filebeat
#解压后的文件夹移动到/usr/local路径下并改名为filebeat
vim /usr/local/filebeat/filebeat.yml
#编辑filebeat配置文件,注意格式
filebeat.prospectors: //filebeat.input:
- type: log         
#指定 log 类型,从日志文件中读取消息
  enabled: true
  paths:
    - /var/log/messages       
#指定监控的日志文件
    - /var/log/*.log
  fields:           #可以使用 fields 配置选项设置一些参数字段添加到 output 中
    service_name: filebeat
    log_type: log
    service_id: 192.168.30.14
#filebeat的地址

--------------Elasticsearch output-------------------
(全部注释掉)

----------------Logstash output---------------------
output.logstash:
  hosts: ["192.168.30.13:5044"]      
#指定 logstash 的 IP 和端口
/usr/local/filebeat/filebeat -e -c filebeat.yml
#启动 filebeat

3、logstash配置及验证 

logstash即apache节点:
cd /etc/logstash/conf.d

vim logstash.conf
input {						
    beats {
        port => "5044"
#输入从5044端口
    }
}
output {					
    elasticsearch {
        hosts => ["192.168.30.11:9200"]
#输出到es中,格式为调用filebeat的变量+年月日
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

#启动 logstash
logstash -f logstash.conf
浏览器访问 http://192.168.30.11:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。

## **20230407**

四、ELK及ELFK排错思路

1、filebeat侧排查

第一步:排查filebeat上的配置文件有没有写错,filebeat的配置文件是yml文件,一定要注意格式。

第二步:查看filebeat上能否telnet通logstash上的5044端口,若ping不通则要查看防火墙和filebeat的配置文件是否指向错误,或者在logstash加载filebeat配置文件时即执行 logstash -f logstash.conf时查看弹出的日志中是否有connection fail或者no route等字样,此2个错误表示防火墙或者5044端口与filebeat不通

2、logstash侧排查

第一步:首先在加载配置文件是查看是否与filebeat成功建立连接,若不成功检查端口5044和防火墙selinux等是否关闭。连接成功截图如下

第二步:查看logstash的日志文件tail -f   -n  50 /var/log/logstash/logstash-plain.log是否有output到ES的字样,连接成功截图如下。若没有output则检查filebeat或logstash自身是否成功采集数据,主要查看配置文件和端口防火墙问题

3、ES、kibana侧问题

第一步:若kibana侧不能创建索引,则需要在ES上查看是否有对应名称的索引,命令如下

curl -X GET "192.168.30.11:9200/_cat/indices/?v" 

#使用时将ip和端口换为自己的ES端口,若索引过多可直接加管道符使用grep过滤名称

第二步:若ES上没有数据,则需要去排查logstash上是否将数据传输过来,若ES上有索引但是kibana创建索引成功后日志显示No results found。则需要调整一下获取的时间,或者访问一下服务产生一些日志即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/6999.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网站是怎么屏蔽脏话的呢:简单学会SpringBoot项目敏感词、违规词过滤方案

一个社区最重要的就是交流氛围与审查违规,而这两者都少不了对于敏感词进行过滤的自动维护措施。基于这样的措施,我们才能基本保证用户在使用社区的过程中,不至于被敏感违规词汇包围,才能够正常的进行发布帖子和评论,享…

unity3d:asset store上C#代码热重载插件,不需要重运行,重新加载更新后函数

C#热重载插件地址 https://assetstore.unity.com/packages/tools/utilities/hot-reload-edit-code-without-compiling-250972?clickref1011lwHg8abv&utm_sourcepartnerize&utm_mediumaffiliate&utm_campaignunity_affiliate#description 打开热重装有两种方法 …

地库位置复杂如何导航,反向寻车系统解决方案

地库位置复杂如何导航?问路这一行为在迷路时确实比较高效,但是得到的信息往往还是过于碎片和混乱,尤其是在停车场内,通过问路去往目的地既费时又费力。而有了停车场地图,这个问题就迎刃而解了。停车场地图可以帮助驾车…

金山云最新财报的两个历史新高:毛利创新高,亏损创新高

‍数据智能产业创新服务媒体——聚焦数智 改变商业2023年3月29日,中国领先的独立云服务提供商金山云(美股代码:KC)发布了截至2022年12月31日的四季度财报与年度业绩数据。金山云首席执行官邹涛先生表示:“我们以喜人的…

【IoT】乐鑫WiFI选型指南

目录 1、简介 2、ESP32系列 2.1、ESP32-S2 2.2、ESP32-C3 2.3、ESP32-S3 最近要替换在用的wifi模组,这就涉及到选型。 1、简介 首先来到乐鑫官网:提供 Wi-Fi、蓝牙芯片和 AIoT 解决方案 I 乐鑫科技 可以看到,乐鑫的产品从大的层面分为三…

SpringBoot集成actuator监控服务-自动配置将康检查

前言 SpringBoot监控管理 微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了…

算法设计-搜索

一、BFS 模板 ​ 如下所示 set<Node> visited;bool check(Node son);int bfs(Node start) {// initqueue<Node> q;q.push(start);visited.insert(start);while (!q.empty()){Node front q.front();q.pop();for (son : q.neigbour){// pruneif (check(son)){q.pu…

MySQL教程——基础篇

MySQL教程MySQL教程——基础篇MySQL概述关系型数据库数据模型SQLSQL通用语法SQL数据类型SQL分类DDLDMLDQL基本查询条件查询聚合函数分组查询排序查询分页查询案例训练执行顺序DCL用户管理权限控制函数字符串函数数值函数日期函数流程函数约束概述约束演示外键约束添加外键删除外…

【ChatGPT】ChatGPT 能否取代程序员?

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 前言: ChatGPT 的优势 自然语言的生成 文本自动生成 建立了更人性化的人机交互 ChatGPT 的局限性 算法的解释能力较差 程序的可实现性较差 缺乏优化和质量控制 程序员相较于 …

Spring框架核心功能手写实现

文章目录概要Spring启动以及扫描流程实现基础环境搭建扫描逻辑实现bean创建的简单实现依赖注入实现BeanNameAware回调实现初始化机制模拟实现BeanPostProcessor模拟实现AOP模拟实现概要 手写Spring启动以及扫描流程手写getBean流程手写Bean生命周期流程手写依赖注入流程手写Be…

乐鑫 ESP-IoT-Bridge 方案支持设备灵活入网

观看视频了解 ESP-IoT-Bridge 联网方案乐鑫科技推出 ESP-IoT-Bridge 联网方案&#xff0c;能够为物联网应用场景下的 Wi-Fi、蓝牙、Thread、以太网、MCU 等设备&#xff0c;提供便捷的网络服务。 ESP-IoT-Bridge 以乐鑫 SoC 为载体&#xff0c;通过实现各类网络接口&#xff08…

Java文件IO

目录 一. 文件路径 1.1 绝对路径 1.2 相对路径 二 . 文件操作 2.1 File类 2.2 字符流 Reader/Writer 2.3 字节流 InputStream/OutputStream 三. 实现一个文件的搜索功能 一. 文件路径 1.1 绝对路径 从盘符开始&#xff0c;一层一层往下找&#xff0c;得到的路径是绝对路…

nvm管理node版本粗及

步骤一&#xff1a;清理本地node cmd ——> where node ——> 删除对应文件夹下所有node.exe的父文件夹控制面板 ——> 卸载node步骤二&#xff1a;安装nvm Tags coreybutler/nvm-windows GitHub 下载解压后运行安装exe文件&#xff0c;安装完成后重新cmd打开命令…

Hive3.1.3安装及部署

目录 1 下载地址 2 安装部署 2.1 安装Hive 2.2 启动并使用Hive 2.3 MySQL安装 2.3.1 安装MySQL 2.3.2 配置MySQL 2.3.3 卸载MySQL说明 2.4 配置Hive元数据存储到MySQL 2.4.1 配置元数据到MySQL 2.4.2 验证元数据是否配置成功 2.4.3 查看MySQL中的元数据 2.5 Hive服…

中金支付经历了4个月完成主要出资人前置审批

2023年4月6日&#xff0c;中国人民银行公示了关于中金支付有限公司的《中国人民银行准予行政许可决定书》&#xff08;银许准予决字〔2023〕第41号&#xff09;&#xff0c;同意中金支付有限公司主要出资人由中金金融认证中心有限公司变更为广州广电运通金融电子股份有限公司&a…

Nacos安全性探究

Nacos怎么做安全校验的&#xff1f; 以下使用nacos2.x 如上图所示&#xff0c; 可以直接访问Nacos的接口来获取用户列表。这说明Nacos的接口被爆露&#xff0c;任何情况下都可以访问&#xff0c;因此安全性得不到保障。 Nacos 使用 spring security 作为安全框架。spring sec…

【Mybatis】1—前言日志框架

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

RBF-UKF径向基神经网络结合无迹卡尔曼滤波估计锂离子电池SOC(附MATLAB代码)

目录 RBFNN训练结果 UKF估计SOC 文章的结尾红色部分有彩蛋 RBFNN训练结果 这篇文章主要介绍如何使用RBF神经网络训练出的参数并结合UKF算法完成锂离子电池SOC的估计&#xff0c;有关RBF参数训练过程的代码分析放在2天后的下一篇文章&#xff0c;这里只给出训练完成后的结果…

关于async/await、promise和setTimeout执行顺序

关于async/await、promise和setTimeout执行顺序 async function async1() {console.log(async1 start);await async2();console.log(asnyc1 end); } async function async2() {console.log(async2); } console.log(script start); setTimeout(() > {console.log(setTimeOut…

springboot(01)项目搭建与启动

01&#xff0c;项目搭建与启动 一&#xff0c;项目搭建 有多种方式可以搭建Spring Boot项目&#xff0c;包括&#xff1a; 使用Spring Boot CLI命令行工具使用Spring Initializr网站或IDE插件生成项目模板使用Maven或Gradle手动配置项目 每种方式都有其优缺点&#xff0c;具…
最新文章