首页主机资讯Linux Syslog与ELK Stack的结合

Linux Syslog与ELK Stack的结合

时间2025-11-19 11:43:03发布访客分类主机资讯浏览914
导读:Linux Syslog与ELK Stack集成实践指南 一 架构与端口规划 采集链路建议:Linux 主机使用 rsyslog/syslog-ng 发送日志 → Logstash Syslog 输入插件(UDP/TCP 514) 或 B...

Linux Syslog与ELK Stack集成实践指南

一 架构与端口规划

  • 采集链路建议:Linux 主机使用 rsyslog/syslog-ng 发送日志 → Logstash Syslog 输入插件(UDP/TCP 514)Beats/Filebeat 514Elasticsearch 存储 → Kibana 可视化。
  • 端口与协议:
    • Syslog 常用端口:514/UDP、514/TCP(生产建议优先 TCP 或配合 TLS)。
    • Beats 常用端口:5044/TCP(Logstash 的 Beats 输入)。
  • 索引命名:按日滚动,如 syslog-%{ +YYYY.MM.dd} ,便于生命周期管理与检索。

二 快速落地步骤

  • 步骤1 配置 Linux 主机发送 Syslog
    • 使用 rsyslog 发送(示例为 UDP,生产建议 TCP/TLS):
      • 编辑 /etc/rsyslog.conf/etc/rsyslog.d/50-default.conf,添加:
        • . @< logstash_ip> :514 # UDP
        • . @@< logstash_ip> :514 # TCP
      • 重启服务:sudo systemctl restart rsyslog
    • 如需在 Logstash 所在主机接收远程 Syslog,可启用本地 rsyslog 监听(UDP/TCP 514),再转发至 Logstash。
  • 步骤2 部署并配置 Logstash 接收 Syslog
    • 示例(Syslog 输入插件,监听 514):
      • input { syslog { port => 514 type => “syslog” } } filter {

        可按需添加 grok/date 等解析

        } output { elasticsearch { hosts => [“http://< es_host> :9200”] index => “syslog-%{ +YYYY.MM.dd} ” } }
    • 启动:sudo systemctl start logstash(或按环境使用命令行启动)。
  • 步骤3 部署并配置 Elasticsearch 与 Kibana
    • Elasticsearch:确保集群运行并可达(如单节点示例配置 discovery.type: single-node)。
    • Kibana:配置 server.host: “0.0.0.0”,连接 Elasticsearch;访问 http://< kibana_host> :5601
  • 步骤4 在 Kibana 创建索引模式并验证
    • 进入 Management → Stack Management → Index Patterns,创建 syslog-*,时间字段选 @timestamp
    • Discover 查看日志;可用 logger “Test log message” 产生测试日志。

三 可选方案与对比

方案 采集路径 优点 注意点
Logstash Syslog 输入插件 rsyslog → Logstash(:514) → ES 原生解析、灵活过滤 需 root 或 CAP_NET_BIND_SERVICE 才能监听 514;建议启用 TLS
Beats/Filebeat → Logstash rsyslog → Filebeat(:514) → Logstash(:5044) → ES Beat 轻量、资源占用低、易扩展 需正确配置 Filebeat 输入与 Logstash 的 Beats 输入
rsyslog 本地文件 → Filebeat rsyslog 写文件 → Filebeat 读取 → Logstash → ES 避免直接占用 514,便于多路复用 需正确设置 rsyslog 文件权限与 Filebeat 路径/权限
  • 若选择 Filebeat 方案,示例要点:
    • Filebeat 输入(示例):
      • filebeat.inputs:
        • type: syslog port: 514 protocol: udp
    • Logstash 输入:
      • input { beats { port => 5044 } }

四 解析与安全加固

  • 日志解析建议
    • 使用 grok 解析常见 Syslog 格式,配合 date 将时间写入 @timestamp,示例:
      • filter { grok { match => { “message” => “%{ TIMESTAMP_ISO8601:timestamp} %{ LOGLEVEL:loglevel} %{ GREEDYDATA:message} ” } } date { match => [ “timestamp”, “ISO8601” ] target => “@timestamp” } }
    • 针对 auth、kern、daemon 等 facility 可编写细化模式,提高可读性与可检索性。
  • 安全与优化
    • 加固传输:启用 SSL/TLS(Logstash 与 ES、Beats 与 Logstash 之间),限制来源 IP,开启防火墙。
    • 权限与端口:监听 514 通常需要管理员权限;若不便以 root 运行 Logstash,可改用 Beats/Filebeat 方案或设置端口转发。
    • 性能与容量:按日索引、设置 ILM(索引生命周期管理)、合理分配 ES 堆内存Logstash 工作线程,避免丢日志与查询抖动。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux Syslog与ELK Stack的结合
本文地址: https://pptw.com/jishu/751010.html
Linux Syslog在自动化运维中的作用 如何用Linux Syslog进行日志审计

游客 回复需填写必要信息