作者信息:https://home.cnblogs.com/u/huangjiabobk

在运维工作中,logstash的输入源有哪些?

在运维工作中,Logstash 作为数据采集和处理的核心工具,支持多种输入源,能够从不同的数据源中收集数据。以下是 Logstash 常见的输入源及其配置方式:

1. 文件(File)

从本地文件或日志文件中读取数据,适用于采集服务器上的日志文件。

  • 配置示例

    input {
      file {
        path => "/var/log/nginx/access.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
      }
    }
    
2. Beats

接收来自 Filebeat 或其他 Beats 的数据,常用于与轻量级采集器配合使用。

  • 配置示例

    input {
      beats {
        port => 5044
      }
    }
    
3. Kafka

从 Kafka 主题中消费数据,适用于大规模分布式消息队列场景。

  • 配置示例

    input {
      kafka {
        bootstrap_servers => "localhost:9092"
        topics => ["logs"]
      }
    }
    
4. JDBC(数据库)

从数据库中读取数据,支持多种数据库(如 MySQL、PostgreSQL 等)。

  • 配置示例

    input {
      jdbc {
        jdbc_driver_library => "/path/to/mysql-connector-java.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
        jdbc_user => "root"
        jdbc_password => "password"
        schedule => "* * * * *"
      }
    }
    
5. Syslog

接收 Syslog 数据,适用于传统的系统日志采集。

  • 配置示例

    input {
      syslog {
        port => 514
      }
    }
    
6. HTTP

通过 HTTP 接收数据,适用于从 Web 应用或其他服务接收日志。

  • 配置示例

    input {
      http {
        port => 8080
      }
    }
    
7. TCP/UDP Socket

支持基于 TCP 或 UDP 协议的日志传输,适用于网络设备或应用的日志采集。

  • 配置示例

    input {
      tcp {
        port => 5000
      }
      udp {
        port => 5001
      }
    }
    
8. Redis

从 Redis 数据库或 Redis Pub/Sub 中读取数据,适用于缓存和消息队列场景。

  • 配置示例

    input {
      redis {
        data_type => "list"
        key => "logstash"
        host => "localhost"
        port => 6379
      }
    }
    
9. AWS Kinesis Data Streams

基于 AWS 服务的流式日志采集,适用于云原生应用。

  • 配置示例

    input {
      aws_kinesis {
        stream_name => "my-kinesis-stream"
        region => "us-east-1"
      }
    }
    
10. JMS

从 JMS 消息队列中读取数据,适用于企业级消息中间件。

  • 配置示例

    input {
      jms {
        destination => "queue:MyQueue"
        topic => "topic:MyTopic"
        jndi_jms_url => "vm://localhost:5447"
        jndi_context => {
          java.naming.factory.initial => "org.apache.activemq.jndi.ActiveMQInitialContextFactory"
          java.naming.provider.url => "vm://localhost:5447"
          java.naming.factory.queue => "org.apache.activemq.ActiveMQQueue"
          java.naming.factory.topic => "org.apache.activemq.ActiveMQTopic"
        }
      }
    }
    
11. 其他输入源

Logstash 还支持其他多种输入源,如串口设备(Serial Port)、Grok(基于正则表达式匹配日志字段)等。

综上所述,通过这些输入源,Logstash 可以灵活地从各种数据源中采集数据,满足不同场景下的日志和数据处理需求。

posted @ 2025-04-12 23:12  黄嘉波  阅读(54)  评论(0)    收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波