怎么查看服务器往ES添加数据库,具体步骤是什么?

要查明某台服务器是否向Elasticsearch添加了数据库,最直接的方法是交叉比对ES集群的审计日志与服务器端的网络连接记录。 下面我从集群审计、服务器端排查、API监控三个维度,拆解具体操作步骤。

怎么查看服务器向ES写入数据的审计日志

审计日志是ES集群内置的写入记录开关,开启后可以精确记录哪个客户端IP、什么用户、在什么时间执行了写操作,这是追溯数据源头的第一选择。

分库分表数据如何同步ES,应用怎么配置多套数据源,ES + MyBatis 怎么用?
加载中
分库分表数据如何同步ES,应用怎么配置多套数据源,ES + MyBatis 怎么用?

开启审计日志的步骤

在ES配置文件elasticsearch.yml中加入以下内容,然后重启集群(或滚动重启):

xpack.security.audit.enabled: true
xpack.security.audit.logfile.events.include: ["access_denied", "authentication_failed", "anonymous_access_denied"]

如果希望记录所有写操作,可以把事件范围扩大到["access_denied", "access_granted", "authentication_success", "tampered_request"],但全量记录会占用大量磁盘,建议在排查期间临时开启,排查结束后关闭。

  • 日志文件默认位于ES_HOME/logs/目录,文件名包含_audit.log字样。
  • 每条日志包含request.method(如POST、PUT)、indices(涉及索引名)、principal(认证用户)、source.ip_address(来源IP)。

从审计日志中提取写入来源

拿到审计日志后,用grep过滤索引写入操作:

grep "PUT" audit.log | grep "your_index_name" | awk '{print $8}'

其中$8通常是source.ip_address字段,具体位置因日志格式不同可以调整,如果日志是JSON格式,可以用jq解析:

jq 'select(.request.method == "PUT") | .source.ip_address' audit.log

怎么查看服务器往ES添加数据库,具体步骤是什么?

列出所有向目标索引写入的IP,再对照服务器IP清单,就能定位到具体机器。

结合Kibana可视化分析写入来源

如果ES集群已经接入Kibana,可以在“监控”面板中查看“索引速率”和“节点写入量”,但更细粒度的方式是把审计日志导入到单独的索引,然后用Kibana的“Discover”直接过滤:

  • 创建索引模式匹配audit。
  • 在过滤栏输入request.method: PUT 或 request.method: POST。
  • 按source.ip_address进行聚合统计,生成饼图或数据表。

这样一眼就能看出哪台服务器在频繁写入,省去逐行翻日志的麻烦。

如何从服务器端排查ES数据库写入来源

如果ES集群没有审计日志,或者你想多一层验证,从服务器端反向排查同样有效,核心思路是检查服务器上哪些进程在连接ES,以及它们发送了什么数据。

检查采集器(Filebeat/Logstash)配置

大多数业务服务器的ES写入走的是Filebeat、Logstash或Fluentd这类采集器,先确认这些进程是否在运行:

ps aux | grep -E "filebeat|logstash|fluentd"

如果有,查看它们的配置文件:

  • Filebeat:filebeat.yml,重点关注output.elasticsearch段,里面会定义ES集群地址和索引名。
  • Logstash:pipelines.yml或具体配置文件,看output{ elasticsearch {} }块。

通过这些配置,可以确定该服务器确实在向ES写入数据,甚至能知道写入了哪些索引。

使用tcpdump抓取ES端口流量

直接抓取服务器与ES集群之间的网络包,直观看到发送了哪些HTTP请求,ES默认端口是9200,抓包命令:

tcpdump -i any -s 0 -A "port 9200" -w es_capture.pcap
  • 怎么查看服务器往ES添加数据库,具体步骤是什么?

    -A:以ASCII形式显示内容,能看到HTTP body。

  • 把抓包文件拉到本地用Wireshark打开,过滤http.request,查看POST或PUT请求的URL路径,就能知道索引名和文档内容。

如果流量很大,建议先按目标ES的IP做过滤:

tcpdump host <ES_IP> and port 9200 -w es_capture.pcap

查看应用日志中的ES写入痕迹

如果服务器跑的是业务应用(比如Java、Python服务),应用日志里通常会记录ES写入的细节,搜索关键词”elasticsearch”、”index”、”response code 201″等:

grep -r "elasticsearch" /var/log/app/ | grep -E "201|PUT|POST"

很多应用框架(如ELK Stack、Spring Data Elasticsearch)会打印调用ES的请求日志,从中可以提取出索引名、文档ID,以及调用来源。

对比服务器IP与ES访问日志的快速方法

当服务器数量较多,手动翻日志效率低时,可以借助ES自身的API做数据交叉比对。

通过ES _cat/nodes API获取节点信息

先确认ES集群当前有哪些节点,以及它们的IP角色:

curl -s http://localhost:9200/_cat/nodes?v

返回结果包含ip、node.role等字段,如果集群有多个节点,需要确认哪个节点处理了写请求,但单靠这个API看不到客户端来源。

利用_nodes/stats查看索引写入量

_nodes/stats接口可以按节点统计索引写入量(包括索引数、文档数、每秒写入速率),通过对比不同节点的写入量,可以推测数据是从哪个节点进入的,但无法直接定位到服务器。

更实用的方法是结合_nodes/stats的http字段,查看每个节点最近接收到的HTTP请求数:

curl -s http://localhost:9200/_nodes/stats/http | jq '.nodes[] | .http.total_opened'

怎么查看服务器往ES添加数据库,具体步骤是什么?

如果某台服务器的IP出现在连接日志中,但你没有直接证据,可以借助ES的“慢日志”功能。

慢日志定位写操作来源

开启ES的慢写入日志,可以记录写操作的耗时和来源IP,在索引模板或具体索引的settings中设置:

{
  "index.search.slowlog.threshold.query.warn": "10s",
  "index.indexing.slowlog.threshold.index.warn": "5s"
}

慢日志默认记录在ES_HOME/logs/,文件名包含_index_indexing_slowlog.log会包含client字段,表示客户端IP。

使用慢日志的优点是不需要全局开启审计日志,仅针对特定索引启用,性能开销小。

怎么查看服务器往es里添加数据库的常见问题

审计日志没开启,能否通过ES的查询日志追溯写入来源?

可以,但只能查写入记录,无法直接看到来源IP,ES的查询日志(_search)不会记录源IP,只有慢日志和审计日志才会,如果没开审计日志,最快的方法是到服务器上抓包或看应用日志。

如何区分是服务器直接写入还是通过中间件(如Logstash)写入?

看审计日志中的source.ip_address和principal字段,如果IP是中间件服务器的IP,且用户是logstash_system或自定义用户,说明是中间件写入,如果IP是业务服务器直接出现,且用户是elastic或应用用户,则可能是直接写入。

为什么ES中能看到数据,但服务器上找不到对应的写入进程?

可能的原因有两个:一是数据通过其他服务器转发的,比如中间件集群;二是服务器上的采集器进程已经停止,但遗留的缓存数据还在发送,建议检查ES集群的慢日志,看最后写入时间,再对照服务器上的进程启动时间,判断是否由历史数据造成。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/557203.html

赞 (0)
服务器的基础知识你掌握了吗?,有哪些核心知识?
上一篇 2026年8月8日 16:52
服务器双核e5性能到底怎么样,多少钱一台
下一篇 2026年8月8日 16:54

相关推荐

  • AIoT是用什么语言开发?AIoT开发主流编程语言有哪些

    AIoT(人工智能物联网)的开发并非依赖单一编程语言,而是基于多语言协同、分层架构的技术体系,核心结论是:C/C++主宰底层硬件与嵌入式开发,Python统领上层AI算法与数据处理,Java与JavaScript则广泛应用于应用层与云端交互,这种组合既保证了物联网设备对实时性和低功耗的苛刻要求,又满足了人工智能……

    2026年3月19日
    8900
  • 手机版MC宝可梦服务器如何进入,需要哪些模组和IP?

    手机进MC宝可梦服务器,目前只有一条靠谱的路:用PojavLauncher这类Java版启动器,在手机上跑Forge加Pixelmon模组,再手动添加服务器IP进服;基岩版和网易版手机客户端装不了Pixelmon模组,进不了真正的宝可梦服,这句话可能劝退一部分人,但先把预期摆正,后面少走弯路,下面按“选路线—看……

    程序编程 2026年10月21日
    100
  • PS4彩虹6号怎么换服务器,哪个节点延迟最低?

    PS4版《彩虹六号:围攻》换服务器不需要改PSN账号、也不用重新买游戏,进主菜单的「选项 → 通用 → 数据中心」选择目标区域,重启游戏即可生效,但这里有个关键前提:如果你连目标服务器的延迟不达标,系统会在匹配时自动把你送回延迟最低的服务器,所以真正能“锁住”服务器的,往往不是那个下拉菜单,而是你把网络质量压上……

    程序编程 2026年10月21日
    100
  • PHP如何连接数据库服务器?,连接失败怎么办?

    PHP连接数据库服务器的核心是使用mysqli或PDO扩展,通过指定主机、用户名、密码和数据库名建立连接,其中推荐使用PDO以获得更好的安全性和兼容性,很多新手在刚开始写PHP程序时,都会卡在数据库连接这一步,其实搞清楚原理后,你会发现它非常直接,数据库服务器就像一本放在远端柜子里的电话本,PHP通过特定的扩展……

    2026年8月12日
    800
  • SpinServers五一套餐性能如何?美国达拉斯服务器评测

    SpinServers五一套餐在达拉斯节点提供双路E5-2630L v3处理器、64GB内存及1TB NVMe存储,以极具性价比的配置成为运行大型WordPress站点、游戏服务器或高频交易应用的理想选择,硬件配置深度解析:为什么选择双路E5-2630L v3在服务器选型中,处理器是决定计算能力的核心,Spin……

    2026年6月30日
    2010
  • AIoT属于哪一类赛事?AIoT是什么

    AIoT(人工智能物联网)主要归属于“物联网创新应用”、“人工智能技术应用”以及“工业互联网与智能制造”三大类赛事体系,具体取决于赛事侧重硬件集成、算法优化还是行业落地场景,很多人听到AIoT这个词,第一反应是它属于某个单一的学科竞赛,比如计算机系或者电子系,其实不然,AIoT是一个跨界融合的概念,它像是一个……

    2026年6月13日
    2900
  • Dell R510怎么设U盘启动,BIOS如何设置U盘启动?

    戴尔PowerEdge R510设置U盘启动,核心操作是开机按F2进入BIOS,在Boot Sequence中将USB Storage Device移到第一位,按F10保存重启;如果只是想临时从U盘启动,直接按F12选择U盘即可,R510属于戴尔第11代PowerEdge服务器,BIOS界面偏传统,和现在的新款……

    2026年10月5日
    000
  • 江苏大带宽服务器为何要看多线BGP?,多线BGP有哪些好处?

    江苏大带宽服务器是否支持多线BGP,直接决定了它在江苏复杂网络环境下的访问稳定性和速度,是选择服务器时最关键的考量因素之一,江苏地处长三角网络枢纽,电信、联通、移动、教育网等多张骨干网在此交汇,用户群体分散在不同运营商,单线服务器只能覆盖单一网络,跨网访问时丢包、延迟问题频发,多线BGP通过动态路由协议,让服务……

    2026年8月10日
    1300
  • 数据字典excel怎么用?如何快速制作数据字典

    数据字典Excel不仅是记录字段信息的表格,更是打通业务与技术语言、降低沟通成本并提升数据治理效率的核心工具,很多团队在搭建数据仓库或进行系统开发时,往往忽视了数据字典的重要性,导致后期维护成本极高,一份标准的数据字典Excel模板,能够清晰定义每个字段的含义、类型、长度及约束条件,它就像数据库的“说明书”,让……

    2026年7月5日
    11710
  • AJAX调用和JSON数据怎么交互?前端开发JSON解析报错怎么解决

    AJAX调用与JSON数据结合,实现了前端页面无需刷新即可与服务器交换数据,这是构建现代单页应用(SPA)和高响应速度Web应用的核心技术基石,在传统的Web开发模式中,用户每次交互都需要重新加载整个页面,这种体验在移动互联网时代显得尤为笨重,AJAX(Asynchronous JavaScript and X……

    程序编程 2026年6月1日
    3600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注