zabbix_agentd: New addon
authorAlexander Koch <ipfire@starkstromkonsument.de>
Wed, 13 Feb 2019 23:06:19 +0000 (00:06 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 8 Mar 2019 09:55:18 +0000 (09:55 +0000)
New addon for monitoring IPFire by Zabbix Monitoring (https://www.zabbix.com/features).
See https://forum.ipfire.org/viewtopic.php?f=52&t=22039 and https://lists.ipfire.org/pipermail/development/2019-February/005324.html for further details.

Best regards,
Alex

Signed-off-by: Alexander Koch <ipfire@starkstromkonsument.de>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 files changed:
config/backup/includes/zabbix_agentd [new file with mode: 0644]
config/etc/group
config/etc/passwd
config/rootfiles/packages/zabbix_agentd [new file with mode: 0644]
config/zabbix_agentd/logrotate [new file with mode: 0644]
config/zabbix_agentd/sudoers [new file with mode: 0644]
config/zabbix_agentd/zabbix_agentd.conf [new file with mode: 0644]
lfs/zabbix_agentd [new file with mode: 0644]
make.sh
src/initscripts/packages/zabbix_agentd [new file with mode: 0644]
src/initscripts/sysconfig/createfiles
src/paks/zabbix_agentd/install.sh [new file with mode: 0644]
src/paks/zabbix_agentd/uninstall.sh [new file with mode: 0644]
src/paks/zabbix_agentd/update.sh [new file with mode: 0644]

diff --git a/config/backup/includes/zabbix_agentd b/config/backup/includes/zabbix_agentd
new file mode 100644 (file)
index 0000000..b410dbe
--- /dev/null
@@ -0,0 +1,2 @@
+/etc/sudoers.d/zabbix.user
+/etc/zabbix_agentd/*
index 198b68a..3d5e315 100644 (file)
@@ -42,3 +42,4 @@ nut:x:115:
 cdrom:x:116:
 usb:x:117:
 samba:x:1000:
+zabbix:x:118:
index 7eb4718..bba75a3 100644 (file)
@@ -21,3 +21,4 @@ cyrus:x:111:12:Cyrus user:/usr/cyrus:
 filter:x:112:12:Spam user:/home/filter:/bin/false
 asterisk:x:114:114:Asterisk user:/var/empty:/bin/false
 samba:x:1000:1000:Samba User:/var/empty:/bin/false
+zabbix:x:118:118:Zabbix Monitoring:/var/empty:/bin/false
diff --git a/config/rootfiles/packages/zabbix_agentd b/config/rootfiles/packages/zabbix_agentd
new file mode 100644 (file)
index 0000000..db85238
--- /dev/null
@@ -0,0 +1,17 @@
+etc/logrotate.d/zabbix_agentd
+etc/rc.d/init.d/zabbix_agentd
+etc/sudoers.d/zabbix.user
+etc/zabbix_agentd
+etc/zabbix_agentd/scripts
+etc/zabbix_agentd/zabbix_agentd.conf
+etc/zabbix_agentd/zabbix_agentd.d
+usr/bin/zabbix_get
+usr/bin/zabbix_sender
+usr/lib/modules
+usr/lib/zabbix
+usr/sbin/zabbix_agentd
+#usr/share/man/man1/zabbix_get.1
+#usr/share/man/man1/zabbix_sender.1
+#usr/share/man/man8/zabbix_agentd.8
+var/ipfire/backup/addons/includes/zabbix_agentd
+#var/log/zabbix
diff --git a/config/zabbix_agentd/logrotate b/config/zabbix_agentd/logrotate
new file mode 100644 (file)
index 0000000..83bbca9
--- /dev/null
@@ -0,0 +1,9 @@
+/var/log/zabbix/zabbix_agentd.log {
+    monthly
+    rotate 12
+    compress
+    delaycompress
+    missingok
+    notifempty
+    create 0640 zabbix zabbix
+}
diff --git a/config/zabbix_agentd/sudoers b/config/zabbix_agentd/sudoers
new file mode 100644 (file)
index 0000000..f4e4321
--- /dev/null
@@ -0,0 +1,17 @@
+# Include file for sudoers file
+#
+# This is needed for some userparameters to be able to execute commands that only run as root (using sudo)
+# e.g. /usr/bin/openssl or /usr/sbin/smartctl
+#
+# USE AT YOU'RE OWN RISK. USING THIS WRONG CAN RESULT IN A SECURITY BREACH!
+#
+# Some hints:
+# - It is strongly recommended to edit this file only using the visudo -f <filename> command. If you mess up this file,
+#   you might end up locking yourself out of your system!
+# - Append the full path to each command, using "," as separator.
+# - Only add commands you really need. Zabbix should not have more rights than it has to.
+#
+# Uncomment the following two lines and edit the example of commands to fit your needs:
+#
+#Defaults:zabbix !requiretty
+#zabbix ALL=(ALL) NOPASSWD: <path to command1>, <path to command2>
diff --git a/config/zabbix_agentd/zabbix_agentd.conf b/config/zabbix_agentd/zabbix_agentd.conf
new file mode 100644 (file)
index 0000000..07f71c1
--- /dev/null
@@ -0,0 +1,395 @@
+# This is a configuration file for Zabbix agent daemon (Unix)
+# To get more information about Zabbix, visit http://www.zabbix.com
+
+############ GENERAL PARAMETERS #################
+
+### Option: PidFile
+#      Name of PID file.
+#
+# Mandatory: no
+# Default:
+# PidFile=/tmp/zabbix_agentd.pid
+
+PidFile=/var/run/zabbix/zabbix_agentd.pid
+
+### Option: LogType
+#      Specifies where log messages are written to:
+#              system  - syslog
+#              file    - file specified with LogFile parameter
+#              console - standard output
+#
+# Mandatory: no
+# Default:
+# LogType=file
+
+### Option: LogFile
+#      Log file name for LogType 'file' parameter.
+#
+# Mandatory: yes, if LogType is set to file, otherwise no
+# Default:
+# LogFile=
+
+LogFile=/var/log/zabbix/zabbix_agentd.log
+
+### Option: LogFileSize
+#      Maximum size of log file in MB.
+#      0 - disable automatic log rotation.
+#
+# Mandatory: no
+# Range: 0-1024
+# Default:
+# LogFileSize=1
+
+LogFileSize=0
+
+### Option: DebugLevel
+#      Specifies debug level:
+#      0 - basic information about starting and stopping of Zabbix processes
+#      1 - critical information
+#      2 - error information
+#      3 - warnings
+#      4 - for debugging (produces lots of information)
+#      5 - extended debugging (produces even more information)
+#
+# Mandatory: no
+# Range: 0-5
+# Default:
+# DebugLevel=3
+
+### Option: SourceIP
+#      Source IP address for outgoing connections.
+#
+# Mandatory: no
+# Default:
+# SourceIP=
+
+### Option: EnableRemoteCommands
+#      Whether remote commands from Zabbix server are allowed.
+#      0 - not allowed
+#      1 - allowed
+#
+# Mandatory: no
+# Default:
+# EnableRemoteCommands=0
+
+### Option: LogRemoteCommands
+#      Enable logging of executed shell commands as warnings.
+#      0 - disabled
+#      1 - enabled
+#
+# Mandatory: no
+# Default:
+# LogRemoteCommands=0
+
+##### Passive checks related
+
+### Option: Server
+#      List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
+#      Incoming connections will be accepted only from the hosts listed here.
+#      If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
+#      and '::/0' will allow any IPv4 or IPv6 address.
+#      '0.0.0.0/0' can be used to allow any IPv4 address.
+#      Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
+#
+# Mandatory: yes, if StartAgents is not explicitly set to 0
+# Default:
+# Server=
+
+Server=127.0.0.1
+
+### Option: ListenPort
+#      Agent will listen on this port for connections from the server.
+#
+# Mandatory: no
+# Range: 1024-32767
+# Default:
+# ListenPort=10050
+
+### Option: ListenIP
+#      List of comma delimited IP addresses that the agent should listen on.
+#      First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
+#
+# Mandatory: no
+# Default:
+# ListenIP=0.0.0.0
+
+### Option: StartAgents
+#      Number of pre-forked instances of zabbix_agentd that process passive checks.
+#      If set to 0, disables passive checks and the agent will not listen on any TCP port.
+#
+# Mandatory: no
+# Range: 0-100
+# Default:
+# StartAgents=3
+
+##### Active checks related
+
+### Option: ServerActive
+#      List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
+#      If port is not specified, default port is used.
+#      IPv6 addresses must be enclosed in square brackets if port for that host is specified.
+#      If port is not specified, square brackets for IPv6 addresses are optional.
+#      If this parameter is not specified, active checks are disabled.
+#      Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
+#
+# Mandatory: no
+# Default:
+# ServerActive=
+
+ServerActive=127.0.0.1
+
+### Option: Hostname
+#      Unique, case sensitive hostname.
+#      Required for active checks and must match hostname as configured on the server.
+#      Value is acquired from HostnameItem if undefined.
+#
+# Mandatory: no
+# Default:
+# Hostname=
+
+### Option: HostnameItem
+#      Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
+#      Does not support UserParameters or aliases.
+#
+# Mandatory: no
+# Default:
+# HostnameItem=system.hostname
+
+### Option: HostMetadata
+#      Optional parameter that defines host metadata.
+#      Host metadata is used at host auto-registration process.
+#      An agent will issue an error and not start if the value is over limit of 255 characters.
+#      If not defined, value will be acquired from HostMetadataItem.
+#
+# Mandatory: no
+# Range: 0-255 characters
+# Default:
+# HostMetadata=
+
+### Option: HostMetadataItem
+#      Optional parameter that defines an item used for getting host metadata.
+#      Host metadata is used at host auto-registration process.
+#      During an auto-registration request an agent will log a warning message if
+#      the value returned by specified item is over limit of 255 characters.
+#      This option is only used when HostMetadata is not defined.
+#
+# Mandatory: no
+# Default:
+# HostMetadataItem=
+
+### Option: RefreshActiveChecks
+#      How often list of active checks is refreshed, in seconds.
+#
+# Mandatory: no
+# Range: 60-3600
+# Default:
+# RefreshActiveChecks=120
+
+### Option: BufferSend
+#      Do not keep data longer than N seconds in buffer.
+#
+# Mandatory: no
+# Range: 1-3600
+# Default:
+# BufferSend=5
+
+### Option: BufferSize
+#      Maximum number of values in a memory buffer. The agent will send
+#      all collected data to Zabbix Server or Proxy if the buffer is full.
+#
+# Mandatory: no
+# Range: 2-65535
+# Default:
+# BufferSize=100
+
+### Option: MaxLinesPerSecond
+#      Maximum number of new lines the agent will send per second to Zabbix Server
+#      or Proxy processing 'log' and 'logrt' active checks.
+#      The provided value will be overridden by the parameter 'maxlines',
+#      provided in 'log' or 'logrt' item keys.
+#
+# Mandatory: no
+# Range: 1-1000
+# Default:
+# MaxLinesPerSecond=20
+
+############ ADVANCED PARAMETERS #################
+
+### Option: Alias
+#      Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
+#      Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
+#      Different Alias keys may reference the same item key.
+#      For example, to retrieve the ID of user 'zabbix':
+#      Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
+#      Now shorthand key zabbix.userid may be used to retrieve data.
+#      Aliases can be used in HostMetadataItem but not in HostnameItem parameters.
+#
+# Mandatory: no
+# Range:
+# Default:
+
+### Option: Timeout
+#      Spend no more than Timeout seconds on processing
+#
+# Mandatory: no
+# Range: 1-30
+# Default:
+# Timeout=3
+
+### Option: AllowRoot
+#      Allow the agent to run as 'root'. If disabled and the agent is started by 'root', the agent
+#      will try to switch to the user specified by the User configuration option instead.
+#      Has no effect if started under a regular user.
+#      0 - do not allow
+#      1 - allow
+#
+# Mandatory: no
+# Default:
+# AllowRoot=0
+
+### Option: User
+#      Drop privileges to a specific, existing user on the system.
+#      Only has effect if run as 'root' and AllowRoot is disabled.
+#
+# Mandatory: no
+# Default:
+# User=zabbix
+
+### Option: Include
+#      You may include individual files or all files in a directory in the configuration file.
+#      Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
+#
+# Mandatory: no
+# Default:
+# Include=
+
+Include=/etc/zabbix_agentd/zabbix_agentd.d/*.conf
+
+
+####### USER-DEFINED MONITORED PARAMETERS #######
+
+### Option: UnsafeUserParameters
+#      Allow all characters to be passed in arguments to user-defined parameters.
+#      The following characters are not allowed:
+#      \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
+#      Additionally, newline characters are not allowed.
+#      0 - do not allow
+#      1 - allow
+#
+# Mandatory: no
+# Range: 0-1
+# Default:
+# UnsafeUserParameters=0
+
+### Option: UserParameter
+#      User-defined parameter to monitor. There can be several user-defined parameters.
+#      Format: UserParameter=<key>,<shell command>
+#      See 'zabbix_agentd' directory for examples.
+#
+# Mandatory: no
+# Default:
+# UserParameter=
+
+####### LOADABLE MODULES #######
+
+### Option: LoadModulePath
+#      Full path to location of agent modules.
+#      Default depends on compilation options.
+#      To see the default path run command "zabbix_agentd --help".
+#
+# Mandatory: no
+# Default:
+# LoadModulePath=/usr/lib/modules
+
+LoadModulePath=/usr/lib/zabbix
+
+### Option: LoadModule
+#      Module to load at agent startup. Modules are used to extend functionality of the agent.
+#      Format: LoadModule=<module.so>
+#      The modules must be located in directory specified by LoadModulePath.
+#      It is allowed to include multiple LoadModule parameters.
+#
+# Mandatory: no
+# Default:
+# LoadModule=
+
+####### TLS-RELATED PARAMETERS #######
+
+### Option: TLSConnect
+#      How the agent should connect to server or proxy. Used for active checks.
+#      Only one value can be specified:
+#              unencrypted - connect without encryption
+#              psk         - connect using TLS and a pre-shared key
+#              cert        - connect using TLS and a certificate
+#
+# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
+# Default:
+# TLSConnect=unencrypted
+
+### Option: TLSAccept
+#      What incoming connections to accept.
+#      Multiple values can be specified, separated by comma:
+#              unencrypted - accept connections without encryption
+#              psk         - accept connections secured with TLS and a pre-shared key
+#              cert        - accept connections secured with TLS and a certificate
+#
+# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
+# Default:
+# TLSAccept=unencrypted
+
+### Option: TLSCAFile
+#      Full pathname of a file containing the top-level CA(s) certificates for
+#      peer certificate verification.
+#
+# Mandatory: no
+# Default:
+# TLSCAFile=
+
+### Option: TLSCRLFile
+#      Full pathname of a file containing revoked certificates.
+#
+# Mandatory: no
+# Default:
+# TLSCRLFile=
+
+### Option: TLSServerCertIssuer
+#      Allowed server certificate issuer.
+#
+# Mandatory: no
+# Default:
+# TLSServerCertIssuer=
+
+### Option: TLSServerCertSubject
+#      Allowed server certificate subject.
+#
+# Mandatory: no
+# Default:
+# TLSServerCertSubject=
+
+### Option: TLSCertFile
+#      Full pathname of a file containing the agent certificate or certificate chain.
+#
+# Mandatory: no
+# Default:
+# TLSCertFile=
+
+### Option: TLSKeyFile
+#      Full pathname of a file containing the agent private key.
+#
+# Mandatory: no
+# Default:
+# TLSKeyFile=
+
+### Option: TLSPSKIdentity
+#      Unique, case sensitive string used to identify the pre-shared key.
+#
+# Mandatory: no
+# Default:
+# TLSPSKIdentity=
+
+### Option: TLSPSKFile
+#      Full pathname of a file containing the pre-shared key.
+#
+# Mandatory: no
+# Default:
+# TLSPSKFile=
diff --git a/lfs/zabbix_agentd b/lfs/zabbix_agentd
new file mode 100644 (file)
index 0000000..b086d9f
--- /dev/null
@@ -0,0 +1,123 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2019  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4.0.4
+
+THISAPP    = zabbix-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+PROG       = zabbix_agentd
+PAK_VER    = 1
+DEPS       = ""
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 46fdb83d4b24e13127a20a3e874b1d8f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+       @$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axvf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --enable-agent \
+               --sysconfdir=/etc/zabbix_agentd \
+               --with-openssl
+
+       cd $(DIR_APP) && make
+       cd $(DIR_APP) && make install
+
+       # Create config directory and create files
+       -rmdir /etc/zabbix_agentd/zabbix_agentd.conf.d
+       -mkdir -pv /etc/zabbix_agentd/zabbix_agentd.d
+       -mkdir -pv /etc/zabbix_agentd/scripts
+       install -v -m 644 $(DIR_SRC)/config/zabbix_agentd/zabbix_agentd.conf \
+               /etc/zabbix_agentd/zabbix_agentd.conf
+
+       # Create directory for additional agent modules
+       -mkdir -pv /usr/lib/zabbix
+
+       # Create directory for logging
+       -mkdir -pv /var/log/zabbix
+       chown zabbix.zabbix /var/log/zabbix
+
+       # Create directory for pid.
+       -mkdir -pv /var/run/zabbix
+       chown zabbix.zabbix /var/run/zabbix
+
+       # Install initscripts
+       $(call INSTALL_INITSCRIPT,zabbix_agentd)
+
+       # Install sudoers include file
+       install -v -m 644 $(DIR_SRC)/config/zabbix_agentd/sudoers \
+               /etc/sudoers.d/zabbix.user
+
+       # Install include file for backup
+       install -v -m 644 $(DIR_SRC)/config/backup/includes/zabbix_agentd \
+               /var/ipfire/backup/addons/includes/zabbix_agentd
+
+       # Install include file for Logrotate
+       -mkdir -pv /etc/logrotate.d
+       install -v -m 644 $(DIR_SRC)/config/zabbix_agentd/logrotate \
+               /etc/logrotate.d/zabbix_agentd
+
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index e28819f..f4e2bfc 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -1587,6 +1587,7 @@ buildipfire() {
   lfsmake2 libedit
   lfsmake2 knot
   lfsmake2 spectre-meltdown-checker
+  lfsmake2 zabbix_agentd
 }
 
 buildinstaller() {
diff --git a/src/initscripts/packages/zabbix_agentd b/src/initscripts/packages/zabbix_agentd
new file mode 100644 (file)
index 0000000..df6124c
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/zabbix_agentd
+#
+# Description : This script starts the Zabbix Agent as a daemon (zabbix_agentd)
+#
+# Authors     : Alexander Koch (ipfire@starkstromkonsument.de)
+#
+# Version     : 01.00
+#
+# Notes       :
+#
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+case "${1}" in
+        start)
+                boot_mesg "Starting Zabbix Agent..."
+                loadproc /usr/sbin/zabbix_agentd -c /etc/zabbix_agentd/zabbix_agentd.conf
+                ;;
+
+        stop)
+                boot_mesg "Stopping Zabbix Agent..."
+                killproc /usr/sbin/zabbix_agentd
+                ;;
+
+        restart)
+                ${0} stop
+                sleep 1
+                ${0} start
+                ;;
+
+        status)
+                statusproc /usr/sbin/zabbix_agentd
+                ;;
+
+        *)
+                echo "Usage: ${0} {start|stop|restart|status}"
+                exit 1
+                ;;
+esac
+
+# End $rc_base/init.d/zabbix_agentd
index cf7d6e1..dd40cb3 100644 (file)
@@ -27,5 +27,6 @@
 
 /var/run/ovpnserver.log        file    644     nobody  nobody
 /var/run/openvpn       dir     644     nobody  nobody
+/var/run/zabbix                dir     755     zabbix  zabbix
 
 # End /etc/sysconfig/createfiles
diff --git a/src/paks/zabbix_agentd/install.sh b/src/paks/zabbix_agentd/install.sh
new file mode 100644 (file)
index 0000000..ebbb62d
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 2 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+
+extract_files
+
+# Create symlinks for runlevel interaction.
+ln -sf ../init.d/zabbix_agentd /etc/rc.d/rc3.d/S65zabbix_agentd
+ln -sf ../init.d/zabbix_agentd /etc/rc.d/rc0.d/K02zabbix_agentd
+ln -sf ../init.d/zabbix_agentd /etc/rc.d/rc6.d/K02zabbix_agentd
+
+# Create additonal directories and set permissions
+mkdir -pv /var/log/zabbix
+chown zabbix.zabbix /var/log/zabbix
+
+restore_backup ${NAME}
+start_service --background ${NAME}
diff --git a/src/paks/zabbix_agentd/uninstall.sh b/src/paks/zabbix_agentd/uninstall.sh
new file mode 100644 (file)
index 0000000..edff3b8
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 2 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+stop_service ${NAME}
+make_backup ${NAME}
+remove_files
+
+# Remove init-scripts and symlinks
+rm -rfv /etc/rc.d/rc*.d/*zabbix_agentd
diff --git a/src/paks/zabbix_agentd/update.sh b/src/paks/zabbix_agentd/update.sh
new file mode 100644 (file)
index 0000000..89c40d0
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 2 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+./uninstall.sh
+./install.sh