1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gouyongchao-fluent-bit

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
GOLANG_OUTPUT_PLUGIN.md 3.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.06.2025 04:41 807c048

Fluent Bit + Golang output plugins

Текущая версия разработки Fluent Bit интегрирует поддержку загрузки общих плагинов, написанных на Golang. Интерфейс все еще требует некоторых корректировок, но он функционален. Ожидается выпуск Fluent Bit v0.10 с полной поддержкой Go.

Начало работы

Скомпилируйте Fluent Bit с поддержкой Golang, например:

$ cd build/
$ cmake -DFLB_DEBUG=On -DFLB_PROXY_GO=On ../
$ make

После компиляции, можно заметить новую опцию в бинарном файле -e, которая означает внешний плагин, например:

$ bin/fluent-bit -h
Использование: fluent-bit [OPTION]

Доступные опции
  -c, --config=FILE	укажите опциональный файл конфигурации
  -d, --daemon		запустите Fluent Bit в фоновом режиме
  -f, --flush=SECONDS	таймаут сброса в секундах (по умолчанию: 5)
  -i, --input=INPUT	укажите вход
  -m, --match=MATCH	укажите совпадение плагина, то же самое, что и '-p match=abc'
  -o, --output=OUTPUT	укажите выход
  -p, --prop="A=B"	укажите свойство конфигурации плагина
  -e, --plugin=FILE	загрузите внешний плагин (общая библиотека)
  ...

Создание плагина на Go

Чтобы упростить создание плагинов, мы опубликовали пакет fluent-bit-go:

http://github.com/fluent/fluent-bit-go

В том же репозитории опубликован пример плагина под названием out_multiinstance, который просто выводит записи в стандартный вывод:

https://github.com/fluent/fluent-bit-go/tree/master/examples/out_multiinstance

Минимальный Go-плагин выглядит следующим образом:

package main```md
Код выше является шаблоном для написания плагина вывода. Очень важно сохранить имя пакета как `main` и добавить явную функцию `main()`. Это требование, так как код будет собран как общая библиотека. Чтобы собрать код выше, используйте следующую команду:

```go
$ go build -buildmode=c-shared -o out_gstdout.so out_gstdout.go

После сборки будет доступна общедоступная библиотека под названием out_gstdout.so. Очень важно удостовериться, что окончательный файл .so соответствует ожиданиям. Выполнив команду ldd для библиотеки, вы должны увидеть что-то подобное:

$ ldd out_gstdout.so
	linux-vdso.so.1 =>  (0x00007fff561dd000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc4aeef0000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc4aeb27000)
	/lib64/ld-linux-x86-64.so.2 (0x000055751a4fd000)

Запуск Fluent Bit + нового плагина

$ bin/fluent-bit -e /path/to/out_gstdout.so -i cpu -o gstdout

Для получения дополнительной информации или помощи напишите на eduardo@treasure-data.com


Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/gouyongchao-fluent-bit.git
git@api.gitlife.ru:oschina-mirror/gouyongchao-fluent-bit.git
oschina-mirror
gouyongchao-fluent-bit
gouyongchao-fluent-bit
master