在本地运行Elasticsearch.md

建议使用Docker试用Elasticsearch和Kibana。

从Elasticsearch 8.0开始,首次启动Elasticsearch时,会自动配置TLS加密,为elastic用户生成密码,并创建Kibana注册令牌,以便您可以将Kibana连接到受保护的群集。

启动Elasticsearch

docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.5.3
docker run --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -t docker.elastic.co/elasticsearch/elasticsearch:8.5.3

首次启动Elasticsearch时,自动生成elastic用户密码和Kibana注册令牌,并输出到终端。

这些值仅在首次启动Elasticsearch时显示。您将使用这些值将Kibana注册到Elasticsearch群集并登录。

启动Kibana

  1. 启动Kibana并将其连接到Elasticsearch容器:

    docker pull docker.elastic.co/kibana/kibana:8.5.3
    docker run --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.5.3

    URL将输出到终端。

  2. 要访问Kibana,请在浏览器中打开生成的URL。

    1. 粘贴启动Elasticsearch时复制的注册令牌,然后单击按钮将Kibana实例与Elasticsearch连接起来。
    2. 使用启动Elasticsearch时生成的密码以elastic用户身份登录Kibana。

向Elasticsearch发送请求

您可以通过REST API向Elasticsearch发送数据和其他请求。您可以使用任何发送HTTP请求的客户端与Elasticsearch交互,例如Elasticsearch语言客户端和curl。Kibana的开发人员控制台提供了一种简单的方法来试验和测试请求。访问控制台 Management > Dev Tools

添加数据

POST /customer/_doc/1
{
  "firstname": "Jennifer",
  "lastname": "Walters"
}

curl -X POST "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "firstname": "Jennifer",
  "lastname": "Walters"
}
'

添加ID为1的新文档到customer索引,customer 索引如果不存在,会自动创建。

新文档可立即从集群中的任何节点获得:

GET /customer/_doc/1

curl -X GET "localhost:9200/customer/_doc/1?pretty"
$params = [
    'index' => 'customer',
    'id' => '1',
];
$response = $client->get($params);
res, err := es.Get("customer", "1", es.Get.WithPretty())
fmt.Println(res, err)

要在一个请求中添加多个文档,请使用_bulk API。批量数据必须是换行符分隔的JSON(NDJSON)。每行必须以换行符(\n)结尾,包括最后一行。

PUT customer/_bulk
{ "create": { } }
{ "firstname": "Monica","lastname":"Rambeau"}
{ "create": { } }
{ "firstname": "Carol","lastname":"Danvers"}
{ "create": { } }
{ "firstname": "Wanda","lastname":"Maximoff"}
{ "create": { } }
{ "firstname": "Jennifer","lastname":"Takeda"}

curl -X PUT "localhost:9200/customer/_bulk?pretty" -H 'Content-Type: application/json' -d'
{ "create": { } }
{ "firstname": "Monica","lastname":"Rambeau"}
{ "create": { } }
{ "firstname": "Carol","lastname":"Danvers"}
{ "create": { } }
{ "firstname": "Wanda","lastname":"Maximoff"}
{ "create": { } }
{ "firstname": "Jennifer","lastname":"Takeda"}
'

搜索

索引文档可供近乎实时的搜索。以下搜索将customer索引中名称为 Jennifer 的所有客户匹配。

GET customer/_search
{
  "query" : {
    "match" : { "firstname": "Jennifer" }
  }
}

curl -X GET "localhost:9200/customer/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query" : {
    "match" : { "firstname": "Jennifer" }
  }
}
'

探索

  1. Management > Stack Management > Kibana > Data Views
  2. 选择:Create data view
  3. 输入数据视图的名称和与一个或多个索引(如customer)匹配的模式。
  4. 选择:Save data view to Kibana

To start exploring, go to Analytics > Discover.


在本地运行Elasticsearch.md
http://blog.lujinkai.cn/运维/ELK/Elasticsearch/在本地运行Elasticsearch/
作者
像方便面一样的男子
发布于
2023年12月5日
许可协议