ELK收集网络设备日志
分步走1、新建一台Linux虚拟机做为rsyslog服务器接收网络设备日志2、在上述虚拟机上部署filebeat将接收到的网络日志发送到logstash上3、最后通过logstash针对性配置将日志发送给es并在kibana上显示。1、部署rsyslog服务器1、新建rsyslog配置文件 [rootlocalhost ~]# vi /etc/rsyslog.d/10-network-output.conf # 定义模板按来源IP和日期分割日志文件 # 格式/var/log/network-devices/源IP/年-月-日.log template(nameNetworkDeviceLog typestring string/home/network-devices/%fromhost-ip%/%$YEAR%-%$MONTH%-%$DAY%.log ) # 规则将所有来自网络的日志排除本地 localhost写入上述模板 # 注意这里假设网络设备日志没有特定的 facility 限制如果有可改为 local0.* 等 :fromhost-ip, !isequal, 127.0.0.1 ?NetworkDeviceLog # 确保目录存在并设置权限 # mkdir -p /var/log/network-devices # chown -R syslog:adm /var/log/network-devices (CentOS可能是 root:root 或 syslogs:syslogs)2、启动rsyslog服务并检查端口514是否存在[rootlocalhost ~]# systemctl enable rsyslog [rootlocalhost ~]# systemctl start rsyslog [rootlocalhost ~]# systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2026-06-24 14:22:55 CST; 1h 45min ago Docs: man:rsyslogd(8) http://www.rsyslog.com/doc/ Main PID: 28876 (rsyslogd) CGroup: /system.slice/rsyslog.service └─28876 /usr/sbin/rsyslogd -n Jun 24 14:22:55 localhost.localdomain systemd[1]: Starting System Logging Service... Jun 24 14:22:55 localhost.localdomain rsyslogd[28876]: [origin softwarersyslogd swVersion8.24.0-55.el7 x-pid28876 x-infohttp://www.rsyslog.com] start Jun 24 14:22:55 localhost.localdomain systemd[1]: Started System Logging Service. [rootlocalhost ~]# netstat -lntup |grep 514 tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 28876/rsyslogd tcp6 0 0 :::514 :::* LISTEN 28876/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 28876/rsyslogd udp6 0 0 :::514 :::* 28876/rsyslogd3、网络设备上设置策略将选定日志发送到rsyslog的514端口(可由网工配置)4、检查是否有日志接收到[rootlocalhost home]# ll /home/network-devices/10.10.254.10/ total 32512 -rw-------. 1 root root 20922019 Jun 24 16:11 2026-06-24.log 有日志写入5、在rsyslog上部署filebeat并修改配置文件部署过程忽略 [rootlocalhost home]# vim /opt/filebeat/filebeat.yml filebeat.inputs: - type: log id: logs-app-network-devices #ID自定义 enabled: true paths: - /home/network-devices/*/*.log #日志路径自定义 #tags: [network-device] encoding: utf-8 fields: log_source: network-devices #系统-必填 区分索引 log_source_env: prod #环境 fields_under_root: false # multiline: # pattern: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3} # negate: true # match: after # max_lines: 1000 scan_frequency: 10s close_inactive: 1m output.logstash: hosts: [10.10.200.35:8888] compression_level: 3 loadbalance: true bulk_max_size: 2048 logging.level: info logging.to_files: true logging.files: path: /opt/filebeat/logs #目录自定义 name: filebeat.log keepfiles: 76、转到logstash服务器新建专门接收网络日志的conf[rootelk-lo-node03 pipeline]# pwd /opt/logstash/config/pipeline [rootelk-lo-node03 pipeline]# vim network-device-log.conf input { beats { port 8888 #与filebeat配置的发送端口一致 # 可选限制只接受来自特定 IP 的连接增强安全性 # host 0.0.0.0 } } filter { # 1. 识别来源根据 Filebeat 中定义的 fields.log_source 进行判断 if [fields][log_source] network-devices { # 2. 添加标签便于在 Kibana 中快速筛选或创建专用视图 mutate { add_tag [network_device_log] add_field { [metadata][target_index] logs-app-network-devices } } } # 其他来源的日志可以在这里添加 else if 分支处理 } output { # 调试输出确认数据结构和字段是否正确生产环境稳定后可注释掉 stdout { codec rubydebug } # 输出到 Elasticsearch elasticsearch { hosts [https://10.10.200.31:9200] # 动态索引名称 # 最终生成的索引名为: logs-app-network-2026.06.24 index %{[metadata][target_index]}-%{yyyy.MM.dd} # 认证信息 user elastic password JcJv*N7rUT6fE6fik4oY # SSL 配置根据你的 ES 集群实际情况调整 ssl_certificate_verification false # 模板管理可选如果希望自动应用映射模板 # manage_template true # template_name network-log-template } }7、因为pipeline包含多个conf需要额外修改pipelines.yml注明[rootelk-lo-node03 config]# ll total 48 -rw-r--r-- 1 root root 2924 Apr 1 17:49 jvm.options -rw-r--r-- 1 root root 8680 Apr 1 17:49 log4j2.properties -rw-r--r-- 1 root root 502 Jun 4 14:37 logstash.conf -rw-r--r-- 1 root root 342 Apr 1 17:49 logstash-sample.conf -rw-r--r-- 1 root root 15745 Apr 1 17:49 logstash.yml drwxr-xr-x 2 root root 98 Jun 24 16:21 pipeline -rw-r--r-- 1 root root 837 Jun 16 16:54 pipelines.yml -rw-r--r-- 1 root root 1696 Apr 1 17:49 startup.options [rootelk-lo-node03 config]# pwd /opt/logstash/config [rootelk-lo-node03 config]# vim pipelines.yml - pipeline.id: beats-elk-log path.config: /opt/logstash/config/pipeline/beats-elk-log.conf pipeline.workers: 2 pipeline.batch.size: 125 pipeline.batch.delay: 50 queue.type: persisted queue.max_bytes: 1gb queue.checkpoint.acks: 1024 queue.drain: false - pipeline.id: windows-winlogbeat-log path.config: /opt/logstash/config/pipeline/windows-winlogbeat-log.conf pipeline.workers: 2 pipeline.batch.size: 125 pipeline.batch.delay: 50 queue.type: persisted queue.max_bytes: 1gb queue.checkpoint.acks: 1024 queue.drain: false - pipeline.id: network-device-log path.config: /opt/logstash/config/pipeline/network-device-log.conf pipeline.workers: 2 pipeline.batch.size: 125 pipeline.batch.delay: 50 queue.type: persisted queue.max_bytes: 1gb queue.checkpoint.acks: 1024 queue.drain: false8、重启logstash并新开窗口检查是否有接收到网络设备日志[rootelk-lo-node03 config]# systemctl restart logstash [rootelk-lo-node03 config]# journalctl -u logstash.service -f Jun 24 16:23:29 elk-lo-node03 logstash[193222]: message Jun 24 16:23:29 10.10.254.10 5823434235018048(root) 43240501 HillstoneNetworks#EventNET: ARP entry is created, 10.10.254.65, 8840.33e8.c0d7, trust-vr, Jun 24 16:23:29 elk-lo-node03 logstash[193222]: timestamp 2026-06-24T08:16:47.271Z, Jun 24 16:23:29 elk-lo-node03 logstash[193222]: host { Jun 24 16:23:29 elk-lo-node03 logstash[193222]: name localhost.localdomain Jun 24 16:23:29 elk-lo-node03 logstash[193222]: }, Jun 24 16:23:29 elk-lo-node03 logstash[193222]: input { Jun 24 16:23:29 elk-lo-node03 logstash[193222]: type log Jun 24 16:23:29 elk-lo-node03 logstash[193222]: }, Jun 24 16:23:29 elk-lo-node03 logstash[193222]: ecs { Jun 24 16:23:29 elk-lo-node03 logstash[193222]: version 8.0.0 Jun 24 16:23:29 elk-lo-node03 logstash[193222]: }, Jun 24 16:23:29 elk-lo-node03 logstash[193222]: log { Jun 24 16:23:29 elk-lo-node03 logstash[193222]: offset 21896295, Jun 24 16:23:29 elk-lo-node03 logstash[193222]: file { Jun 24 16:23:29 elk-lo-node03 logstash[193222]: path /home/network-devices/10.10.254.10/2026-06-24.log 检查看到日志被logstash成功接收到9、kibana上检查索引管理上是否有自动创建索引(若没有则说明需要修改logstash上的对应conf文件)10、新建对应网络设备日志的数据视图11、进入discover检查日志以上完成~

相关新闻

多重共线性诊断与处理:VIF、条件指数与业务驱动的特征重构

多重共线性诊断与处理:VIF、条件指数与业务驱动的特征重构

1. 这不是“模型跑不起来”的锅,而是你没看清变量之间的悄悄话我带过二十多个从零起步的数据分析项目,也帮十多家公司做过模型诊断。每次遇到“特征重要性全飘忽不定”“系数符号反直觉”“p值忽大忽小像抽风”这类问题,八成以上不是算法选错…

2026/6/25 20:26:23阅读更多 →
LangChain 文本分割器完全指南:从原理到实战选择

LangChain 文本分割器完全指南:从原理到实战选择

如果说 RAG(检索增强生成)是现代 AI 应用的基础架构,那么文本分割就是这个基础架构的地基。选对分割器,你的向量检索精度能提升 30%;选错了,再好的模型也救不了你的 RAG 系统。为什么要关注文本分割&#x…

2026/6/25 20:26:23阅读更多 →
【课程设计/毕业设计】基于 Django 的网络设备分时租赁管理系统设计与实现 基于 Django 的一体化网络设备租赁管控系统设计与实现【附源码、数据库、万字文档】

【课程设计/毕业设计】基于 Django 的网络设备分时租赁管理系统设计与实现 基于 Django 的一体化网络设备租赁管控系统设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/25 20:26:23阅读更多 →
Orca-2-7B少样本数学推理实战:轻量化AI落地新范式

Orca-2-7B少样本数学推理实战:轻量化AI落地新范式

1. 项目概述:用极简提示撬动数学推理能力的实战切口“Few shots at a Math assistant with Orca-2-7B”——这个标题乍看像一句技术笔记,实则藏着当前轻量化AI落地中最务实的一条路径:不依赖海量标注数据、不堆算力、不调大模型全参&#xff…

2026/6/25 21:31:38阅读更多 →
2026年,这家口碑超棒的永康别墅门老牌源头厂家凭啥这么火?

2026年,这家口碑超棒的永康别墅门老牌源头厂家凭啥这么火?

领域挑战分析永康别墅门领域目前面临着几个核心的技术与落地难题。从原材料方面来看,市场上部分产品采用回收杂铝、再生铝掺料等劣质原材,这些材质纯净度低、分子结构疏松,导致门板容易出现变形、氧化发白、开裂起皮等问题,且环保…

2026/6/25 21:31:38阅读更多 →
计算机毕业设计基于java的信访管理系统的设计与实现

计算机毕业设计基于java的信访管理系统的设计与实现

随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建信访管理系统。本文通过课题背景、课题目的及意义相关技术,提出了一种上访信息、上访处理等于一体的系统构建方案。本…

2026/6/25 21:31:38阅读更多 →
C51-146-51单片机智能婴儿车床声音温湿度检测电机音乐146-2(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)

C51-146-51单片机智能婴儿车床声音温湿度检测电机音乐146-2(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)

C51-146-51单片机智能婴儿车床声音温湿度检测电机音乐146-2(设计源文件万字报告讲解)(支持资料、图片参考_降重降ai) 产品功能描述: 本系统由STC89C52单片机、DHT11温湿度传感器、声音检测、蜂鸣器驱动、音乐片驱动、LCD1602液晶显示、电机及…

2026/6/25 21:31:38阅读更多 →
pytest-cloud-foundry插件:实现RPA云原生自动化测试的实战指南

pytest-cloud-foundry插件:实现RPA云原生自动化测试的实战指南

1. 项目概述:当RPA遇上云原生测试如果你正在用Python和pytest捣鼓自动化测试,尤其是那些需要和云平台(比如Cloud Foundry)打交道的RPA(机器人流程自动化)项目,那你肯定遇到过这样的麻烦&#xf…

2026/6/25 21:31:38阅读更多 →
Joomla SQL注入漏洞CVE-2017-8917:从原理到实战的靶场复现指南

Joomla SQL注入漏洞CVE-2017-8917:从原理到实战的靶场复现指南

1. 项目概述:从靶场到实战的漏洞复现之旅 拿到这个标题,很多朋友可能会想,这不就是一个老漏洞的复现教程吗?确实,CVE-2017-8917是一个在安全圈内广为人知的Joomla 3.7.0版本SQL注入漏洞。但我想分享的,远不…

2026/6/25 21:26:38阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/25 2:52:24阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/25 9:01:34阅读更多 →
面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

上半年跳槽,面了十几家公司。说句实话,不是能力不行,是面试现场太容易崩了。 明明准备了一周,面试官换个问法脑子就一片白。面完之后那个懊悔——其实我会的。 后来开始试市面上的AI面试辅助工具。前前后后装了5款,踩…

2026/6/25 11:52:11阅读更多 →
Claude Code 提示词设计:从塑造“人格”到建立“状态机”

Claude Code 提示词设计:从塑造“人格”到建立“状态机”

当前 AI Agent 设计的核心痛点在于:大模型不缺写代码的能力,缺的是克制力、边界感和验证逻辑。Prompt 不再是用来塑造“人格”的,而是用来建立“状态机(State Machine)”和“行为门禁(Guardrails&#xff0…

2026/6/25 11:52:11阅读更多 →
MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MONKEYCODE 教程系列 MonkeyCode教程及推广系列 MC-037 自定义 Skill 开发:创建你的AI能力模块 >官网链接注册更放心哦https://monkeycode-ai.com/?ic019e0aed-c823-783c-b08a-4f030f891e4e 系列: 不爱土豆唯爱马铃薯 MonkeyCode 教程系列 字数: 约 1400 字…

2026/6/25 11:52:11阅读更多 →