在CSDN学Golang场景化解决方案(EFK分布式日志系统方案)

一,ElasticSearch 分布式集群部署

在 Golang EFK 分布式日志系统方案中,ElasticSearch 是一个分布式搜索引擎和数据存储库,它可以用于存储和搜索大量的日志数据。以下是 ElasticSearch 分布式集群部署的步骤:

  1. 下载 ElasticSearch:从 ElasticSearch 官网上下载最新版本的 ElasticSearch。
  2. 解压缩并安装 ElasticSearch:将下载下来的文件解压缩到指定目录中,并按照官方文档进行安装。
  3. 配置 ElasticSearch:通过修改 config 目录下的 elasticsearch.yml 文件来配置 ElasticSearch 的相关参数,如集群名称、节点名称、网络接口等。具体可参考官方文档。
  4. 启动 ElasticSearch:使用命令行工具进入到 ElasticSearch 的 bin 目录,并执行以下命令启动 ElasticSearch:
./elasticsearch
  1. 添加节点:为了实现高可用性和负载均衡,在同一局域网内可以添加多个节点。要添加节点,请重复以上步骤,在每个节点上安装并启动 ElasticSearch,并确保各个节点的配置文件中设置了相同的集群名称。
  2. 验证集群状态:打开浏览器,输入 http://localhost:9200/_cat/nodes?v 命令来查看集群状态信息,如果所有节点都正确加入集群,则说明分布式部署成功。

在 Golang EFK 分布式日志系统方案中,ElasticSearch 的分布式集群部署需要先下载和安装 ElasticSearch,并按照官方文档进行配置和启动。最后添加多个节点并验证集群状态即可。

二,analysis-ik分析器与分词器

对于Golang和EFK分布式日志系统方案中的Analysis-IK分析器和分词器,可以按照以下步骤进行配置:

  1. 下载和安装Elasticsearch:从官网下载适合你操作系统的版本,解压文件并进行相应配置。
  2. 安装IK插件:下载适合您所使用的Elasticsearch版本的IK插件,并将其解压缩到elasticsearch/plugins目录下。然后在config/elasticsearch.yml文件中添加如下内容:
index.analysis.analyzer.default.type : "ik_smart"
  1. 配置Fluentd与Elasticsearch连接:使用Fluentd插件fluent-plugin-elasticsearch连接到Elasticsearch集群。在Fluentd配置文件中添加相应内容。
  2. 编写Golang程序记录日志:使用第三方库logrus或zap等编写代码记录日志,并将其发送给Fluentd处理。
  3. 在Kibana中查看分词结果:通过浏览器访问Kibana控制台,在控制台中对日志进行查询、过滤等操作,并查看分词结果。

Analysis-IK分析器和分词器可以帮助我们实现更精确的文本搜索和聚类,提高搜索引擎的准确性和效率。同时,我们需要了解相关工具的用法和配置方法,以便正确地使用它们。

三,logstash 管道安装

在 Golang EFK 分布式日志系统方案中,Logstash 是用于收集、处理和转发日志数据的工具。以下是安装 Logstash 管道的步骤:

  1. 下载和安装 Java 运行环境:Logstash 是基于 Java 开发的,所以需要先下载和安装 Java 运行环境。
  2. 下载和解压缩 Logstash:从官网下载适合你操作系统的版本,解压文件到你喜欢的目录下。
  3. 配置 Logstash 管道:在解压后的目录下找到 conf 目录,编辑 logstash.conf 文件,并根据实际情况进行配置。例如:
input {file {path => "/var/log/nginx/access.log"start_position => "beginning"}
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}
}output {elasticsearch {hosts => ["localhost:9200"]index => "nginx-access-%{+YYYY.MM.dd}"}
}

上述配置示例使用 input 插件从本地 Nginx 访问日志中读取数据,使用 filter 插件对数据进行 grok 处理(即从原始文本中提取有用信息),然后使用 output 插件将处理后的数据发送给 Elasticsearch。

  1. 启动 Logstash 管道:通过命令行进入到 Logstash 的 bin 目录下,执行以下命令启动管道:
./logstash -f /path/to/logstash.conf
  1. 检查日志:在 Logstash 启动后,可以通过控制台输出查看日志处理情况。若无异常,则数据已成功传输到 Elasticsearch 中。

安装 Logstash 管道需要先下载和安装 Java 运行环境,然后下载和解压缩 Logstash 并进行相应配置,最后启动管道并检查日志。

四,filebeat 从日志文件采集日志

在 Golang EFK 分布式日志系统方案中,Filebeat 是用于采集和传输日志数据的工具。以下是使用 Filebeat 从日志文件采集日志的步骤:

  1. 下载和解压缩 Filebeat:从官网下载适合你操作系统的版本,解压文件到你喜欢的目录下。
  2. 配置 Filebeat:在解压后的目录下找到配置文件 filebeat.yml,并根据实际情况进行配置。例如:
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/nginx/access.logfields:service: nginxoutput.elasticsearch:hosts: ["localhost:9200"]

上述配置示例使用 filebeat.inputs 插件指定要采集的日志文件路径和名称,使用 output.elasticsearch 插件将处理后的数据发送给 Elasticsearch。

  1. 启动 Filebeat:通过命令行进入到 Filebeat 的安装目录下,执行以下命令启动服务:
./filebeat -e -c /path/to/filebeat.yml

其中参数 -e 表示以调试模式运行,-c 指定配置文件路径。

  1. 检查数据:在 Filebeat 启动后,可以通过控制台输出查看日志采集情况。若无异常,则数据已成功传输到 Elasticsearch 中。

使用 Filebeat 从日志文件采集日志需要先下载和解压缩 Filebeat 并进行相应配置,最后启动服务并检查数据。

五,golang通过SDK主动上传日志

在 Golang EFK 分布式日志系统方案中,SDK 是用于编写程序主动上传日志的工具。以下是使用 SDK 主动上传日志的步骤:

  1. 下载和安装 Elasticsearch 客户端库:通过以下命令下载 Elasticsearch 客户端库:
go get github.com/olivere/elastic
  1. 编写程序代码:在 Golang 中,可以使用上一步下载的 Elasticsearch 客户端库来操作 Elasticsearch。例如:
package mainimport ("context""fmt""github.com/olivere/elastic/v7"
)func main() {ctx := context.Background()client, err := elastic.NewClient(elastic.SetURL("http://localhost:9200"))if err != nil {fmt.Println("Failed to create client:", err)return}indexName := "mylogindex"data := map[string]interface{}{"message": "Hello world!",}put1, err := client.Index().Index(indexName).BodyJson(data).Do(ctx)if err != nil {fmt.Println("Failed to put data into index:", err)return}fmt.Printf("Indexed data with ID %s to index %s\n", put1.Id, put1.Index)
}

上述代码示例创建了一个名为 mylogindex 的索引,并向其中插入一条数据。

  1. 运行程序:运行以上代码即可将数据主动上传到 Elasticsearch 中。

使用 Golang SDK 主动上传日志需要先下载和安装 Elasticsearch 客户端库,并编写相应的程序代码。最后运行程序即可将数据上传到 Elasticsearch 中。

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

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

相关文章

MyBatis核心 - SqlSession如何通过Mapper接口生成Mapper对象

书接上文 MyBatis – 执行流程 我们通过SqlSession获取到了UserMapper对象,代码如下: // 获取SqlSession对象 SqlSession sqlSession sqlSessionFactory.openSession();// 执行查询操作 try {// 获取映射器接口UserMapper userMapper sqlSession.get…

vue SKU已知sku.tree算出sku.list类目值和id

已知sku.tree算出sku.list类目值和id <van-skuref"sku"v-model"showBase":close-on-click-overlay"closeOnClickOverlay":goods"skuData.goods_info":goods-id"skuData.goods_id":hide-stock"skuData.sku.hide_stoc…

数据结构---B树

目录标题 B-树的由来B-树的规则和原理B-树的插入分析B-树的插入实现准备工作find函数insert中序遍历 B-树的性能测试B-树的删除B树B树的元素插入B*树的介绍 B-树的由来 在前面的学习过程中&#xff0c;我们见过很多搜索结构比比如说顺序查找&#xff0c;二分查找&#xff0c;搜…

mac安装nacos,M1芯片

第一步&#xff0c;官网下载 》nacos官网 去github中下载对应的版本&#xff0c;本人下载的是1.4.1版本 在这儿选择其他的版本&#xff0c;下面这里选择 tar.gz 压缩包 解压后放到一个非中文的目录下&#xff0c;我选择在 user目录下面创建一个other目录&#xff0c;将使用的环…

初识Flask:Python轻量级Web框架入门教程

Flask是一个用Python编写的轻量级Web应用框架。由于其“微”性质&#xff0c;Flask在提供核心服务的同时&#xff0c;仍然提供了许多扩展的可能性。在这篇文章中&#xff0c;我们将从最基础开始&#xff0c;学习如何使用Flask构建一个Web应用。 一、安装与初次启动 首先&…

[回馈]ASP.NET Core MVC开发实战之商城系统(五)

经过一段时间的准备&#xff0c;新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始&#xff0c;在之前的文章中&#xff0c;讲解了商城系统的整体功能设计&#xff0c;页面布局设计&#xff0c;环境搭建&#xff0c;系统配置&#xff0c;及首页【商品类型&#xff0c;ba…

freeswitch的mod_xml_curl模块动态获取dialplan

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 mod_xml_curl模块支持从web服务获取xml配置&#xff0c;本文介绍如何动态获取dialplan配置。 环境 centos&#xff1a;CentOS release 7.0 (Final)或以上版本 freeswitch&#xff1a;v1.6.20 GCC&#xff1a;4.8.5…

人机融合智能中的事实与价值

在人机融合智能中&#xff0c;事实和价值分别扮演着不同的角色和功能。 事实是客观存在的真实描述&#xff0c;可以通过数据、观测和验证等方式获取。在人机融合智能中&#xff0c;人工智能通过处理和分析大量的数据来提供客观事实的支持。例如&#xff0c;在搜索引擎中&#x…

小乌龟(TortoiseGit)连接GitLab

目录 &#x1f35f;写在前面 &#x1f35f;实验目标 &#x1f35f;安装gitlab &#x1f37f;1、安装依赖 &#x1f37f;2、下载清华gitlab包 &#x1f37f;3、安装gitlab &#x1f37f;4、修改配置文件 &#x1f37f;5、管理命令 &#x1f35f;访问gitlab &#x1f35f;界面设置…

【WebRTC---源码篇】(二:一)PeerConnection详解

Track的添加 上图是整体流程图 RTCErrorOr<rtc::scoped_refptr<RtpSenderInterface>> PeerConnection::AddTrack(rtc::scoped_refptr<MediaStreamTrackInterface> track,const std::vector<std::string>& stream_ids) {RTC_DCHECK_RUN_ON(signal…

Spring Cloud Eureka 和 zookeeper 的区别

CAP理论 在了解eureka和zookeeper区别之前&#xff0c;我们先来了解一下这个知识&#xff0c;cap理论。 1998年的加州大学的计算机科学家 Eric Brewer 提出&#xff0c;分布式有三个指标。Consistency&#xff0c;Availability&#xff0c;Partition tolerance。简称即为CAP。…

AIGC大模型ChatGLM2-6B:国产版chatgpt本地部署及体验

1 ChatGLM2-6B介绍 ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练&#xff0c;它具备多领域知识、代码能力、常识推理及运用能力&#xff1b;支持与用户通过自然语言对话进行交互&#xff0c;处理多种自然语言任务…

GIS在地质灾害危险性评估与灾后重建中的应用教程

详情点击链接&#xff1a;GIS在地质灾害危险性评估与灾后重建中的实践技术应用 前言 地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下&#xff0c;地质…

【python】使用Selenium和Chrome WebDriver来获取 【腾讯云 Cloud Studio 实战训练营】中的文章信息

文章目录 前言导入依赖库设置ChromeDriver的路径创建Chrome WebDriver对象打开网页找到结果元素创建一个空列表用于存储数据遍历结果元素并提取数据提取标题、作者、发布时间等信息判断是否为目标文章提取目标文章的描述、阅读数量、点赞数量、评论数量等信息将提取的数据存储为…

以游戏编程的角度看待模拟时间的算法题——以PAT甲级1026 Table Tennis为例

对于需要模拟时间的算法题&#xff0c;可以将开始时间作为游戏的开始&#xff08;如Unity的Start或UE的BeginPlay&#xff09;&#xff0c;每一秒的模拟作为游戏的画面更新&#xff08;如Unity的Update或UE的Tick&#xff09;&#xff0c;结束时间可作为游戏的结束&#xff08;…

Django使用uwsgi+nginx部署,admin没有样式解决办法

Django使用uwsginginx部署,admin没有样式解决办法 如果使用了虚拟环境则修改nginx.conf文件中的/static/路径为你虚拟环境的路径&#xff0c;没有使用虚拟环境则改为你python安装路径下的static server {listen 8008;server_name location; #改为自己的域名&#xff0c;没域名…

【Linux】五种IO模型

文章目录 1. IO基本概念2. 五种IO模型2.1 五个钓鱼的例子2.2 五种IO模型2.2.1 阻塞IO2.2.2 非阻塞IO2.2.3 信号驱动IO2.2.4 IO多路转接2.2.5 异步IO 1. IO基本概念 认识IO IO就是输入和输出&#xff0c;在冯诺依曼体系结构中&#xff0c;将数据从输入设备拷贝到内存就叫输入&am…

力扣热题100 JavaScript--136. 只出现一次的数字

给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 示例 1 &#xff1a; 输入&#xff…

【Linux】信号捕捉

目录 信号捕捉1.用户态与内核态1.1关于内核空间与内核态&#xff1a;1.2关于用户态与内核态的表征&#xff1a; 2.信号捕捉过程 信号捕捉 1.用户态与内核态 用户态&#xff1a;执行用户代码时&#xff0c;进程的状态 内核态&#xff1a;执行OS代码时&#xff0c;进程的状态 …

中国1km分辨率月最低温度数据集(1901-2021年)介绍

该数据为中国逐月最低温度数据&#xff0c;空间分辨率为0.0083333&#xff08;约1km&#xff09;&#xff0c;时间为1901.1-2021.12。数据格式为NETCDF&#xff0c;即.nc格式。数据单位为0.1 ℃。该数据集是根据CRU发布的全球0.5气候数据集以及WorldClim发布的全球高分辨率气候…