什么是输入插件
输入插件
输入插件是 LoongCollector 的核心组件之一,负责从各类数据源高效采集数据。LoongCollector 提供两种类型的输入插件,分别针对不同的使用场景:
- 原生插件(C++): 高性能、低开销的首选方案
- 扩展插件(Golang): 灵活可扩展的补充方案
插件类型介绍
原生插件
原生插件采用 C++实现,具有以下显著优势:
- 卓越的性能表现和极低的资源开销
- 专注于常见数据源的高效采集
- 生产环境首选的稳定采集方案
| 名称 | 提供方 | 功能简介 |
|---|---|---|
input_file文本日志 | SLS 官方 | 文本采集。 |
input_container_stdio容器标准输出 | SLS 官方 | 从容器标准输出/标准错误流中采集日志。 |
input_file_security文件安全数据 | SLS 官方 | 文件安全数据采集。 |
input_network_observer网络可观测数据 | SLS 官方 | 网络可观测数据采集。 |
input_network_security网络安全数据 | SLS 官方 | 网络安全数据采集。 |
input_process_security进程安全数据 | SLS 官方 | 进程安全数据采集。 |
input_internal_metrics自监控指标数据 | SLS 官方 | 导出自监控指标数据。 |
input_internal_alarms自监控告警数据 | SLS 官方 | 导出自监控告警数据。 |
扩展插件
扩展插件基于 Golang 实现,具有以下特点:
- 性能与资源开销均衡
- 支持丰富多样的数据源接入
- 开发门槛低,易于定制与扩展
- 适用于特定场景的数据采集需求
| 名称 | 提供方 | 功能简介 |
|---|---|---|
input_command脚本执行数据 | 社区 didachuxing | 采集脚本执行数据。 |
input_docker_stdout容器标准输出 | SLS 官方 | 从容器标准输出/标准错误流中采集日志。 |
metric_debug_file文本日志(debug) | SLS 官方 | 用于调试的读取文件内容的插件。 |
metric_input_exampleMetricInput 示例插件 | SLS 官方 | MetricInput 示例插件。 |
metric_meta_host主机 Meta 数据 | SLS 官方 | 主机 Meta 数据。 |
metric_mockMock 数据-Metric | SLS 官方 | 生成 metric 模拟数据的插件。 |
metric_system_v2主机监控数据 | SLS 官方 | 主机监控数据。 |
service_canalMySQL Binlog | SLS 官方 | 将 MySQL Binlog 输入到 iLogtail。 |
service_go_profileGO Profile | SLS 官方 | 采集 Golang pprof 性能数据。 |
service_gpu_metricGPU 数据 | SLS 官方 | 支持收集英伟达 GPU 指标。 |
service_http_serverHTTP 数据 | SLS 官方 | 接收来自 unix socket、http/https、tcp 的请求,并支持 sls 协议、otlp 等多种协议。 |
service_input_exampleServiceInput 示例插件 | SLS 官方 | ServiceInput 示例插件。 |
service_journalJournal 数据 | SLS 官方 | 从原始的二进制文件中采集 Linux 系统的 Journal(systemd)日志。 |
service_kafkaKafka | SLS 官方 | 将 Kafka 数据输入到 iLogtail。 |
service_mockMock 数据-Service | SLS 官方 | 生成 service 模拟数据的插件。 |
service_mssqlSqlServer 查询数据 | SLS 官方 | 将 Sql Server 数据输入到 iLogtail。 |
service_otlpOTLP 数据 | 社区 Zhu Shunjia | 通过 http/grpc 协议,接收 OTLP 数据。 |
service_pgsqlPostgreSQL 查询数据 | SLS 官方 | 将 PostgresSQL 数据输入到 iLogtail。 |
service_snmp收集 SNMP 协议机器信息 | SLS 官方 | 收集 SNMP 协议机器信息. |
service_syslogSyslog 数据 | SLS 官方 | 采集 syslog 数据。 |
插件特性对比
| 特性 | 原生插件 | 扩展插件 |
|---|---|---|
| 实现语言 | C++ | Golang |
| 性能表现 | 极致性能 | 性能适中 |
| 资源开销 | 极低开销 | 开销适中 |
| 功能覆盖 | 专注常见场景 | 广泛覆盖 |
| 开发难度 | 中等 | 较低 |
选型建议
-
推荐使用原生插件的场景:
- 对性能和资源消耗有严格要求
- 采集常见标准数据源
- 部署在资源受限环境
-
适合使用扩展插件的场景:
- 需要采集特殊或自定义数据源
- 有特定的定制化需求
- 需要快速开发和迭代
- 性能要求相对灵活
使用说明
- 插件组合规则:
- 原生 Input 插件: 可配合原生/扩展 Processor 插件使用,支持 SPL 插件
- 扩展 Input 插件: 仅支持扩展 Processor 插件
- 详细说明请参考处理插件文档