両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン |
softwares:fluent_bit [2024/01/19 13:20] – kobayash | softwares:fluent_bit [2024/03/15 12:38] (現在) – kobayash |
---|
| |
==== Internal links ==== | ==== Internal links ==== |
* Installation of Fluent Bit on Ubuntu MATE 22.04.3 LTS | * [[softwares:fluent_bit:installation_ubuntu_mate_22_04_3|Installation of Fluent Bit on Ubuntu MATE 22.04.3 LTS]] |
| * [[softwares:fluent_bit:installation_macos_12_3_1_intel|Installation of Fluent Bit on MacOS 12.3.1 Montery (Intel)]] |
| * [[softwares:fluent_bit:fluent_bit_go_redit_output|Fluent Bit Redis output plugin]] |
| * [[softwares:fluent_bit:fluent_bit_pgsql|Fluent Bit + PostgreSQL]] |
| |
==== インストール ==== | |
* Ubuntu MATE 22.04.3 LTS | |
* <code>$ cd $HOME/nestdaq/src | |
$ git clone https://github.com/fluent/fluent-bit | |
$ cd fluent-bit | |
$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \ | |
-B ./build -S . | |
</code> | |
| |
==== Error ==== | |
* Flex と Bison がないと cmake 時、以下のエラーになる。<code> | |
$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \ | |
-B ./build -S . | |
-- The C compiler identification is GNU 11.4.0 | |
< Omitted > | |
-- Found Git: /usr/bin/git (found version "2.34.1") | |
-- Git hash: 71746b35718e856a5f8615f95f35d450a142e8cd | |
-- Could NOT find FLEX (missing: FLEX_EXECUTABLE) (Required is at least version "2") | |
-- Could NOT find BISON (missing: BISON_EXECUTABLE) (Required is at least version "3") | |
-- Enabling FLB_REGEX since FLB_PARSER requires | |
CMake Error at CMakeLists.txt:472 (message): | |
Record Accessor feature requires Flex and Bison in your system. | |
| |
This is a build time dependency, you can either install the dependencies or | |
disable the feature setting the CMake option -DFLB_RECORD_ACCESSOR=Off . | |
| |
| |
-- Configuring incomplete, errors occurred! | |
See also "/home/nestdaq/nestdaq/src/fluent-bit/build/CMakeFiles/CMakeOutput.log". | |
</code> | |
* cmake時の謎のエラーメッセージ。libyaml-dev をインストールすれば良いかと思ったが、それだけではだめで、pkg-config パッケージもインストールすべし。<code>$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq -B ./build -S . | |
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) | |
| |
<Omitted> | |
| |
-- CFL found in the system. OK | |
Found posix_memalign in stdlib.h -DHAVE_POSIX_MEMALIGN_IN_STDLIB -DHAVE_POSIX_MEMALIGN | |
-- Plugin dirlisting enabled | |
-- Plugin liana enabled [== static ==] | |
-- Plugin mandril enabled | |
-- LINKING monkey-liana-static; | |
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) | |
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) | |
CMake Error at CMakeLists.txt:856 (message): | |
YAML development dependencies required for YAML configuration format | |
handling. | |
| |
This is a build time dependency, you can either install the dependencies or | |
disable the feature setting the CMake option -DFLB_CONFIG_YAML=Off . | |
| |
| |
-- Configuring incomplete, errors occurred! | |
See also "/home/nestdaq/nestdaq/src/fluent-bit/build/CMakeFiles/CMakeOutput.log". | |
See also "/home/nestdaq/nestdaq/src/fluent-bit/build/CMakeFiles/CMakeError.log". | |
</code> libyaml-dev, lib pkg-config をインストール。cmake のエラーが解消せず、おそらく必要なかったが、python3-yaml, libyaml-cpp-dev パッケージもインストールした。<code>$ sudo apt install libyaml-dev python3-yaml libyaml-cpp-dev pkg-config </code> | |
* make 時エラーメッセージ。openssl のヘッダーが見つからない make 時エラーはなんか知らないけどよく見る。cmake は通るのに、make 時にエラーなるのはなんでだろう。CERN ROOT v5 をコンパイルするときも見た気がする。<code>$ make | |
| |
<Omitted> | |
| |
[ 47%] Building C object src/CMakeFiles/fluent-bit-static.dir/flb_hmac.c.o | |
In file included from /home/nestdaq/nestdaq/src/fluent-bit/src/flb_hmac.c:18: | |
/home/nestdaq/nestdaq/src/fluent-bit/include/fluent-bit/flb_hmac.h:22:10: fatal error: openssl/err.h: No such file or directory | |
22 | #include <openssl/err.h> | |
| ^~~~~~~~~~~~~~~ | |
compilation terminated. | |
make[2]: *** [src/CMakeFiles/fluent-bit-static.dir/build.make:790: src/CMakeFiles/fluent-bit-static.dir/flb_hmac.c.o] Error 1 | |
make[1]: *** [CMakeFiles/Makefile2:7698: src/CMakeFiles/fluent-bit-static.dir/all] Error 2 | |
make: *** [Makefile:156: all] Error 2</code> apt search ssl として、openssl/err.h のヘッダーが含まれていそうなパッケージを探す。<code>$ apt search ssl | |
<Omitted> | |
libssl-dev/jammy-updates,jammy-security 3.0.2-0ubuntu1.12 amd64 | |
Secure Sockets Layer toolkit - development files | |
<Omitted> | |
</code> 経験的に、libssl-dev をインストールすると、openssl/err.h が入りそうな予感がする。あと、apt-file コマンドがインストールされていれば、もっと直接的に openssl/err.h ヘッダーが含まれるパッケージを以下のように探せる。<code>$ apt-file search openssl/err.h | |
android-libboringssl-dev: /usr/include/android/openssl/err.h | |
libnode-dev: /usr/include/node/openssl/err.h | |
libssl-dev: /usr/include/openssl/err.h | |
libwolfssl-dev: /usr/include/cyassl/openssl/err.h | |
libwolfssl-dev: /usr/include/wolfssl/openssl/err.h | |
python3-pycparser: /usr/share/python3-pycparser/fake_libc_include/openssl/err.h | |
</code> この結果からどれをインストールすれば良いか判断する必要があるが、通常コンパイルするときにデフォルトで(?)指定される include ディレクトリは /usr/include なので、このディレクトリ直下にある openssl/err.h がインストールされれば良い。そのため、パッケージ libssl-dev をインストールすれば良いことがわかる。以下のコマンドでインストール可能。<code>$ sudo apt install libssl-dev</code> | |
* make 時に以下のエラーがでる。<code> | |
[ 98%] Building C object src/CMakeFiles/fluent-bit-bin.dir/__/lib/lwrb/lwrb/src/lwrb/lwrb.c.o | |
[ 98%] Linking C executable ../bin/fluent-bit | |
/usr/bin/ld: ../library/libfluent-bit.a(flb_tls.c.o): in function `tls_info_callback': | |
/home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:75: undefined reference to `SSL_get_fd' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:88: undefined reference to `SSL_state_string_long' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:93: undefined reference to `SSL_alert_desc_string_long' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:93: undefined reference to `SSL_alert_type_string_long' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:100: undefined reference to `SSL_state_string_long' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:104: undefined reference to `SSL_get_error' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:112: undefined reference to `SSL_state_string_long' | |
/usr/bin/ld: ../library/libfluent-bit.a(flb_tls.c.o): in function `tls_context_destroy': | |
/home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:124: undefined reference to `SSL_CTX_free' | |
/usr/bin/ld: ../library/libfluent-bit.a(flb_tls.c.o): in function `load_system_certificates': | |
/home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:192: undefined reference to `SSL_CTX_load_verify_locations' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:195: undefined reference to `ERR_print_errors_fp' | |
/usr/bin/ld: ../library/libfluent-bit.a(flb_tls.c.o): in function `tls_context_create': | |
/home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:239: undefined reference to `TLS_server_method' | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/tls/openssl.c:239: undefined reference to `SSL_CTX_new' | |
< Omitted > | |
/usr/bin/ld: /home/nestdaq/nestdaq/src/fluent-bit/src/flb_crypto.c:264: undefined reference to `ERR_get_error' | |
collect2: error: ld returned 1 exit status | |
make[2]: *** [src/CMakeFiles/fluent-bit-bin.dir/build.make:403: bin/fluent-bit] Error 1 | |
make[1]: *** [CMakeFiles/Makefile2:7757: src/CMakeFiles/fluent-bit-bin.dir/all] Error 2 | |
make: *** [Makefile:156: all] Error 2 | |
</code> apt search tls で検索すると、libtls-dev というパッケージがヒットする。これをインストールすれば良さそうな感じがする。<code>$ sudo apt install libtls-dev | |
< Omitted > | |
libtls-dev/jammy 3.4.1-2build1 amd64 | |
libtls development files | |
< Omitted > | |
</code> このパッケージをインストールしてみる。<code>$ sudo apt install libtls-dev</code> そのあと、make したが、同じエラーがでる。他にも、libssl3, libtlsh-dev, libcrypto++-dev, libtls-dev などインストールしたがだめ。どうしたものか。。。参照しているディレクトリがだめなのかと考え直し、cmake を行ってから、もう一度 make してみると make が通った。 | |
| |