使用 dmesg 来查看一些硬件或驱动程序的信息或问题。

关于ES安全的一些问题探讨

回复

Charele 回复了问题 • 1 人关注 • 1 个回复 • 1565 次浏览 • 2022-09-24 22:12 • 来自相关话题

如何解决ES 一秒钟的事务问题?

Charele 回复了问题 • 3 人关注 • 2 个回复 • 1538 次浏览 • 2022-09-27 18:53 • 来自相关话题

API 网关 Apache APISIX 集成 Elasticsearch 实现实时日志监控

WangChengCheng 发表了文章 • 0 个评论 • 2058 次浏览 • 2022-09-23 10:18 • 来自相关话题

本文将为你介绍 Apache APISIX 的 elasticsearch-logger 插件的相关信息,以及如何通过此插件获取 APISIX 的实时日志。

背景信息


Apache APISIX 是一个动态、实时、高性能的 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。作为 API 网关,Apache APISIX 不仅拥有丰富的插件,而且支持插件的热加载。

Elasticsearch 是一个基于 [Lucene](https://zh.m.wikipedia.org/zh-hans/Lucene) 库的搜索引擎。它提供了分布式、RESTful 风格的搜索和数据分析引擎,具有可扩展性、可分布式部署和可进行相关度搜索等特点,能够解决不断涌现出的各种用例。同时还可以集中存储用户数据,帮助用户发现意料之中以及意料之外的情况。

插件介绍


APISIXHTTP 请求的方式向 Elasticsearch 发送 APISIXRuntime 日志。插件 elasticsearch-logger 采用 [bulk](https://www.elastic.co/guide/e ... s-bulk) 的格式进行日志上报,这允许 APISIX 可以将多条日志合并后再进行上报,这使得 APISIX 在对 Elasticsearch 进行日志上报方面更加灵活并且具有较好的性能。你可以参考文档 [APISIX 批处理器](https://apisix.apache.org/zh/d ... essor/) 对日志合进行更加细致的配置。

配置步骤


首先,你需要安装完成 APISIX,本文所有步骤基于 Centos 7.5 系统进行。详细的安装步骤参考 [APISIX 安装指南](https://apisix.apache.org/zh/d ... guide/)。

步骤1:启动 Elasticsearch


本示例只演示了通过 docker-compose 启动 Elasticsearch 单节点的方式,其它启动方式可参考 [Elasticsearch 官方文档](https://www.elastic.co/cn/downloads/elasticsearch)。

``` shell

使用 docker-compose 启动 1 个 Elasticsearch 节点, 1 个 kibana

version: '3.8'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.1
container_name: elasticsearch
environment:
ES_JAVA_OPTS: -Xms512m -Xmx512m
discovery.type: single-node
xpack.security.enabled: 'false'
networks:

  • es-net
    ports:
  • "9200:9200"
  • "9300:9300"

    kibana:
    image: docker.elastic.co/kibana/kibana:7.17.1
    container_name: kibana
    environment:
    ELASTICSEARCH_HOSTS: http://elasticsearch:9200
    I18N_LOCALE: zh-CN
    networks:
  • es-net
    depends_on:
  • elasticsearch
    ports:
  • "5601:5601"

    networks:
    es-net:
    driver: bridge
    ```

    步骤2:创建路由并配置插件


    APISIX 默认配置文件中已启用 elasticsearch-logger 插件,所以你只需要通过下方命令创建路由并配置 elasticsearch-logger 插件就可以在 APISIX 中正常使用了。

    shell<br /> curl <a href="http://127.0.0.1:9180/apisix/admin/routes/1" rel="nofollow" target="_blank">http://127.0.0.1:9180/apisix/admin/routes/1</a> \<br /> -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '<br /> {<br /> "plugins":{<br /> "elasticsearch-logger":{<br /> "endpoint_addr":"<a href="http://127.0.0.1:9200"" rel="nofollow" target="_blank">http://127.0.0.1:9200"</a>,<br /> "field":{<br /> "index":"services",<br /> "type":"collector"<br /> },<br /> "ssl_verify":false,<br /> "retry_delay":1,<br /> "buffer_duration":60,<br /> "max_retry_count":0,<br /> "batch_max_size":1000,<br /> "inactive_timeout":5,<br /> "name":"elasticsearch-logger"<br /> }<br /> },<br /> "upstream":{<br /> "type":"roundrobin",<br /> "nodes":{<br /> "127.0.0.1:1980":1<br /> }<br /> },<br /> "uri":"/elasticsearch.do"<br /> }'<br />
    上述代码中配置了 Elasticsearch 地址、目标 field,用户名与密码。

    通过上述设置,就可以实现将 /elasticsearch.do 路径的 API 请求日志发送至 Elasticsearch 的功能。

    步骤3:发送请求


    接下来我们通过 API 发送一些请求。

    shell<br /> curl -i <a href="http://127.0.0.1:9080/elasticsearch.do" rel="nofollow" target="_blank">http://127.0.0.1:9080/elasticsearch.do</a>\?q\=hello<br /> HTTP/1.1 200 OK<br /> ...<br /> hello, world<br />

    此时你可以登录 Kibana 控制台检索查看相关日志:

    ![index](https://static.apiseven.com/ap ... d.webp)

    自定义日志结构


    当然,在使用过程中我们也可以通过 elasticsearch-logger 插件提供的元数据配置,来设置发送至 Elasticsearch 的日志数据结构。通过设置 log_format 数据,可以控制发送的数据类型。

    比如以下数据中的 $host$time_iso8601 等,都是来自于 NGINX 提供的内置变量;也支持如 $route_id$service_idApache APISIX 提供的变量配置。

    shell<br /> curl <a href="http://127.0.0.1:9180/apisix/admin/plugin_metadata/elasticsearch-logger" rel="nofollow" target="_blank">http://127.0.0.1:9180/apisix/a ... ogger</a> \<br /> -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '<br /> {<br /> "log_format": {<br /> "host": "$host",<br /> "@timestamp": "$time_iso8601",<br /> "client_ip": "$remote_addr"<br /> }<br /> }'<br />

    通过发送请求进行简单测试,可以看到上述日志结构设置已生效。目前 Apache APISIX 提供多种日志格式模板,在配置上具有极大的灵活性,更多日志格式细节可参考 [Apache APISIX 官方文档](https://apisix.apache.org/docs ... tadata)。

    此时你可以登录 Kibana 控制台检索查看相关自定义日志:

    ![](https://static.apiseven.com/ap ... 5.webp)

    如需关闭自定义日志结构,可参考下方操作。

    shell<br /> curl <a href="http://127.0.0.1:9180/apisix/admin/plugin_metadata/elasticsearch-logger" rel="nofollow" target="_blank">http://127.0.0.1:9180/apisix/a ... ogger</a> \<br /> -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X DELETE<br />

    此时,插件 elasticsearch-logger 将使用默认格式上报日志。

    关闭插件


    如使用完毕,只需移除路由配置中 elasticsearch-logger 插件相关的配置并保存,即可关闭路由上的插件。得益于 Apache APISIX 的动态化优势,开启和关闭插件的过程都不需要重启 Apache APISIX

    shell<br /> curl <a href="http://127.0.0.1:9080/apisix/admin/routes/1" rel="nofollow" target="_blank">http://127.0.0.1:9080/apisix/admin/routes/1</a> \<br /> -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '<br /> {<br /> "methods": ["GET"],<br /> "uri": "/hello",<br /> "plugins": {},<br /> "upstream": {<br /> "type": "roundrobin",<br /> "nodes": {<br /> "127.0.0.1:1980": 1<br /> }<br /> }<br /> }'<br />

    总结


    本文为大家介绍了关于 elasticsearch-logger 插件的功能与使用步骤,更多关于 elasticsearch-logger 插件说明和完整配置列表,可以参考官方文档。

    也欢迎随时在 [GitHub Discussions](https://github.com/apache/apisix/discussions) 中发起讨论,或通过[邮件列表](https://apisix.apache.org/zh/docs/general/join)进行交流。

elasticsearch设置某个、某类节点的数据不参与rebalance?

Charele 回复了问题 • 3 人关注 • 5 个回复 • 1800 次浏览 • 2022-09-28 09:57 • 来自相关话题

如何向工作状态的索引添加analyzer

Charele 回复了问题 • 2 人关注 • 1 个回复 • 811 次浏览 • 2022-09-22 11:59 • 来自相关话题

如何在线上工作的索引添加analyzer?

回复

caryliang 发起了问题 • 1 人关注 • 0 个回复 • 924 次浏览 • 2022-09-22 10:29 • 来自相关话题

使用ElasticsearchRestTemplate操作时会出现java.io.IOException: 远程主机强迫关闭了一个现有的连接。

Charele 回复了问题 • 2 人关注 • 1 个回复 • 1172 次浏览 • 2022-09-21 15:51 • 来自相关话题

es的同义词filter在analyzer中是如何工作的?

Ombres 回复了问题 • 3 人关注 • 1 个回复 • 850 次浏览 • 2022-09-21 23:48 • 来自相关话题

Observability:使用 Elastic Agent 来进行 Uptime 监控

liuxg 发表了文章 • 0 个评论 • 819 次浏览 • 2022-09-19 18:35 • 来自相关话题

在 Elastic Stack 7.x 中,Elastic 引入 Heartbeat 来对网站或微服务来进行监控。通过 Heartbeat 的应用,我们可以知道网站及微服务的运行情况,我们甚至可以针对服务器的证书的有效期进行监控。随着 Elastic Agent 的推出,Elastic 更建议我们使用 Elastic Agent 的方法来对网站及微服务来进行监控。为了大家能对 Heartbeat 及 Elastic Agent 有更多的认识和了解,请参阅我之前的文章:

Beats:使用 Heartbeat 进行 Uptime 监控

Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0

Observability:如何使用 Elastic Agents 把微服务的数据摄入到 Elasticsearch 中

1.png

 
更多阅读,请参阅 https://elasticstack.blog.csdn ... 29912

关于TLS里面的证书问题

回复

Charele 发起了问题 • 1 人关注 • 0 个回复 • 999 次浏览 • 2022-09-17 23:59 • 来自相关话题

查询 北 不出来 北京

Charele 回复了问题 • 2 人关注 • 2 个回复 • 858 次浏览 • 2022-09-16 14:50 • 来自相关话题

ES集群总是会发生熔断,且已经做过扩容,请教下大佬

tacsklet 回复了问题 • 5 人关注 • 5 个回复 • 1387 次浏览 • 2023-01-20 11:48 • 来自相关话题

ES节点IO莫名其妙的很高

Charele 回复了问题 • 2 人关注 • 3 个回复 • 1443 次浏览 • 2022-09-15 11:21 • 来自相关话题

Elasticsearch:如何在不更新证书的情况下为集群之间建立互信

liuxg 发表了文章 • 0 个评论 • 788 次浏览 • 2022-09-13 14:48 • 来自相关话题

我们知道,建立集群之间的互信非常重要。这个是为我们进行 CCR 及 CCS 操作的基础。只有建立好了集群之间的互信,我们才可以创建集群之间的 remote connection。特别是针对含有 SSL 连接的集群,他们含有各自的证书,那么我们该如何建立集群之间的互信呢?在我之前的文章 “Elasticsearch:如何为 CCR 及 CCS 建立带有安全的集群之间的互信” 中,我详述了如何通过更新证书来建立集群之间的互信。更新证书在很多的情况下,可能并不是最好的途径。在今天的文章中,我将详述如何在不更新证书的情况下,为集群之间建立互信。

在今天的展示中,我将使用如下的架构:

trust.png



如上所示,我们创建两个不同的集群。它们分别运行于两个不同的机器上。它们使用不同的 IP 地址。我将使用最新的 Elastic Stack 8.4.1 来进行展示。


如何在不更新证书的情况下为集群之间建立互信

针对非 keystore 及 truststore 的安装
如果你的 Elasticsearch 的部署不是按照 keystore 及 truststore 来进行安装的,而是参照我之前的文章 “Security:如何安装 Elastic SIEM 和 EDR” 来进行安装的话,那么你可以直接把另外一个集群的证书添加到相应的 config/elasticsearch.yml 的配置中去即可:

config/elasticsearch.yml

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /etc/elasticsearch/certs/elasticsearch.key
xpack.security.transport.ssl.certificate: /etc/elasticsearch/certs/elasticsearch.crt
xpack.security.transport.ssl.certificate_authorities: [ "/etc/elasticsearch/certs/ca/ca.crt", "certificate_from_another_cluster.crt ]
在这种情况下的配置就非常简单明了。我们就不赘述了。
 
更多阅读,请参阅 https://elasticstack.blog.csdn ... 26063