百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Elastic8.7集群搭建(搭建elk集群)

nanshan 2024-10-22 12:55 42 浏览 0 评论

ELK(elasticsearch+kibana)



根据操作系统选择需要的安装包

这里以windows为例(版本是8.7.1),Linux的操作是一致的

下载压缩包,解压,先说明一下文件目录

bin:可执行程序,包括elasticsearch启动程序也在这个目录

config:配置文件,包括jvm的配置

data:数据存储的目录,该目录会在启动的时候自动生成

jdk:因为es是用java开发的,如果本机安装的jdk版本不支持当前的es的版本,那么使用该目录下的

logs:日志目录,必须有

modules:es的一些模块

plugins:插件存放的目录,初始是空的

修改es的配置,主要修改下面这几个配置项

elasticsearch.yml

#集群名称
cluster.name: my-application
#节点的名字
node.name: node-1
#节点的端口
http.port: 9201

jvm的配置,主要是修改一下内存占用,默认是4G,可以根据业务的需要,自行配置,这里设置为512mb。

jvm.options

################################################################
## IMPORTANT: JVM heap size
################################################################
##
## The heap size is automatically configured by Elasticsearch
## based on the available memory in your system and the roles
## each node is configured to fulfill. If specifying heap is
## required, it should be done through a file in jvm.options.d,
## which should be named with .options suffix, and the min and
## max should be set to the same value. For example, to set the
## heap to 4 GB, create a new file in the jvm.options.d
## directory containing these lines:
##
-Xms512m
-Xmx512m

启动

启动第一个节点,以独立节点的方式启动(-d后台执行)

.\elasticsearch -d

获取一下elastic的密码,后面可以用于登录kibana

.\elasticsearch-reset-password -u elastic

如果出现错误,重置可以通过下面的步骤实现

1、删掉config/elasticsearch.keystore、config/certs文件夹

2、config/elasticsearch.yml从

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------开始,后面的全部删除

3、删除data目录

获取一下加入集群的token

 .\elasticsearch-create-enrollment-token -s node

这个是jwt的token,可以解码看一下里面的内容,可以看到token里面包含了主节点的ip和端口信息。


把一个新节点加入到集群,拷贝上一步获取到的token

.\elasticsearch --enrollment-token eyJ2ZXIiOiI4LjcuMSIsImFkciI6WyIxNzIuMTguMC44NDo5MjAxIl0sImZnciI6IjFhNzUwYjFhMDI3YTAyN2M3NTI0NzQxMjM2NmM5OWRhYTM2YjY2M2Q4NzdlYjY5NDk3MWY5Mzg1MzI0NTUxNjMiLCJrZXkiOiJzcHFOYjRnQlAtVVV6SHVXRjVWaDpmN2lUeS13VFRUQzViNnlEc0QzMVp3In0= -d

后续添加节点,均按这个步骤重复进行。


安装kibana

下载解压之后,到bin目录执行

打开http://localhost:5601/?code=391977,如果

直接通过http://localhost:5601打开,后面会要求输入验证,回到控制台,可以看到6位的验证码。

产生kibana的登录token

.\elasticsearch-create-enrollment-token -s kibana

token登录



用账号登录



登录之后,到控制台查看集群情况


.NET 使用ES(官方的例子)

using Elastic.Clients.Elasticsearch;
using Elastic.Transport;

var nodes = new Uri[]
{
    new Uri("https://localhost:9201"),
    new Uri("https://localhost:9202")
};

var pool = new StaticNodePool(nodes);

var settings = new ElasticsearchClientSettings(pool)
.CertificateFingerprint("1A:75:0B:1A:02:7A:02:7C:75:24:74:12:36:6C:99:DA:A3:6B:66:3D:87:7E:B6:94:97:1F:93:85:32:45:51:63")
 .Authentication(new BasicAuthentication("elastic", "9JUjqtpWdIXaqFP5Sn_P"));

  
var tweet = new Tweet 
{
    Id = 1,
    User = "stevejgordon",
    PostDate = new DateTime(2009, 11, 15),
    Message = "Trying out the client, so far so good?"
};
var client=new ElasticsearchClient(settings);
var response = await client.IndexAsync(tweet, "my-tweet-index"); 

if (response.IsValidResponse) 
{
    Console.WriteLine(#34;Index document with ID {response.Id} succeeded."); 
}
else{
    Console.WriteLine("err:"+response.ElasticsearchServerError);
}

public class Tweet
{
    public int Id { get; set; } 
    public string User { get; set; }
    public DateTime PostDate { get; set; }
    public string Message { get; set; }
}

产生CertificateFingerprint

asp.net core


public static class ElasticsearchExtensions
{
    public static void AddElasticsearch(this IServiceCollection services, IConfiguration configuration)
    {
        var url = configuration["elasticsearch:url"];
        var defaultIndex = configuration["elasticsearch:index"];
 
 
        var settings = new ConnectionSettings(new Uri(url))
            .DefaultIndex(defaultIndex);
 
 
        AddDefaultMappings(settings);
 
 
        var client = new ElasticClient(settings);
 
 
        services.AddSingleton(client);
 
 
        CreateIndex(client, defaultIndex);
    }
 
 
    private static void AddDefaultMappings(ConnectionSettings settings)
    {
        settings
            DefaultMappingFor<Product>(m => m
                .Ignore(p => p.Price)
                .Ignore(p => p.Quantity)
                .Ignore(p => p.Rating)
            );
    }
 
 
    private static void CreateIndex(IElasticClient client, string indexName)
    {
        var createIndexResponse = client.Indices.Create(indexName,
            index => index.Map<Product>(x => x.AutoMap())
        );
    }
}



相关推荐

删库之后不要着急跑路,教你神不知鬼不觉找回数据

在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回。在mysql数据库中,我们知道binlog日志记录了我们对数据库的所有操作,所以...

数据库告警不可用,增删改受阻(数据库限制删除)

前言:昨晚,突然出现服务不可用告警,查看日志上线报文入库到数据库很慢并受阻,出现数据不同步问题。排查问题查看发现服务都是在执行update、insert这些DML命令的时候,报的数据库执行超时。经过一...

Binlog实现MySQL复制,5个关键步骤,务必掌握!

复制是MySQL最重要的功能之一,MySQL集群的高可用、负载均衡和读写分离都是基于复制来实现的。Binlog就是实现主从复制的关键,主数据库将修改操作记录到Binlog中,从数据库通过解...

MySQL数据实时增量同步到Elasticsearch

Mysql到Elasticsearch的数据同步,一般用ETL来实现,但性能并不理想,目前大部分的ETL是定时查询Mysql数据库有没有新增数据或者修改数据,如果数据量小影响不大,但如果几百万上千万的...

MySQL 数据库恢复:如何执行时间点恢复(PITR)以挽救受损数据?

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、数据取证、数据迁移、网络安全、数据清除等解决方案,并针对企业面临的数据安全风险,提供专业的相关数据安全...

阿里面试:MySQL Binlog有哪些格式?底层原理?优缺点?

binlog的格式也有三种:STATEMENT、ROW、MIXED,下面我详解binlog三种模式@mikechenStatement模式Statement模式:是基于SQL语句的复制(statem...

快速带你读懂MySQL的binlog写入机制

深入讲解MySQL中的重要日志binlog的写入机制以及影响IO性能的关键配置,并且介绍了如何利用binlog去恢复数据,保证MySQL的可靠性。Q:binlog写入时机binlog的写入逻辑并...

MySQL 误删除数据恢复全攻略:基于 Binlog 的实战指南

在MySQL的世界里,二进制日志(Binlog)就是我们的"时光机"。它默默记录着数据库的每一个重要变更,就像一位忠实的史官,为我们在数据灾难中提供最后的救命稻草。本文将带您深入掌握如...

一文了解MySQL Binlog(一文了解肝脏有益和有害的食物)

MySQL的Binlog日志是一种二进制格式的日志,Binlog记录所有的DDL和DML语句(除了数据查询语句SELECT、SHOW等),以Event的形式记录,同时记录语句执行时...

数据丢失?别慌!MySQL备份恢复攻略

想象一下,某个晴朗的午后,你正享受着咖啡,突然接到紧急电话:你的网站或APP彻底挂了!系统崩溃,界面全白。虽然心头一紧,但你或许还能安慰自己:系统崩溃只是暂停服务,数据还在,修复修复就好了。然而,如果...

Mysql中的bin log、redo log、undo log的区别

最近在整理面试题,在看mvcc的时候看到了undolog,今天索性把这三个log都记录一遍。MySQL的逻辑架构说之前先说一下MySQL的基本架构,MySQL主要分为两层:Server层和存储引...

binlog日志定时清理(binlog清理规则)

binlog日志binlog是MySQL数据库的一种日志文件,用于记录所有对数据的修改操作。binlog全称为binarylog,它以二进制格式记录MySQL服务器上所有的修改操作,包括对哪个数据库...

茶水间炸锅了!菜鸟误删用户表,运维老张的MySQL救命三招!

(公司茶水间,运维老张、开发小王和新人小李围着咖啡机)小李:(紧张兮兮)张哥!我...我好像把测试库的用户表删了!下午演示咋办啊?老张:(淡定喝咖啡)慌啥?昨晚的备份是吃干饭的?走,教你恢复!一、基础...

解决运维痛点,提高运维安全性-雷池 SafeLine WAF新功能身份认证

雷池介绍使用雷池SafeLineWAF已经两年多了,在1.5.x版本时就已经开始测试使用,并在推出LTS版本后转入LTS分支。近期雷池SafeLineWAF重点更新了身份认证功能,并提供了SS...

【Docker 新手入门指南】第十五章:常见故障排除

一、前期准备:收集关键信息在排查问题前,建议先获取以下系统数据,便于精准定位故障:1.系统基础信息#查看Docker版本(确认是否为最新稳定版)dockerversion#查看...

取消回复欢迎 发表评论: