当前位置: 首页 > news >正文

ELK日志分析系统部署文档

一、ELK说明

ELK是Elasticsearch(ES) + Logstash + Kibana 这三个开源工具组成,官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic

简单的ELK架构

ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。

Kibana: 可以对 Elasticsearch 进行可视化,还可以在 Elastic Stack 中进行导航,这样便可以进行各种操作了,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

Logstash: 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。一般用在日志的搜集、分析、过滤,支持大量的数据获取方式。

Filebeat:收集文件数据。

二、基础环境

1. 准备以下几台机器:

主机

服务器角色

主机系统

软件版本

es-node1

Elasticsearch(搜索引擎)

Centos7

Elasticsearch:7.15.5

es-node2

Elasticsearch(搜索引擎)

Centos7

Elasticsearch:7.15.5

es-node3

Elasticsearch(搜索引擎)

Centos7

Elasticsearch:7.15.5

kibana

Kibana(界面展示)

Centos7

Kibana:7.15.5

logstash

Logstash(日志处理)

Centos7

Logstash:7.15.5

filebeat

Filebeat(日志收集)

Centos7

Filebeat:7.15.5

2. 关闭selinux

3.主机之间同步时间

三、Elasticsearch集群部署

3.1 前提准备

3.1.1 安装包下载

https://www.elastic.co/cn/downloads/past-releases#elasticsearch 进行下载相应的产品版本,点击“Download”后选择需要的方式包进行下载,本文以linux 二进制方式进行部署

3.1.2 创建用户及授权(注:每个节点都需要操作)

ElasticSerach要求以非root身份启动,在每个节点创建用户及用户组

1

2

groupadd elasticsearch

useradd elasticsearch -g elasticsearch

解压安装包并附所属权

tar -xvzf elasticsearch-7.17.5-linux-x86_64.tar.gz -C /home/elasticsearch

chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.5

在每个节点上创建数据data和logs目录:

1

2

mkdir -p /data/elasticsearch/{data,logs}

3.1.3 java环境

配置环境变量

## 在/etc/profile 下添加

## set java environment

JAVA_HOME=/home/elasticsearch/elasticsearch-7.17.5/jdk

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME CLASSPATH

使环境变量生效并验证

1

2

source /etc/profile

java -version

3.1.4 内存不能锁定问题(可选)

1

2

3

4

## 在配置 ElasticSearch 服务过程中,我们一般要设置 bootstrap.memory_lock 为 true,避免内存数据被交换到 SWAP 分区中。

cat /etc/systemd/system.conf |grep DefaultLimitMEMLOCK

## 需要修改为:

DefaultLimitMEMLOCK=infinity

注:需要重启机器

3.1.5 修改vm.max_map_count

修改一个进程可以拥有的VMA(虚拟内存区域)的数量

vim /etc/sysctl.conf 调整:

vm.max_map_count=262144

执行:sysctl -p 生效

3.2 配置

3.2.1 修改elasticsearch配置文件

配置elasticsearch.yml文件说明:

node.name: node-1 #每个节点不一样#节点是否具有成为主节点的资格
node.master: true#节点是否存储数据
node.data: true#ES 数据保存目录
path.data: /data/elasticsearch/data#ES 日志保存目
path.logs: /data/elasticsearch/logs#服务启动的时候锁定足够的内存,防止数据写入
swapbootstrap.memory_lock: true#监听 
IPnetwork.host: 0.0.0.0#监听端口
http.port: 9200#集群中 node 节点发现列表
discovery.seed_hosts: ["10.10.100.110", "10.10.100.111","10.10.100.112"]#集群初始化那些节点可以被选举为 
mastercluster.initial_master_nodes: ["10.10.100.110", "10.10.100.111","10.10.100.112"]#一个集群中的 N 个节点启动后,才允许进行数据恢复处理,默认是 1
gateway.recover_after_nodes: 2####设置是否可以通过正则或者_all 删除或者关闭索引库,
####默认 true 表示必须需要显式指定索引库名称,
####生产环境建议设置为 true,
####删除索引库的时候必须指定,否则可能会误删索引库中的索引库。
action.destructive_requires_name: true

node1节点

1

grep -Ev "^$|^[#;]"  elasticsearch.yml

node2节点

grep -Ev "^$|^[#;]"  elasticsearch.yml

node3节点

1

grep -Ev "^$|^[#;]"  elasticsearch.yml

3.2.2 修改JVM内存限制

1

2

3

4

在vm.options 中调整:

-Xms2g

-Xmx2g #最小和最大内存限制

#官方配置文档最大建议 30G 以内,默认是1G,根据实际情况进行调整

3.2.3 开启跨域访问支持(可选)

1

2

3

4

5

在elasticsearch.yml文件中配置一下2个参数:

#开启支持跨域访问

http.cors.enabled: true

#指定允许访问范围

http.cors.allow-origin: "*"

3.3 启动并验证

1

2

3

## 启动:

su - elasticsearch

./elasticsearch-7.17.5/bin/elasticsearch -d

查看监听端口,分别是9200和9300:

netstat -ant|grep 9200

netstat -ant|grep 9300

浏览器访问查看:

查看集群健康状态:http://IP:9200/_cluster/health?pretty

查看集群详细信息:http://IP:9200/_cluster/state?pretty

查看索引列表:http://IP:9200/_cat/indices?v

四、Kibana部署

本文复用ES的一台机器进行部署,实际环境可以单独部署一台。

4.1 前提准备

4.1.1 安装包下载

在https://www.elastic.co/cn/downloads/past-releases#kibana 进行下载相应的软件版本

4.1.2 创建用户及授权

1

2

groupadd kibana

useradd kibana -g kibana

4.1.3 解压安装包并附所属权

1

tar -xzvf kibana-7.17.5-linux-x86_64.tar.gz -C /home/kibana

chown -R kibana:kibana /home/kibana/kibana-7.17.5-linux-x86_64

4.1.4 创建日志目录并附所属权

1

2

mkdir -p /data/kibana/logs/

chown -R kibana:kibana /data/kibana

4.2 配置

1

grep -Ev "^$|^[#;]" kibana.yml

4.3 启动并验证

使用kibana账号启动

4.3.1 启动

1

2

su - kibana

./kibana-7.17.5-linux-x86_64/bin/kibana --allow-root > /data/kibana/logs/kibana.log &

停止:

kill -9 `lsof -i :5601 -t`

4.3.2 验证

1

2

## 端口验证:

netstat -ant|grep 5601

浏览器验证:http:IP:5601

五、Logstash部署

5.1 准备

5.1.1 安装包下载

通过官网下载链接: https://www.elastic.co/cn/downloads/past-releases#logstash 选择对应的版本

5.1.2 创建数据和日志目录

1

mkdir -p /data/logstash/{logs,data}

5.2 配置

5.2.1 修改logstash配置文件(可以不修改)

1

grep -Ev "^$|^[#;]" logstash.yml

5.2.2 创建监控日志的配置文件

Logstash可以直接采集日志文件;本文采用filebeat收集日志,logstash处理日志
input {beats {port => 5044codec => plain{ charset => "GB2312" }}
}
filter{grok {match => { "message" => "%{TIMESTAMP_ISO8601:logdate}" }}date {match => [ "logdate","ISO8601"]target => "@timestamp"}mutate{remove_field => "logdate"}
}
output {elasticsearch {hosts => ["10.211.55.5:9200"]  # 定义es服务器的ipindex => "emqx-%{+YYYY.MM.dd}" # 定义索引}
}

grep -Ev "^$|^[#;]" logstash.conf

5.3 启动

## 默认端口:9600,执行命令后需要等一会儿启动成功。

./bin/logstash -f config/logstash.conf &

5.4 验证

六、Filebeat部署

6.1准备

官网下载安装包链接:https://www.elastic.co/cn/downloads/past-releases#filebeat ,选择对应版本

6.2 配置

filebeat安装后,只需要配置好监控的日志。包含input和output 等。
filebeat.inputs:
# 第一个输入
- type: log
#是否启用enabled: true# 自定义标签tags: ["qgzhdc-px-data-node"]# 收集日志的文件路径,可以使用通配附*等paths:- /home/bagpipes/emqx/log/emqx.log.*- /home/bagpipes/emqx/log/abc.*.txtencoding: GB2312####fields 自定义字段与值,这个在检索日志时使用,###会给每条日志增加此key与value,能够标识出日志来源。fields:ip: 10.211.55.5# fields_under_root如果为false,则fields下的key会挂到fields下,true的话fields_under_root: truemultiline:type: patternpattern: '^\d{4}-\d{1,2}-\d{1,2}T\d{1,2}:\d{1,2}:\d{1,2}.\d{6}\+\d{1,2}:\d{1,2}'negate: truematch: after
output.logstash:hosts: ["10.211.55.5:5044"]

6.3 启动

1

2

## 后台启动:

nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &

6.4 验证

进程启动验证:

七、完整应用验证

首先所有服务都正常启动。

7.1 Filebeat验证

如何通过filebeat数据正常处理完成并输出符合预期的内容,可以采用输出到控制台进行调试验证,在filebeat.yml配置文件中调整输出为控制台方式:

7.2 Logstash验证

如何通过logstash数据正常处理完成并输出符合预期的内容,可以采用输出到控制台进行调试验证,在logstash.conf 配置文件中调整输出为控制台方式:

7.3 ES验证

通过地址api查看是否有相应的索引自动创建并占用存储:http://IP:9200/_cat/indices?v

7.4 Kibana验证

7.4.1 创建索引模版

按照截图中,进入management 中,选择“stack management”

7.4.2 查看索引

点击“Discover”

进入日志查询界面

相关文章:

ELK日志分析系统部署文档

一、ELK说明 ELK是Elasticsearch(ES) Logstash Kibana 这三个开源工具组成,官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…...

ue5笔记

1 点光源 聚光源 矩形光源 参数比较好理解 (窗口里面)环境光混合器:快速创造关于环境光的组件 大气光源:太阳光,定向光源 天空大气:蓝色的天空和大气 高度雾:大气下面的高度感的雾气 体积…...

TCP重传机制详解

1.什么是TCP重传机制 在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回⼀个确认应答消息,表示已收到消息。 但是如果传输的过程中,数据包丢失了,就会使⽤重传机制来解决。TCP的重传机制是为了保证数据传输的…...

如何使用javascript将商品添加到购物车?

使用JavaScript将商品添加到购物车可以通过以下步骤实现: 创建一个购物车对象,可以是一个数组或者对象,用于存储添加的商品信息。在网页中的商品列表或详情页面,为每个商品添加一个“添加到购物车”的按钮,并为按钮绑…...

【MySQL】:想学好数据库,不知道这些还想咋学

客户端—服务器 客户端是一个“客户端—服务器”结构的程序 C(client)—S(server) 客户端和服务器是两个独立的程序,这两个程序之间通过“网络”进行通信(相当于是两种角色) 客户端 主动发起网…...

1.关于linux的命令

1.关于文件安装的问题 镜像站点服务器:cat /etc/apt/sources.list 索引文件:cd /var/lib/apt/lists 下载文件包存在的路径:cd /etc/cache/apt/archives/2.关于dpkg文件安装管理器的应用: 安装文件:sudo dpkg -i 文件名; 查找文件目录:sudo …...

【人工智能】机器学习 -- 决策树(乳腺肿瘤数)

目录 一、使用Python开发工具,运行对iris数据进行分类的例子程序dtree.py,熟悉sklearn机器实习开源库。 二、登录https://archive-beta.ics.uci.edu/ 三、使用sklearn机器学习开源库,使用决策树对breast-cancer-wisconsin.data进行分类。 …...

【proteus经典实战】LCD滚动显示汉字

一、简介 Proteus是一款功能丰富的电子设计和仿真软件,它允许用户设计电路图、进行PCB布局,并在虚拟环境中测试电路功能。这款软件广泛应用于教育和产品原型设计,特别适合于快速原型制作和电路设计教育。Proteus的3D可视化功能使得设计更加直…...

数据结构复习1

1、什么是集合? 就是一组数据的集合体,就像篮子装着苹果、香蕉等等,这些“水果”就代表数据,“篮子”就是这个集合。 集合的特点: 集合用于存储对象。 对象是确定的个数可以用数组,如果不确定可以用集合…...

订单管理系统需求规范

1. 引言 1.1 目的 本文档旨在明确描述订单管理系统的功能、非功能性需求以及约束条件,以指导系统的分析、设计、开发、测试和部署。 1.2 范围 本系统将支持在线订单处理,从客户下单到完成配送的全过程管理,包括库存管理、支付处理、订单跟…...

swiftui使用ScrollView实现左右滑动和上下滑动的效果,仿小红书页面

实现的效果如果所示,顶部的关注用户列表可以左右滑动,中间的内容区域是可以上下滚动的效果,点击顶部的toolbar也可以切换关注/发现/附近不同页面,实现翻页效果。 首页布局 这里使用了NavigationStack组件和tabViewStyle样式配置…...

深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数

引言 在处理字符串数据时,经常需要根据特定的分隔符来分割字符串或提取字符串的特定部分。MySQL 提供了一个非常有用的函数 SUBSTRING_INDEX 来简化这类操作。本文将详细介绍 SUBSTRING_INDEX 的使用方法、语法,以及通过实际案例来展示其在数据库查询中…...

elementUI在手机端使用遇到的问题总结

之前的博客有写过用vue2elementUI封装手机端选择器picker组件,支持单选、多选、远程搜索多选,最终真机调试的时候发现有很多细节样式需要调整。此篇博客记录下我调试过程中遇到的问题和解决方法。 一、手机真机怎么连电脑本地代码调试? 1.确…...

【初阶数据结构】5.栈和队列

文章目录 1.栈1.1 概念与结构1.2 栈的实现2.队列2.1 概念与结构2.2 队列的实现3.栈和队列算法题3.1 有效的括号3.2 用队列实现栈3.3 用栈实现队列3.4 设计循环队列 1.栈 1.1 概念与结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操…...

高通Android 12 设置Global属性为null问题

1、最近在做app调用framework.jar需求&#xff0c;尝试在frameworks/base/packages/SettingsProvider/res/values/defaults.xml增加属性 <integer name"def_xxxxx">1</integer> 2、在frameworks\base\packages\SettingsProvider\src\com\android\provide…...

Xcode代码静态分析:构建无缺陷代码的秘诀

Xcode代码静态分析&#xff1a;构建无缺陷代码的秘诀 在软件开发过程中&#xff0c;代码质量是至关重要的。Xcode作为Apple的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了强大的代码静态分析工具&#xff0c;帮助开发者在编写代码时发现潜在的错误和问题。…...

Qt各个版本安装的保姆级教程

文章目录 前言Qt简介下载Qt安装包安装Qt找到Qt的快捷方式总结 前言 Qt是一款跨平台的C图形用户界面应用程序开发框架&#xff0c;广泛应用于桌面软件、嵌入式软件、移动应用等领域。Qt的强大之处在于其高度的模块化和丰富的工具集&#xff0c;可以帮助开发者快速、高效地构建出…...

数学建模--优劣解距离法TOPSIS

目录 简介 TOPSIS法的基本步骤 延伸 优劣解距离法&#xff08;TOPSIS&#xff09;的历史发展和应用领域有哪些&#xff1f; 历史发展 应用领域 如何准确计算TOPSIS中的理想解&#xff08;PIS&#xff09;和负理想解&#xff08;NIS&#xff09;&#xff1f; TOPSIS方法在…...

Springboot开发之 Excel 处理工具(三) -- EasyPoi 简介

引言 Springboot开发之 Excel 处理工具&#xff08;一&#xff09; – Apache POISpringboot开发之 Excel 处理工具&#xff08;二&#xff09;-- Easyexcel EasyPoi是一款基于 Apache POI 的高效 Java 工具库&#xff0c;专为简化 Excel 和 Word 文档的操作而设计。以下是对…...

【BUG】已解决:python setup.py bdist_wheel did not run successfully.

已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 目录 已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 【常见模块错误】 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主…...

Java 中如何支持任意格式的压缩和解压缩

&#x1f446;&#x1f3fb;&#x1f446;&#x1f3fb;&#x1f446;&#x1f3fb;关注博主&#xff0c;让你的代码变得更加优雅。 前言 Hutool 是一个小而全的Java工具类库&#xff0c;通过静态方法封装&#xff0c;降低相关API的学习成本&#xff0c;提高工作效率&#xf…...

从零开始实现大语言模型(八):Layer Normalization

1. 前言 Layer Normalization是深度学习实践中已经被证明非常有效的一种解决梯度消失或梯度爆炸问题,以提升神经网络训练效率及稳定性的方法。OpenAI的GPT系列大语言模型使用Layer Normalization对多头注意力模块,前馈神经网络模块以及最后的输出层的输入张量做变换,使shap…...

<数据集>混凝土缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;7353张 标注数量(xml文件个数)&#xff1a;7353 标注数量(txt文件个数)&#xff1a;7353 标注类别数&#xff1a;6 标注类别名称&#xff1a;[exposed reinforcement, rust stain, Crack, Spalling, Efflorescence…...

【LabVIEW作业篇 - 3】:数组相加、for循环创建二位数组、数组练习(求最大最小值、平均值、中位数、提取范围内的数据、排序)

文章目录 数组相加for循环实现直接使用加函数 for循环创建二位数组数组练习 数组相加 要求&#xff1a;用两种方法实现两个数组相加 for循环实现 在前面板中分别创建两个数值类型的一维数组&#xff0c;并设置相应的值&#xff0c;然后在程序框图中创建一个for循环&#xff…...

Unity动画系统(4)

6.3 动画系统高级1-1_哔哩哔哩_bilibili p333- 声音组件添加 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RobotAnimationController : MonoBehaviour { [Header("平滑过渡时间")] [Range(0,3)] publ…...

React基础学习-Day08

React基础学习-Day08 React生命周期&#xff08;旧&#xff09;&#xff08;新&#xff09;&#xff08;函数组件&#xff09; &#xff08;旧&#xff09; 在 React 16 版本之前&#xff0c;React 使用了一套不同的生命周期方法。这些生命周期方法在 React 16 中仍然可以使用…...

Flowable的学习一

今日项目用到了Flowable。简单记录下。 学习中 参考了网上资料&#xff1a; 工作流-Activiti7-基础讲解_activity工作流-CSDN博客 https://juejin.cn/post/7158342433615380517 flowable实战&#xff08;九&#xff09;flowable数据库表中流程实例、活动实例、任务实例三者…...

django-vue-admin项目运行

文本主要对django-vue-admin项目进行了简要介绍&#xff0c;并且对前后端进行了源码安装和运行。在此基础上可作为管理系统二次开发的基础框架。 一.django-vue-admin简介和安装 1.简介 django-vue-admin项目是基于RBAC模型权限控制的中小型应用的基础开发平台&#xff0c;采…...

4. docker镜像、Dockerfile

docker镜像、Dockerfile 一、docker镜像1、镜像介绍2、镜像核心技术 二、Dockerfile定制镜像1、Dockerfile使用流程1.1 编写Dockerfile1.2、构建镜像1.3 创建容器测试镜像定制操作 2、Dockerfile常用指令 三、部署springcloud微服务架构的商品秒杀项目1、部署项目需要的基础服务…...

智能水果保鲜度检测:基于YOLO和深度学习的完整实现

引言 水果新鲜程度直接影响其口感和营养价值。为了提高水果品质管理的效率和准确性&#xff0c;本文介绍了一种基于深度学习的水果新鲜程度检测系统。该系统包括用户界面&#xff0c;利用YOLO&#xff08;You Only Look Once&#xff09;v8/v7/v6/v5模型进行水果新鲜程度检测&…...

做绿色软件的网站知乎/橙子建站官网

[url]http://yp.oss.org.cn/blog/show_resource.php?resource_id1069[/url] 一&#xff0e;准备安装CentOS 61&#xff0e;CentOS简介CentOS 是甚么&#xff1f; CentOS 是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本。每个版本的 CentOS …...

办公空间设计案例ppt免费/淄博seo网站推广

function GetQueryString(param) {var reg new RegExp("(^|&)" param "([^&]*)(&|$)");var r window.location.search.substr(1).match(reg);if (r ! null)return decodeURI(r[2]);return null; }...

吉林网站建站系统哪家好/怎么做百度推广

互信息&#xff08;Mutual Information&#xff09;的介绍...

郑州做音响网站的公司/郑州网络运营培训

Modbus在串行链路上分为Slave和Master&#xff0c;这一节我们就来开发Slave。对于Modbus RTU从站来说&#xff0c;需要实现的功能其实与Modbus TCP的服务器端是一样的。其操作过程也是一样的。首先接收到主站的访问命令&#xff0c;对该命令报文进行解析&#xff0c;这里我们也…...

网站建设和网站开发/seo关键词外包公司

今天的煤矿跟以前最大的区别是什么&#xff1f;答案可以有很多&#xff0c;但有一个变化非常具有代表性&#xff1a;这是一个女孩儿们开始走进煤矿、走向生产一线的时代。以前的煤矿&#xff0c;当然是有女性身影的&#xff0c;她们或许是食堂里做饭的大姐&#xff0c;在某个场…...

商城网站/竞价排名是什么

日前&#xff0c;全球影响力知识产权媒体IPRdaily联合incoPat创新指数研究中心发布“2018年全球金融科技发明专利排行榜&#xff08;TOP20&#xff09;”&#xff0c;数据范围为从2018年1月1日至2018年12月31日&#xff0c;全球企业2018年公开的发明专利申请数量。入榜前三名分…...