From ba3b87e73b076338d6ce54b2a245999233c26d4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franc=CC=A7ois=20Bonelle?= Date: Sun, 20 Feb 2022 12:07:56 +0100 Subject: [PATCH] Add syslog-ng. Update telegraf --- syslog-ng/Dockerfile | 53 +++++++++++++++++++ syslog-ng/build.yaml | 6 +++ syslog-ng/config.yaml | 41 ++++++++++++++ syslog-ng/rootfs/bin/s6-nuke | 8 +++ syslog-ng/rootfs/etc/cont-init.d/syslog-ng.sh | 17 ++++++ syslog-ng/rootfs/etc/fix-attrs.d/scripts | 1 + .../rootfs/etc/services.d/telegraf/finish | 8 +++ syslog-ng/rootfs/etc/services.d/telegraf/run | 10 ++++ syslog-ng/rootfs/etc/syslog-ng/syslog-ng.conf | 36 +++++++++++++ syslog-ng/run.sh | 15 ++++++ telegraf/build.yaml | 2 +- telegraf/config.yaml | 4 +- telegraf/rootfs/etc/cont-init.d/telegraf.sh | 3 -- telegraf/run.sh | 3 -- 14 files changed, 198 insertions(+), 9 deletions(-) create mode 100755 syslog-ng/Dockerfile create mode 100644 syslog-ng/build.yaml create mode 100644 syslog-ng/config.yaml create mode 100644 syslog-ng/rootfs/bin/s6-nuke create mode 100644 syslog-ng/rootfs/etc/cont-init.d/syslog-ng.sh create mode 100644 syslog-ng/rootfs/etc/fix-attrs.d/scripts create mode 100644 syslog-ng/rootfs/etc/services.d/telegraf/finish create mode 100644 syslog-ng/rootfs/etc/services.d/telegraf/run create mode 100644 syslog-ng/rootfs/etc/syslog-ng/syslog-ng.conf create mode 100755 syslog-ng/run.sh diff --git a/syslog-ng/Dockerfile b/syslog-ng/Dockerfile new file mode 100755 index 0000000..94f5614 --- /dev/null +++ b/syslog-ng/Dockerfile @@ -0,0 +1,53 @@ +ARG BUILD_FROM +FROM ${BUILD_FROM} + +# Set shell +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Setup base system +ARG BUILD_ARCH=amd64 + +# Install syslog-ng +RUN \ + apt-get update -qq && \ + apt-get install -y wget ca-certificates gnupg2 && \ + wget -qO - https://ose-repo.syslog-ng.com/apt/syslog-ng-ose-pub.asc | gpg --dearmor > /usr/share/keyrings/ose-repo-archive-keyring.gpg && \ + echo "deb [ signed-by=/usr/share/keyrings/ose-repo-archive-keyring.gpg ] https://ose-repo.syslog-ng.com/apt/ stable debian-testing" | tee --append /etc/apt/sources.list.d/syslog-ng-ose.list && \ + apt-get update -qq && \ + apt-get install -y libdbd-mysql libdbd-pgsql libdbd-sqlite3 syslog-ng && \ + rm -fr /tmp/* /var/{cache,log}/* /var/lib/apt/lists/* + +# Copy root filesystem +COPY rootfs / + +# Expose ports +EXPOSE 514/udp 601/tcp 6514/tcp + +# Define HealthCheck +HEALTHCHECK --interval=2m --timeout=3s --start-period=30s CMD /usr/sbin/syslog-ng-ctl stats || exit 1 + +# Build arguments +ARG BUILD_ARCH +ARG BUILD_DATE +ARG BUILD_DESCRIPTION +ARG BUILD_NAME +ARG BUILD_REF +ARG BUILD_REPOSITORY +ARG BUILD_VERSION + +# Labels +LABEL \ + io.hass.name="${BUILD_NAME}" \ + io.hass.description="${BUILD_DESCRIPTION}" \ + io.hass.arch="${BUILD_ARCH}" \ + io.hass.type="addon" \ + io.hass.version=${BUILD_VERSION} \ + maintainer="fbonelle" \ + org.opencontainers.image.title="${BUILD_NAME}" \ + org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ + org.opencontainers.image.vendor="fbonelle's addons" \ + org.opencontainers.image.authors="fbonelle" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.created=${BUILD_DATE} \ + org.opencontainers.image.revision=${BUILD_REF} \ + org.opencontainers.image.version=${BUILD_VERSION} \ No newline at end of file diff --git a/syslog-ng/build.yaml b/syslog-ng/build.yaml new file mode 100644 index 0000000..c71358b --- /dev/null +++ b/syslog-ng/build.yaml @@ -0,0 +1,6 @@ +build_from: + aarch64: ghcr.io/hassio-addons/debian-base/aarch64:5.2.3 + amd64: ghcr.io/hassio-addons/debian-base/amd64:5.2.3 + armhf: ghcr.io/hassio-addons/debian-base/armhf:5.2.3 + armv7: ghcr.io/hassio-addons/debian-base/armv7:5.2.3 + i386: ghcr.io/hassio-addons/debian-base/i386:5.2.3 \ No newline at end of file diff --git a/syslog-ng/config.yaml b/syslog-ng/config.yaml new file mode 100644 index 0000000..eaf10d6 --- /dev/null +++ b/syslog-ng/config.yaml @@ -0,0 +1,41 @@ +--- +name: syslog-ng +version: 1.0 +slug: hassio_syslog_ng +description: An addon to add syslog-ng to hassio. +url: https://gitea.bonelle-family.dscloud.biz/francois.bonelle/hassio-repo.git +init: false +arch: + - aarch64 + - amd64 + - armhf + - armv7 + - i386 +ports: + 514/udp: 514 + 601/tcp: 601 + 6514/tcp: 6514 +hassio_api: true +hassio_role: default +host_network: true +auth_api: true +privileged: +- SYS_ADMIN +apparmor: false +map: +- config:rw +- ssl:rw +- addons:rw +- backup:rw +- share:rw +startup: services +boot: manual +docker_api: true +host_pid: true +full_access: true +options: + custom_conf: + location: "/config/syslog-ng.conf" +schema: + custom_conf: + location: str diff --git a/syslog-ng/rootfs/bin/s6-nuke b/syslog-ng/rootfs/bin/s6-nuke new file mode 100644 index 0000000..73e8e48 --- /dev/null +++ b/syslog-ng/rootfs/bin/s6-nuke @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# ============================================================================== +# Home Assistant Community Add-on: Glances +# This file turns s6-nuke into a NOOP to prevent total termination +# of the host system since the add-on runs in the same PID namespace. +# ============================================================================== +echo "S6-NUKE: NOOP" +exit 0 \ No newline at end of file diff --git a/syslog-ng/rootfs/etc/cont-init.d/syslog-ng.sh b/syslog-ng/rootfs/etc/cont-init.d/syslog-ng.sh new file mode 100644 index 0000000..b3a5f4e --- /dev/null +++ b/syslog-ng/rootfs/etc/cont-init.d/syslog-ng.sh @@ -0,0 +1,17 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Home Assistant Community Add-on: syslog-ng +# Configures syslog-ng +# ============================================================================== +declare hostname +bashio::require.unprotected + +readonly CONFIG="/etc/syslog-ng/syslog-ng.conf" + +CUSTOM_CONF=$(bashio::config 'custom_conf.location') + +bashio::log.info "Using custom conf file" +rm /etc/syslog-ng/syslog-ng.conf +cp "${CUSTOM_CONF}" /etc/syslog-ng/syslog-ng.conf + +bashio::log.info "Finished updating config" \ No newline at end of file diff --git a/syslog-ng/rootfs/etc/fix-attrs.d/scripts b/syslog-ng/rootfs/etc/fix-attrs.d/scripts new file mode 100644 index 0000000..804f34d --- /dev/null +++ b/syslog-ng/rootfs/etc/fix-attrs.d/scripts @@ -0,0 +1 @@ +/etc/syslog-ng/syslog-ng.conf false root 0755 0755 \ No newline at end of file diff --git a/syslog-ng/rootfs/etc/services.d/telegraf/finish b/syslog-ng/rootfs/etc/services.d/telegraf/finish new file mode 100644 index 0000000..c009320 --- /dev/null +++ b/syslog-ng/rootfs/etc/services.d/telegraf/finish @@ -0,0 +1,8 @@ +#!/usr/bin/execlineb -S0 +# ============================================================================== +# Home Assistant Community Add-on: syslog-ng +# ============================================================================== +if -n { s6-test $# -ne 0 } +if -n { s6-test ${1} -eq 256 } + +s6-svscanctl -t /var/run/s6/services diff --git a/syslog-ng/rootfs/etc/services.d/telegraf/run b/syslog-ng/rootfs/etc/services.d/telegraf/run new file mode 100644 index 0000000..0ae3dcc --- /dev/null +++ b/syslog-ng/rootfs/etc/services.d/telegraf/run @@ -0,0 +1,10 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Home Assistant Community Add-on: Example +# Runs example1 script +# ============================================================================== + + +bashio::log.info "Starting syslog-ng" + +exec /usr/sbin/syslog-ng -F diff --git a/syslog-ng/rootfs/etc/syslog-ng/syslog-ng.conf b/syslog-ng/rootfs/etc/syslog-ng/syslog-ng.conf new file mode 100644 index 0000000..7be83bd --- /dev/null +++ b/syslog-ng/rootfs/etc/syslog-ng/syslog-ng.conf @@ -0,0 +1,36 @@ +@version: 3.29 + +options { + use_dns(no); + create_dirs(yes); + ts_format(iso); +}; + +source s_systemd { + system(); + internal(); +}; + +source s_homeassistant { + file("/var/log/home-assistant.log" program-override("homeassistant")); +}; + +destination d_remotesyslog { + syslog("192.168.100.254" transport("udp") port("1514")); +}; + +rewrite r_host { + set("homeassistant", value("HOST")); +}; + +log { + source(s_systemd); + rewrite(r_host); + destination(d_remotesyslog); +}; + +log { + source(s_homeassistant); + rewrite(r_host); + destination(d_remotesyslog); +}; diff --git a/syslog-ng/run.sh b/syslog-ng/run.sh new file mode 100755 index 0000000..8d1092c --- /dev/null +++ b/syslog-ng/run.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bashio +declare hostname +bashio::require.unprotected + +readonly CONFIG="/etc/syslog-ng/syslog-ng.conf" + +CUSTOM_CONF=$(bashio::config 'custom_conf.location') + +bashio::log.info "Using custom conf file" +rm /etc/syslog-ng/syslog-ng.conf +cp "${CUSTOM_CONF}" /etc/syslog-ng/syslog-ng.conf + +bashio::log.info "Finished updating config, Starting syslog-ng" + +telegraf diff --git a/telegraf/build.yaml b/telegraf/build.yaml index 5df6245..7e3627a 100644 --- a/telegraf/build.yaml +++ b/telegraf/build.yaml @@ -5,4 +5,4 @@ build_from: armv7: ghcr.io/hassio-addons/debian-base/armv7:5.2.3 i386: ghcr.io/hassio-addons/debian-base/i386:5.2.3 args: - TELEGRAF_VERSION: 1.21.2 \ No newline at end of file + TELEGRAF_VERSION: 1.21.4 \ No newline at end of file diff --git a/telegraf/config.yaml b/telegraf/config.yaml index 32fba67..6ef2358 100644 --- a/telegraf/config.yaml +++ b/telegraf/config.yaml @@ -1,9 +1,9 @@ --- name: Telegraf -version: 1.21.2_a +version: 1.21.4_a slug: hassio_telegraf description: An addon to add telegraf to hassio. -url: https://gitea.bonelle-family.dscloud.biz/francois.bonelle/hassio-telegraf.git +url: https://gitea.bonelle-family.dscloud.biz/francois.bonelle/hassio-repo.git init: false arch: - aarch64 diff --git a/telegraf/rootfs/etc/cont-init.d/telegraf.sh b/telegraf/rootfs/etc/cont-init.d/telegraf.sh index 1df5dab..47531d5 100644 --- a/telegraf/rootfs/etc/cont-init.d/telegraf.sh +++ b/telegraf/rootfs/etc/cont-init.d/telegraf.sh @@ -3,9 +3,6 @@ # Home Assistant Community Add-on: Telegraf # Configures Telegraf # ============================================================================== -declare influx_un -declare influx_pw -declare influx_ret declare hostname bashio::require.unprotected diff --git a/telegraf/run.sh b/telegraf/run.sh index 2573ada..5bf21f3 100755 --- a/telegraf/run.sh +++ b/telegraf/run.sh @@ -1,7 +1,4 @@ #!/usr/bin/env bashio -declare influx_un -declare influx_pw -declare influx_ret declare hostname bashio::require.unprotected