文書の過去の版を表示しています。


Fluent Bit

軽量なパイプラインツール。NestDAQ において FairMQ デバイスが大量に立ち上がっているときに、標準出力のメッセージを見るのはしんどいので、これを見やすくしたいとというモチベーションがあった。Fluent Bit はロギングツールというよりパイプラインツールなので、助けになるかわからないが、プラグインによって実現されるインターフェース周りが充実しいるため、有効かもしれないということで、調査を行っている。

インストール

  • Ubuntu MATE 22.04.3 LTS
  • $ cd $HOME/nestdaq/src
    $ git clone https://github.com/fluent/fluent-bit
    $ cd fluent-bit
    $ cmake -DCMAKE_INSTALL_PREFIX=$HOME/nestdaq \
      -B ./build -S .

Error

  • Flex と Bison がないと cmake 時、以下のエラーになる。
    $ 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".
  • cmake時の謎のエラーメッセージ。libyaml-dev をインストールすれば良いかと思ったが、それだけではだめで、pkg-config パッケージもインストールすべし。
    $ 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".
  • libyaml-dev, lib pkg-config をインストール。cmake のエラーが解消せず、おそらく必要なかったが、python3-yaml, libyaml-cpp-dev パッケージもインストールした。
    $ sudo apt install libyaml-dev python3-yaml libyaml-cpp-dev pkg-config 
  • make 時エラーメッセージ。openssl のヘッダーが見つからない make 時エラーはなんか知らないけどよく見る。cmake は通るのに、make 時にエラーなるのはなんでだろう。CERN ROOT v5 をコンパイルするときも見た気がする。
    $ 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
  • apt search ssl として、openssl/err.h のヘッダーが含まれていそうなパッケージを探す。
    $ apt search ssl
    <Omitted>
    libssl-dev/jammy-updates,jammy-security 3.0.2-0ubuntu1.12 amd64
      Secure Sockets Layer toolkit - development files
    <Omitted>

    あと、apt-file コマンドがインストールされていれば、もっと直接的に以下のように探せる。

    $ 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

    この結果からどれをインストールすれば良いか判断する必要があるが、通常コンパイルするときにデフォルトで(?)指定される include ディレクトリは /usr/include なので、このディレクトリ直下にある openssl/err.h がインストールされれば良い。そのため、パッケージ libssl-dev をインストールすれば良いことがわかる。

softwares/fluent_bit.1705561141.txt.gz · 最終更新: 2024/01/18 15:59 by kobayash
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0