4 changed files with 298 additions and 0 deletions
@ -0,0 +1,69 @@
|
||||
## |
||||
## fluentbit.conf -- Fluent Bit Configuration |
||||
## |
||||
|
||||
[SERVICE] |
||||
Daemon On |
||||
Buffer_Path @l_prefix@/var/fluentbit/db/ |
||||
Buffer_Workers 4 |
||||
Flush 4 |
||||
Log_Level info |
||||
HTTP_Server Off |
||||
HTTP_Listen 127.0.0.1 |
||||
HTTP_Port 2020 |
||||
|
||||
# local CPU |
||||
[INPUT] |
||||
Name cpu |
||||
Tag cpu.local |
||||
Interval_Sec 1 |
||||
|
||||
# local RAM |
||||
[INPUT] |
||||
Name mem |
||||
Tag mem.usage |
||||
Interval_Sec 1 |
||||
|
||||
# local process |
||||
[INPUT] |
||||
Name proc |
||||
Tag process.fluent-bit |
||||
Proc_Name fluent-bit |
||||
Alert false |
||||
Mem true |
||||
Interval_Sec 1 |
||||
Interval_NSec 0 |
||||
|
||||
# local disk |
||||
[INPUT] |
||||
Name disk |
||||
Tag disk.all |
||||
Interval_Sec 1 |
||||
Interval_NSec 0 |
||||
|
||||
# remote Fluent protocol |
||||
#[INPUT] |
||||
# Name forward |
||||
# Listen 127.0.0.1 |
||||
# Port 24224 |
||||
# Buffer 512000 |
||||
|
||||
# remote MQTT-over-TCP protocol |
||||
#[INPUT] |
||||
# Name mqtt |
||||
# Tag mqtt.local |
||||
# Listen 127.0.0.1 |
||||
# Port 1883 |
||||
|
||||
# remote Fluent protocol |
||||
#[OUTPUT] |
||||
# Name forward |
||||
# Host 127.0.0.1 |
||||
# Port 24224 |
||||
|
||||
# local file |
||||
[OUTPUT] |
||||
Name file |
||||
Match * |
||||
Path @l_prefix@/var/fluentbit/log/fluentbit.json |
||||
|
@ -0,0 +1,27 @@
|
||||
Index: lib/chunkio/deps/crc32/crc32.c
|
||||
--- lib/chunkio/deps/crc32/crc32.c.orig 2019-03-27 19:48:51.000000000 +0100
|
||||
+++ lib/chunkio/deps/crc32/crc32.c 2019-04-07 00:19:48.611983000 +0200
|
||||
@@ -29,8 +29,10 @@
|
||||
# define htole16(x) (x)
|
||||
# define be16toh(x) ntohs(x)
|
||||
# define le16toh(x) (x)
|
||||
-#else
|
||||
+#elif defined(__linux__)
|
||||
# include <endian.h>
|
||||
+#elif defined(__FreeBSD__)
|
||||
+# include <sys/endian.h>
|
||||
#endif
|
||||
|
||||
|
||||
Index: lib/chunkio/src/cio_file.c
|
||||
--- lib/chunkio/src/cio_file.c.orig 2019-03-27 19:48:51.000000000 +0100
|
||||
+++ lib/chunkio/src/cio_file.c 2019-04-07 00:24:16.273919000 +0200
|
||||
@@ -621,7 +621,7 @@
|
||||
|
||||
/* macOS does not have fallocate().
|
||||
* So, we should use ftruncate always. */
|
||||
-#ifndef __APPLE__
|
||||
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
|
||||
if (new_size > cf->alloc_size) {
|
||||
/*
|
||||
* To increase the file size we use fallocate() since this option
|
@ -0,0 +1,136 @@
|
||||
## |
||||
## fluentbit.spec -- OpenPKG RPM Package Specification |
||||
## Copyright (c) 2000-2019 OpenPKG Project <http://openpkg.org/> |
||||
## |
||||
## Permission to use, copy, modify, and distribute this software for |
||||
## any purpose with or without fee is hereby granted, provided that |
||||
## the above copyright notice and this permission notice appear in all |
||||
## copies. |
||||
## |
||||
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
||||
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
||||
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
||||
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
||||
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
||||
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
||||
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
||||
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
## SUCH DAMAGE. |
||||
## |
||||
|
||||
# package information |
||||
Name: fluentbit |
||||
Summary: Log Collector Daemon |
||||
URL: https://fluentbit.io/ |
||||
Vendor: Treasure Data |
||||
Packager: OpenPKG Project |
||||
Distribution: OpenPKG Community |
||||
Class: EVAL |
||||
Group: Logging |
||||
License: Apache |
||||
Version: 1.0.6 |
||||
Release: 20190407 |
||||
|
||||
# list of sources |
||||
Source0: https://github.com/fluent/fluent-bit/archive/v%{version}.tar.gz |
||||
Source1: fluentbit.conf |
||||
Source2: rc.fluentbit |
||||
Patch0: fluentbit.patch |
||||
|
||||
# build information |
||||
BuildPreReq: OpenPKG, openpkg >= 20160101 |
||||
PreReq: OpenPKG, openpkg >= 20160101 |
||||
|
||||
%description |
||||
Fluent Bit is a Data Forwarder. It's part of the Fluentd Ecosystem. |
||||
Fluent Bit allows collection of information from different sources, |
||||
buffering and dispatching them to different outputs such as Fluentd, |
||||
Elasticsearch, NATS or any HTTP end-point within others. |
||||
|
||||
%track |
||||
prog fluentbit = { |
||||
version = %{version} |
||||
url = https://github.com/fluent/fluent-bit/releases |
||||
regex = v(__VER__)\.tar\.gz |
||||
} |
||||
|
||||
%prep |
||||
%setup -q -n fluent-bit-%{version} |
||||
%patch -p0 |
||||
|
||||
%build |
||||
# configure program |
||||
cd build |
||||
cmake \ |
||||
-DCMAKE_BUILD_TYPE="Release" \ |
||||
-DCMAKE_INSTALL_PREFIX="%{l_prefix}" \ |
||||
-DCMAKE_C_COMPILER="%{l_cc}" \ |
||||
-DCMAKE_C_FLAGS="%{l_cflags} %{l_cppflags}" \ |
||||
-DCMAKE_EXE_LINKER_FLAGS="%{l_ldflags}" \ |
||||
-DCMAKE_CXX_COMPILER="%{l_cxx}" \ |
||||
-DFLB_TLS=ON \ |
||||
-DFLB_EXAMPLES=OFF \ |
||||
-DFLB_SHARED_LIB=OFF \ |
||||
-DFLB_BACKTRACE=OFF \ |
||||
-DFLB_LUAJIT=ON \ |
||||
-DFLB_OUT_NATS=ON \ |
||||
.. |
||||
|
||||
# build program |
||||
%{l_make} %{l_mflags} |
||||
|
||||
%install |
||||
# create installation hierarchy |
||||
%{l_shtool} mkdir -f -p -m 755 \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/sbin \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/fluentbit \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/var/fluentbit/log \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/var/fluentbit/run |
||||
|
||||
# install program |
||||
%{l_shtool} install -c -s -m 755 \ |
||||
build/bin/fluent-bit \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/sbin/ |
||||
|
||||
# install configuration |
||||
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
||||
%{SOURCE fluentbit.conf} \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/fluentbit/ |
||||
|
||||
# install run-command script |
||||
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
||||
%{SOURCE rc.fluentbit} \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ |
||||
|
||||
# determine installation files |
||||
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
||||
%{l_files_std} \ |
||||
'%config %{l_prefix}/etc/fluentbit/*' \ |
||||
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/fluentbit' \ |
||||
'%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/fluentbit/*' |
||||
|
||||
%files -f files |
||||
|
||||
%clean |
||||
|
||||
%post |
||||
if [ $1 -eq 2 ]; then |
||||
# after upgrade, restart service |
||||
eval `%{l_rc} fluentbit status 2>/dev/null` |
||||
[ ".$fluentbit_active" = .yes ] && %{l_rc} fluentbit restart |
||||
fi |
||||
exit 0 |
||||
|
||||
%preun |
||||
if [ $1 -eq 0 ]; then |
||||
# stop service and remove run-time files |
||||
%{l_rc} fluentbit stop 2>/dev/null |
||||
rm -f $RPM_INSTALL_PREFIX/var/fluentbit/log/* >/dev/null 2>&1 || true |
||||
rm -f $RPM_INSTALL_PREFIX/var/fluentbit/run/* >/dev/null 2>&1 || true |
||||
fi |
||||
exit 0 |
||||
|
@ -0,0 +1,66 @@
|
||||
#!@l_prefix@/bin/openpkg rc |
||||
## |
||||
## rc.fluentbit -- Run-Commands |
||||
## |
||||
|
||||
%config |
||||
fluentbit_enable="$openpkg_rc_def" |
||||
fluentbit_flags="" |
||||
fluentbit_log_prolog="true" |
||||
fluentbit_log_epilog="true" |
||||
fluentbit_log_numfiles="10" |
||||
fluentbit_log_minsize="1M" |
||||
fluentbit_log_complevel="9" |
||||
|
||||
%common |
||||
fluentbit_cfgfile="@l_prefix@/etc/fluentbit/fluentbit.conf" |
||||
fluentbit_pidfile="@l_prefix@/var/fluentbit/run/fluentbit.pid" |
||||
fluentbit_logfile="@l_prefix@/var/fluentbit/log/fluentbit.log" |
||||
fluentbit_signal () { |
||||
[ -f $fluentbit_pidfile ] && kill -$1 `cat $fluentbit_pidfile` |
||||
} |
||||
|
||||
%status -u @l_rusr@ -o |
||||
fluentbit_usable="unknown" |
||||
fluentbit_active="no" |
||||
rcService fluentbit enable yes && \ |
||||
fluentbit_signal 0 && fluentbit_active="yes" |
||||
echo "fluentbit_enable=\"$fluentbit_enable\"" |
||||
echo "fluentbit_usable=\"$fluentbit_usable\"" |
||||
echo "fluentbit_active=\"$fluentbit_active\"" |
||||
|
||||
%start -u @l_rusr@ |
||||
rcService fluentbit enable yes || exit 0 |
||||
rcService fluentbit active yes && exit 0 |
||||
( GOMAXPROCS=32 |
||||
export GOMAXPROCS |
||||
nohup @l_prefix@/sbin/fluent-bit \ |
||||
-d \ |
||||
-c $fluentbit_cfgfile \ |
||||
-l $fluentbit_logfile \ |
||||
$fluentbit_flags \ |
||||
</dev/null >>$fluentbit_logfile 2>&1 & |
||||
echo $! >$fluentbit_pidfile |
||||
) >/dev/null 2>&1 |
||||
|
||||
%stop -u @l_rusr@ |
||||
rcService fluentbit enable yes || exit 0 |
||||
rcService fluentbit active no && exit 0 |
||||
fluentbit_signal TERM |
||||
sleep 2 |
||||
rm -f $fluentbit_pidfile >/dev/null 2>&1 || true |
||||
|
||||
%restart -u @l_rusr@ |
||||
rcService fluentbit enable yes || exit 0 |
||||
rcService fluentbit active no && exit 0 |
||||
rc fluentbit stop start |
||||
|
||||
%daily -u @l_susr@ |
||||
rcService fluentbit enable yes || exit 0 |
||||
shtool rotate -f \ |
||||
-n $fluentbit_log_numfiles -s $fluentbit_log_minsize -d \ |
||||
-z $fluentbit_log_complevel -m 664 -o @l_rusr@ -g @l_rgrp@ \ |
||||
-P "$fluentbit_log_prolog" \ |
||||
-E "$fluentbit_log_epilog; rc fluentbit reload" \ |
||||
$fluentbit_logfile |
||||
|
Loading…
Reference in new issue