ELK搭建

ELK介绍:

ELK是一组开源工具的缩写,它由Elasticsearch、Logstash和Kibana三个组件组成,用于处理、分析和可视化大量日志数据。
在这里插入图片描述

入门级ELK搭建(无Docker环境)

安装前准备

1.获取安装包

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz
https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-linux-x86_64.tar.gz
https://artifacts.elastic.co/downloads/logstash/logstash-7.16.2-linux-x86_64.tar.gz

我将以上三个包统一存放在/usr/local目录下

2.创建用户组及用户

备注:由于elasticsearch不允许使用root启动,创建以下用户及yoghurt组以备用
【添加组】【用户组名】

groupadd elsearch

【添加用户】【用户名】-g【用户组名】-p【密码值】

useradd elsearch -g elsearch -p elsearch

3.统一处理

1)将三个包解压
tar -zxvf elasticsearch-7.16.2-linux-x86_64.tar.gz
tar -zxvf logstash-7.16.2-linux-x86_64.tar.gz
tar -zxvf kibana-7.16.2-linux-x86_64.tar.gz
2)将解压后的目录及权限交给刚创建的elsearch用户
chown -R elsearch:elsearch /usr/local/elasticsearch-7.16.2
chown -R elsearch:elsearch /usr/local/logstash-7.16.2
chown -R elsearch:elsearch /usr/local/kibana-7.16.2-linux-x86_64

一、elasticsearch配置

1.配置

修改配置文件elasticsearch.yml

cd /usr/local/elasticsearch-7.16.2/config
vim elasticsearch.yml

按以下方式进行修改:

#集群名称(按实际需要配置名称)
cluster.name: chy-elasticsearch
#节点名称
node.name: node-1
#数据路径(按实际需要配置日志地址)
path.data: /usr/local/elasticsearch-7.16.2/data
#日志路径(按实际需要配置日志地址)
path.logs: /usr/local/elasticsearch-7.16.2/logs
#地址(通常使用内网进行配置)
network.host: 127.0.0.1
#端口号
http.port: 18201
#节点地址
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
#集群master
cluster.initial_master_nodes: ["node-1"]
#跨域(这两项配置手动添加一下)
http.cors.enabled: true 
http.cors.allow-origin: "*"

2.启动

cd /usr/local/elasticsearch-7.16.2/bin
nohup ./elasticsearch >/dev/null &

3.观察是否启动

观察日志判断elasticsearch 是否启动

cd /usr/local/elasticsearch-7.16.2/logs
tail -fn 100 /usr/local/elasticsearch-7.16.2/logs/chy-elasticsearch.log

注:上面这条语句结尾的‘chy-elasticsearch.log’为配置中的cluster.name的值

二、logstash配置

1.配置文件准备

修改配置文件logstash-sample.conf

cd /usr/local/logstash-7.16.2/config

cd /usr/local/logstash-7.16.2/config
···
cp logstash-sample.conf logstash.conf
···

2.修改配置

vim logstash.conf

注意:为了方便解释含义,以下包含注释‘#’的行请手动去除

input {#配合使用filebeats的端口,可忽略beats {port => 5044}#logstash向elasticsearch 传输数据端口tcp{port => 5701codec =>"json"}
}#以下配置为创建用户索引及默认索引情况
output {if[appname] != "" {elasticsearch {hosts => ["http://127.0.0.1:9200"]index => "%{[appname]}-%{+YYYY.MM.dd}"}} else {elasticsearch {hosts => ["http://127.0.0.1:9200"]index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"}}
}

3.启动

cd /usr/local/logstash-7.16.2/bin
nohup ./logstash -f /usr/local/logstash-7.16.2/config/logstash.conf >../logs/logstash.log &

4.观察是否启动

查看日志检查logstash是否成功启动

cd /usr/local/logstash-7.16.2/logs
tail -fn 100 logstash.log

三、kibana配置

1.修改配置文件

cd /usr/local/kibana-7.16.2-linux-x86_64/config
vim kibana.yml

按以下进行配置

#服务端口(按实际需求)
server.port: 18501
#服务主机(这里是服务器内网地址)
server.host: "172.16.176.60"
#服务名(按实际需求)
server.name: "chy-Kibana"
#elasticsearch地址
elasticsearch.hosts: ["http://127.0.0.1:18201"]
#设置简体中文
i18n.locale: "zh-CN"

2.启动

cd /usr/local/kibana-7.16.2-linux-x86_64/bin
nohup ./kibana >/dev/null &

3.观察是否启动

浏览器打开:http://{kibana服务器IP}:{端口}/app/home
例如:http://192.168.1.120:18501/app/home
出现kibana首页则表明启动成功

Docker中搭建ELK系统

前言

1.需要准备一台linux服务器(最好是CentOS7),内存至少4g以上(三个组件都比
较占用内存)
2.需要有docker使用经验

1 docker安装ElasticSearch

这里先创建一个网络:因为我们还需要部署kibana容器、logstash容器,需要让这些容器互联。

docker network create elk-net

这里ElasticSearch采用的是7.12.1版本
在docker中搜索和下载对应的镜像

#搜索镜像
docker search elasticsearch
#下载镜像
docker pull elasticsearch:7.12.1

有了镜像以后,可以直接创建对应的容器,命令如下:

docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugins:/usr/share/elasticsearch/plugins \--privileged \--network elk-net \-p 9200:9200 \-p 9300:9300 \
elasticsearch:7.12.1

命令解释:

-e "cluster.name=es-docker-cluster" :设置集群名称
-e "http.host=0.0.0.0" :监听的地址,可以外网访问
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" :内存大小
-e "discovery.type=single-node" :非集群模式
-v es-data:/usr/share/elasticsearch/data :挂载逻辑卷,绑定es的数据目录
-v es-logs:/usr/share/elasticsearch/logs :挂载逻辑卷,绑定es的日志目录
-v es-plugins:/usr/share/elasticsearch/plugins :挂载逻辑卷,绑定es的插件目录
--privileged :授予逻辑卷访问权
--network elk-net :加入一个名为es-net的网络中
-p 9200:9200 :端口映射配置

在浏览器中输入:http://192.168.200.130:9200 (按照自己的ip访问)即可看到elasticsearch的响应结果:

2 docker安装kibana

创建容器(如果不提前下载好,在创建容器时,会先下载,然后创建容器)

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
-e "I18N_LOCALE=zh-CN" \
--network=elk-net \
-p 5601:5601  \
kibana:7.12.1

命令解释:

--network elk-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200" :设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
-p 5601:5601 :端口映射配置

此时,在浏览器访问:http://192.168.200.130:5601,即可看到结果

3 docker安装logstash

3.1 创建容器

docker run -d -p 5044:5044 -p 9600:9600 --name logstash --
network=elk-net logstash:7.12.1

3.2 修改配置

3.2.1 设置ES的地址

创建完容器之后,需要在容器修改一些配置

#进入容器
docker exec -it logstash /bin/bash

找到config目录中的logstatsh.yml文件
在这里插入图片描述修改里面的内容,设置es服务的地址,如下

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.200.130:9200" ] #设置跟es的服务地址
3.2.2 设置logstash收集日志的输入和输出

进入容器

#进入容器
docker exec -it logstash /bin/bash

找到pipeline目录中的logstatsh.conf文件
在这里插入图片描述修改如下,可以设置数据输入的方式,也可以设置把数据存放到哪里

input {tcp {mode => "server"host => "0.0.0.0"  # 允许任意主机发送日志port => 5044codec => json_lines    # 数据格式}
}output {elasticsearch {hosts  => ["http://192.168.200.130:9200"]   # ElasticSearch 的地址和端口index  => "log-%{+YYYY.MM.dd}"         # 指定索引名,可以根据自己的需求指定命名codec  => "json"}stdout {codec => rubydebug}
}

修改完所有的配置后,需要重启logstash容器

docker restart logstash

其他配置

JAVA中使用(spring boot)

<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>7.0.1</version>
</dependency>

在这里插入图片描述注意以下图片中destination标签,它定义了logstash传输日志的ip及端口号,有两种方式:
1.直接写在标签里面(下图中灰色注释这种)
2.从spring配置中读取(上图中圈起来的springProperty标签),再如下图中通过${**}的方式引入
在这里插入图片描述代码如下:

<springProperty scope="context" name="logstash.destination" source="logstash.destination"/>
<appender name="logStash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><param name="Encoding" value="UTF-8"/><!-- 日志过滤器(参见) --><filter class="com.****.****.common.log.CustomLogFilesFilter"/><!--<destination>101.37.65.233:18401</destination>--><destination>${logstash.destination}</destination><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" ><!-- 索引名appname对应logStash配置中创建的索引 --><customFields>{"appname":"${logback.appname}"}</customFields></encoder>
</appender>
<!-- 最后别忘了这个 -->
<root level="info"><appender-ref ref="logStash" />
</root>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Objective-C 父元素和子元素的点击事件

场景&#xff1a; &#xff08;需求1&#xff09;pageA一开始是【默认模式】&#xff0c;点击父元素view&#xff08;包括【搜索】文字&#xff09;&#xff0c;进入【搜索模式】&#xff1b; &#xff08;需求2&#xff09;在pageA中&#xff0c;点击【取消】文字时&#xff…

如何快速制作一个奶茶店小程序商城

如果你是一个奶茶店的老板&#xff0c;你可能会考虑开设一个小程序商城来增加销售渠道和提升品牌形象。那么&#xff0c;如何快速制作一个奶茶店小程序商城呢&#xff1f;下面我们将介绍一个简单的步骤供你参考。 首先&#xff0c;你需要登录乔拓云平台进入商城后台管理页面。在…

用ChatGPT解析Wireshark抓取的数据包样例

用Wireshark抓取的数据包&#xff0c;常用于网络故障排查、分析和应用程序通信协议开发。其抓取的分组数据结果为底层数据&#xff0c;看起来比较困难&#xff0c;现在通过chatGPT大模型&#xff0c;可以将原始抓包信息数据提交给AI进行解析&#xff0c;本文即是进行尝试的样例…

互联网行业真的不行了吗?

文章目录 前言一、起因二、互联网真的完了吗&#xff1f;三、是不是要转行&#xff1f;四、十年磨一剑五、统一回复 前言 英雄算法联盟 - 七月集训 已经开始 16 天&#xff0c;八月算法集训 将于 08月01日 正式开始&#xff0c;目前已经提前开始报名&#xff0c;报名方式参见&a…

OpenCv之滤波器

目录 一、卷积 二、方盒滤波与均值滤波 三、高斯滤波 四、中值滤波 五、双边滤波 一、卷积 图像卷积就是卷积核在图像上按行华东遍历像素时不断的相乘求和的过程 相关知识点: 步长:就是卷积核在图像上移动的步幅.(为充分扫描图片&#xff0c;步长一般为1)padding:指在图片…

matlab学习指南(1):matlab初步入门详细介绍

&#x1f305;*&#x1f539;** φ(゜▽゜*)♪ **&#x1f539;*&#x1f305; 欢迎来到馒头侠的博客&#xff0c;该类目主要讲数学建模的知识&#xff0c;大家一起学习&#xff0c;联系最后的横幅&#xff01; 喜欢的朋友可以关注下&#xff0c;私信下次更新不迷路&#xff0…

sqlite3交叉编译

1、交叉编译sqllite3可以先从官网下载最新最新的源码进行编译。sqlite3下载sqlite3有两种版本的源代码&#xff0c;sqlite-amalgamation-3420000.zip这种是将所有的操作放到sqlite3中进行使用的。虽然官方推荐使用这种方法。但是对于嵌入式移植还是使用sqlite-autoconf-3420000…

探索基于300W-LP的3D人脸关键点检测

目录 前言一、&#xff13;D 关键点可视化二、使用步骤1.300W-LP转为YOLO数据格式2.修改数据入口3.开始训练 总结 前言 300WLP数据集提供来丰富的人脸线索&#xff0c;包括&#xff12;D或&#xff13;D的关键点信息&#xff0c;Head Angle和&#xff13;DMM的参数等&#xff…

OpenCV中的RGB与YUV转换

1 基本概念 YUV 颜色空间从模拟电视时代开始就被广泛应用于彩色图像的转换与处理。其基于一个 3x3 的矩阵&#xff0c;通过线性变换将 RGB 像素转换为一个亮度&#xff08;Luma&#xff09;分量 Y 以及两个色度&#xff08;Chroma&#xff09;分量 U 和 V。由于模拟电视存在着多…

K8s 为什么要弃用 Docker

K8s 为什么要弃用 Docker 最近在学习容器技术的过程中&#xff0c;看到有关于Kubernetes“弃用 Docker”的事情&#xff0c;担心现在学 Docker 是否还有价值&#xff0c;是否现在就应该切换到 containerd 或者是其他 runtime。 随着深入了解&#xff0c;这些疑虑的确是有些道理…

git 工具使用--分支管理

git 工具使用–分支管理 文章目录 git 工具使用--分支管理理解分支创建分支切换分支合并分支删除分支合并冲突分支管理策略分支策略bug分支删除临时分支总结 理解分支 分支管理是Git的杀手级功能之一。分支&#xff1a;就是科幻中的平行宇宙&#xff0c;当你正在电脑面前学习C…

设计模式-单例模式

面向对象语言讲究的是万物皆对象。通常流程是先定义可实例化类&#xff0c;然后再通过各种不同的方式创建对象&#xff0c;因此类一般可以实例化出多个对象。但是实际项目开发时&#xff0c;我们还是希望保证项目运行时有且仅包含一个实例对象。这个需求场景的出发点包括但不限…

变压器试验介质损耗

试验目的 介质损耗因数 tanδ (% ) 是判断变压器绝缘状态的一种较有效的手段, 主要用来检 查变压器整体受潮、 油质劣化及严重的局部缺陷等, 但不一定能发现变压器局部受潮 等集中性局部缺陷。 试验设备 异频介质损耗测试仪 厂家&#xff1a; 湖北众拓高试 试验接线 (1) 介…

搜索引擎elasticsearch :安装elasticsearch (包含安装组件kibana、IK分词器、部署es集群)

文章目录 安装elasticsearch1.部署单点es1.1.创建网络1.2.加载镜像1.3.运行 2.部署kibana2.1.部署2.2.DevTools2.3 分词问题(中文不友好) 3.安装IK分词器3.1.在线安装ik插件&#xff08;较慢&#xff09;3.2.离线安装ik插件&#xff08;推荐&#xff09;1&#xff09;查看数据卷…

数据结构--哈夫曼树

数据结构–哈夫曼树 带权路径长度 结点的 权 \color{red}权 权:有某种现实含义的数值&#xff08;如:表示结点的重要性等) 结点的带权路径长度 \color{red}结点的带权路径长度 结点的带权路径长度:从树的根到该结点的路径长度(经过的边数&#xff09;与该结点上权值的乘积 树的…

小程序MobX创建store并实现全局数据共享

查看小程序根目录中是否存在package.json文件 在项目根目录运行cmd 没有package.json文件输入npm init -y初始化一下,初始化一个包管理 安装MobX npm install --save mobx-miniprogram4.13.2 mobx-miniprogram-bindings1.2.1 小程序菜单栏工具–构建npm 根目录创建store文…

el-ment ui 表格组件table实现列的动态插入功能

在实际需求中我们经常遇到各种奇葩的需求&#xff0c;不足为奇。每个项目的需求各不相同&#xff0c;实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种&#xff0c; 1. 插入的位置如果是已知的&#xff0c;我知道在哪个标题的…

设计模式之建造者设计模式

写在前面 不知道&#xff0c;你在工作中有没有使用过lombok&#xff0c;如果你使用过&#xff0c;不知道你有没有使用过其中的Builder注解&#xff0c;其就会帮我们生成建造者设计模式相关的代码&#xff0c;本文就一起来看下吧&#xff01; 1&#xff1a;介绍 1.1&#xff…

spark启动HA时workers为0,且为standby状态

今天学习一个spark视频&#xff0c;在启动StandAloneHa模式的时候&#xff0c;发现workers为0&#xff0c;而且spark两个master的状态都为standby&#xff0c;找了很久&#xff0c;才知道我用的spark3.2 最低支撑的zookeeper版本为3.5.x,而且zookeeper的安装包是需要带bin的那个…

CSS3 动画 animation 入门学习笔记 之 属性详解

文章目录 简单介绍 CSS 动画CSS 动画的作用CSS 动画语法介绍CSS 动画属性animation-nameanimation-durationanimation-delayanimation-directionanimation-iteration-countanimation-play-stateanimation-timing-functionanimation-fill-modeanimation 简单介绍 CSS 动画 引用…