如何显示访问elasticsearch集群的IP

发布时间:2021-12-16 10:12:59 作者:iii
来源:亿速云 阅读:383
# 如何显示访问Elasticsearch集群的IP

## 引言

在运维Elasticsearch集群时,了解访问集群的客户端IP地址对于安全审计、流量分析和故障排查至关重要。本文将详细介绍多种获取访问ES集群IP的方法,包括日志分析、API查询和网络层监控方案。

---

## 一、通过Elasticsearch访问日志获取IP

### 1.1 开启审计日志(推荐方案)
Elasticsearch自带的审计日志功能可记录所有访问请求:

```yaml
# elasticsearch.yml 配置
xpack.security.audit.enabled: true
xpack.security.audit.logfile.events.include: access_denied,anonymous_access_denied,authentication_success,connection_denied

日志示例输出:

[2023-11-20T10:00:00] ACCESS [rest] origin_address=/192.168.1.100, uri=/products/_search

1.2 分析HTTP访问日志

当使用Nginx等反向代理时,可在代理层记录日志:

log_format es_log '$remote_addr - $upstream_addr [$time_local] "$request"';
access_log /var/log/nginx/es_access.log es_log;

二、使用Elasticsearch API实时查询

2.1 通过_tasks API监控活跃请求

GET /_tasks?detailed=true&group_by=parents

响应中包含origin字段显示源IP:

{
  "tasks" : {
    "abcdefg:12345" : {
      "origin" : "192.168.1.100:63452",
      "action" : "indices:data/read/search"
    }
  }
}

2.2 使用Stats API获取连接统计

GET /_nodes/stats/http

返回结果中的current_open包含客户端连接信息。


三、网络层监控方案

3.1 TCP连接分析(Linux环境)

ss -tulnp | grep 9200

输出示例:

tcp   ESTAB  0    0    192.168.1.5:9200    203.0.113.45:42351

3.2 使用Packetbeat进行流量监控

配置Packetbeat捕获ES流量:

packetbeat.interfaces.device: eth0
packetbeat.protocols.http:
  ports: [9200]
output.elasticsearch:
  hosts: ["localhost:9200"]

四、安全增强方案

4.1 启用X-Forwarded-For处理

当集群部署在负载均衡后方时,需配置:

http.port: 9200
http.publish_port: 9200
network.host: _site_
http.xff.enabled: true
http.xff.trusted_proxies: ["192.168.1.1"] # 负载均衡IP

4.2 使用Search Guard/IP Filtering插件

通过插件实现IP白名单控制:

searchguard.dynamic.http.filter:
  "*":
    - "192.168.1.*"

五、可视化方案(Kibana)

5.1 创建访问日志仪表盘

  1. 将审计日志索引到Logstash
  2. 使用TSVB可视化客户端地理分布
  3. 设置IP字段的TopN聚合

5.2 使用Network Threat Detection

在X-Pack中启用:

PUT _cluster/settings
{
  "persistent": {
    "xpack.security.audit.logfile.events.emit_request_body": true
  }
}

六、常见问题排查

6.1 看不到真实客户端IP

可能原因: - 未正确配置X-Forwarded-For - 代理服务器未传递源IP

解决方案:

# 测试真实IP获取
curl -H "X-Forwarded-For: 1.2.3.4" http://es-node:9200

6.2 高并发下的性能影响

优化建议: - 采样审计日志(设置xpack.security.audit.logfile.events.exclude) - 使用单独的专用日志节点


结语

通过组合使用日志分析、API查询和网络监控三种方式,可以全面掌握访问Elasticsearch集群的客户端IP信息。建议生产环境至少启用审计日志+网络层监控的双重方案,同时注意在分布式架构中正确处理代理层IP传递问题。

最佳实践提示:定期分析访问IP模式,可配合Elasticsearch的机器学习功能自动检测异常IP访问。 “`

注:本文实际约1100字,包含: 1. 6个主要章节+12个子章节 2. 5个代码示例片段 3. 3种不同技术方案 4. 2个常见问题解决方案 5. 可视化与安全增强建议

推荐阅读:
  1. ElasticSearch集群搭建
  2. elasticsearch 集群部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

elasticsearch ip

上一篇:如何在YARN上运行ElasticSearch

下一篇:Linux sftp命令的用法是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》