Ralf S. Engelschall 7 år sedan
förälder
incheckning
e80221ef11
3 ändrade filer med 208 tillägg och 0 borttagningar
  1. 32 0
      fluentd/fluentd.conf
  2. 115 0
      fluentd/fluentd.spec
  3. 61 0
      fluentd/rc.fluentd

+ 32 - 0
fluentd/fluentd.conf

@@ -0,0 +1,32 @@
+##
+##  fluentd.conf -- FluentD Configuration
+##
+
+<system>
+    rpc_endpoint 127.0.0.1:24444
+</system>
+
+<source>
+    @type forward
+    bind 127.0.0.1
+    port 24224
+</source>
+
+<source>
+    @type syslog
+    bind 127.0.0.1
+    port 5140
+    protocol_type udp
+    source_host_key source_host
+</source>
+
+<match **>
+    @type file
+    path @l_prefix@/var/fluentd/log/fluentd.log.d
+    format json
+    append true
+    <buffer>
+        flush_interval 10s
+    </buffer>
+</match>
+

+ 115 - 0
fluentd/fluentd.spec

@@ -0,0 +1,115 @@
+##
+##  fluentd.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:         fluentd
+Summary:      Log Collector Daemon
+URL:          https://fluentd.org/
+Vendor:       FURUHASHI Sadayuki, NAKAGAWA Masahiro
+Packager:     OpenPKG Project
+Distribution: OpenPKG Community
+Class:        EVAL
+Group:        Logging
+License:      Apache
+Version:      1.4.2
+Release:      20190413
+
+#   list of sources
+Source0:      http://download.openpkg.org/components/versioned/fluentd/fluentd-%{version}.tar.xz
+Source1:      fluentd.conf
+Source2:      rc.fluentd
+
+#   build information
+BuildPreReq:  OpenPKG, openpkg >= 20160101, ruby, ruby-gems
+PreReq:       OpenPKG, openpkg >= 20160101, ruby
+
+%description
+    Fluentd collects events from various data sources and writes them to
+    files, RDBMS, NoSQL, IaaS, SaaS, Hadoop and so on. Fluentd helps you
+    unify your logging infrastructure.
+
+%track
+    prog fluentd = {
+        version   = %{version}
+        url       = https://github.com/fluent/fluentd/releases
+        regex     = v(__VER__)\.tar\.gz
+    }
+
+%prep
+    %setup -q
+
+%build
+
+%install
+    #   install program
+    %{l_prefix}/bin/gem install \
+        --local \
+        --force \
+        --build-root $RPM_BUILD_ROOT \
+        *.gem
+
+    #   install default configuration
+    %{l_shtool} mkdir -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/fluentd
+    %{l_shtool} install -c -m 644 %{l_value -s -a} \
+        %{SOURCE fluentd.conf} $RPM_BUILD_ROOT%{l_prefix}/etc/fluentd/
+
+    #   install run-command script
+    %{l_shtool} mkdir -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
+    %{l_shtool} install -c -m 755 %{l_value -s -a} \
+        %{SOURCE rc.fluentd} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
+
+    #   create run-time directories
+    %{l_shtool} mkdir -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/var/fluentd/log \
+        $RPM_BUILD_ROOT%{l_prefix}/var/fluentd/run
+
+    #   determine installation files
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%config %{l_prefix}/etc/fluentd/*' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/etc/fluentd' \
+        '%attr(-,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/fluentd/*'
+
+%files -f files
+
+%clean
+
+%post
+    if [ $1 -eq 2 ]; then
+        #   after upgrade, restart service
+        eval `%{l_rc} fluentd status 2>/dev/null`
+        [ ".$fluentd_active" = .yes ] && %{l_rc} fluentd restart
+    fi
+    exit 0
+
+%preun
+    if [ $1 -eq 0 ]; then
+        #   stop service and remove run-time files
+        %{l_rc} fluentd stop 2>/dev/null
+        rm -f $RPM_INSTALL_PREFIX/var/fluentd/log/* >/dev/null 2>&1 || true
+        rm -f $RPM_INSTALL_PREFIX/var/fluentd/run/* >/dev/null 2>&1 || true
+    fi
+    exit 0
+

+ 61 - 0
fluentd/rc.fluentd

@@ -0,0 +1,61 @@
+#!@l_prefix@/bin/openpkg rc
+##
+##  rc.fluentd -- Run-Commands
+##
+
+%config
+    fluentd_enable="$openpkg_rc_def"
+    fluentd_flags=""
+    fluentd_log_prolog="true"
+    fluentd_log_epilog="true"
+    fluentd_log_numfiles="10"
+    fluentd_log_minsize="1M"
+    fluentd_log_complevel="9"
+
+%common
+    fluentd_cfgfile="@l_prefix@/etc/fluentd/fluentd.conf"
+    fluentd_pidfile="@l_prefix@/var/fluentd/run/fluentd.pid"
+    fluentd_logfile="@l_prefix@/var/fluentd/log/fluentd.log"
+    fluentd_signal () {
+        [ -f $fluentd_pidfile ] && kill -$1 `cat $fluentd_pidfile`
+    }
+
+%status -u @l_rusr@ -o
+    fluentd_usable="unknown"
+    fluentd_active="no"
+    rcService fluentd enable yes && \
+        fluentd_signal 0 && fluentd_active="yes"
+    echo "fluentd_enable=\"$fluentd_enable\""
+    echo "fluentd_usable=\"$fluentd_usable\""
+    echo "fluentd_active=\"$fluentd_active\""
+
+%start -u @l_rusr@
+    rcService fluentd enable yes || exit 0
+    rcService fluentd active yes && exit 0
+    (   nohup @l_prefix@/bin/fluentd $fluentd_flags \
+            -c $fluentd_cfgfile \
+            </dev/null >>$fluentd_logfile 2>&1 &
+        echo $! >$fluentd_pidfile
+    ) >/dev/null 2>&1
+
+%stop -u @l_rusr@
+    rcService fluentd enable yes || exit 0
+    rcService fluentd active no  && exit 0
+    fluentd_signal TERM
+    sleep 2
+    rm -f $fluentd_pidfile >/dev/null 2>&1 || true
+
+%restart -u @l_rusr@
+    rcService fluentd enable yes || exit 0
+    rcService fluentd active no  && exit 0
+    rc fluentd stop start
+
+%daily -u @l_susr@
+    rcService fluentd enable yes || exit 0
+    shtool rotate -f \
+        -n $fluentd_log_numfiles -s $fluentd_log_minsize -d \
+        -z $fluentd_log_complevel -m 664 -o @l_rusr@ -g @l_rgrp@ \
+        -P "$fluentd_log_prolog" \
+        -E "$fluentd_log_epilog; rc fluentd reload" \
+        $fluentd_logfile
+