public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH] zabbix_agentd: New addon
Date: Mon, 11 Mar 2019 09:36:49 +0000	[thread overview]
Message-ID: <7B2EB93C-0B8D-4EBB-8BBE-9CB636ECC10A@ipfire.org> (raw)
In-Reply-To: <a3f1754b-6077-76f9-2cf2-f2894513dbd4@starkstromkonsument.de>

[-- Attachment #1: Type: text/plain, Size: 34218 bytes --]

Hey,

thanks. I guess that does the job. Short and to the point.

-Michael

> On 10 Mar 2019, at 18:13, Alexander Koch <ipfire(a)starkstromkonsument.de> wrote:
> 
> Hello Michael,
> 
> I created a Wiki-Page (https://wiki.ipfire.org/addons/zabbix_agentd) and added a link on the Add-ons page. The version 4.0.5 does not provide any fixes or new features for the agent. I would rather like to skip it ... they are planing to release version 4.2.0 in march though and I will provide the next patch for that.
> 
> Best,
> Alex
> 
> 
> -------- Original-Nachricht --------
> Von: michael.tremer(a)ipfire.org
> Gesendet: Fri, 8 Mar 2019 10:14:47 +0000
> An: ipfire(a)starkstromkonsument.de
> CC: development(a)lists.ipfire.org
> 
> Betreff: Re: [PATCH] zabbix_agentd: New addon
>> Hello Alex,
>> 
>> I was hoping that somebody else would have a minute to review this. Unfortunately the guys seem to be busy.
>> 
>> I merged it. It had a couple of smaller things that I changed. Probably all aesthetics if even.
>> 
>> Please, as soon as it is available, test the package that it works as intended. Did you already start writing some documentation on the wiki?
>> 
>> Also, zabbix 4.0.5 is out. Will you eventually send an update?
>> 
>> Best,
>> -Michael
>> 
>>> On 13 Feb 2019, at 23:06, Alexander Koch <ipfire(a)starkstromkonsument.de> wrote:
>>> 
>>> 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(a)starkstromkonsument.de>
>>> ---
>>> config/backup/includes/zabbix_agentd    |   2 +
>>> config/etc/group                        |   1 +
>>> config/etc/passwd                       |   1 +
>>> config/rootfiles/packages/zabbix_agentd |  17 ++
>>> config/zabbix_agentd/logrotate          |   9 +
>>> config/zabbix_agentd/sudoers            |  17 ++
>>> config/zabbix_agentd/zabbix_agentd.conf | 395 ++++++++++++++++++++++++++++++++
>>> lfs/zabbix_agentd                       | 123 ++++++++++
>>> make.sh                                 |   1 +
>>> src/initscripts/packages/zabbix_agentd  |  45 ++++
>>> src/initscripts/sysconfig/createfiles   |   1 +
>>> src/paks/zabbix_agentd/install.sh       |  38 +++
>>> src/paks/zabbix_agentd/uninstall.sh     |  30 +++
>>> src/paks/zabbix_agentd/update.sh        |  26 +++
>>> 14 files changed, 706 insertions(+)
>>> create mode 100644 config/backup/includes/zabbix_agentd
>>> create mode 100644 config/rootfiles/packages/zabbix_agentd
>>> create mode 100644 config/zabbix_agentd/logrotate
>>> create mode 100644 config/zabbix_agentd/sudoers
>>> create mode 100644 config/zabbix_agentd/zabbix_agentd.conf
>>> create mode 100644 lfs/zabbix_agentd
>>> create mode 100644 src/initscripts/packages/zabbix_agentd
>>> create mode 100644 src/paks/zabbix_agentd/install.sh
>>> create mode 100644 src/paks/zabbix_agentd/uninstall.sh
>>> create mode 100644 src/paks/zabbix_agentd/update.sh
>>> 
>>> diff --git a/config/backup/includes/zabbix_agentd b/config/backup/includes/zabbix_agentd
>>> new file mode 100644
>>> index 0000000..b410dbe
>>> --- /dev/null
>>> +++ b/config/backup/includes/zabbix_agentd
>>> @@ -0,0 +1,2 @@
>>> +/etc/sudoers.d/zabbix.user
>>> +/etc/zabbix_agentd/*
>>> diff --git a/config/etc/group b/config/etc/group
>>> index 198b68a..3d5e315 100644
>>> --- a/config/etc/group
>>> +++ b/config/etc/group
>>> @@ -42,3 +42,4 @@ nut:x:115:
>>> cdrom:x:116:
>>> usb:x:117:
>>> samba:x:1000:
>>> +zabbix:x:118:
>>> diff --git a/config/etc/passwd b/config/etc/passwd
>>> index 7eb4718..bba75a3 100644
>>> --- a/config/etc/passwd
>>> +++ b/config/etc/passwd
>>> @@ -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
>>> index 0000000..db85238
>>> --- /dev/null
>>> +++ b/config/rootfiles/packages/zabbix_agentd
>>> @@ -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
>>> index 0000000..83bbca9
>>> --- /dev/null
>>> +++ b/config/zabbix_agentd/logrotate
>>> @@ -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
>>> index 0000000..f4e4321
>>> --- /dev/null
>>> +++ b/config/zabbix_agentd/sudoers
>>> @@ -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
>>> index 0000000..07f71c1
>>> --- /dev/null
>>> +++ b/config/zabbix_agentd/zabbix_agentd.conf
>>> @@ -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
>>> index 0000000..b086d9f
>>> --- /dev/null
>>> +++ b/lfs/zabbix_agentd
>>> @@ -0,0 +1,123 @@
>>> +###############################################################################
>>> +#                                                                             #
>>> +# IPFire.org - A linux based firewall                                         #
>>> +# Copyright (C) 2007-2019  IPFire Team  <info(a)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 3c08997..1deed3b 100755
>>> --- a/make.sh
>>> +++ b/make.sh
>>> @@ -1590,6 +1590,7 @@ buildipfire() {
>>>  lfsmake2 borgbackup
>>>  lfsmake2 libedit
>>>  lfsmake2 knot
>>> +  lfsmake2 zabbix_agentd
>>> }
>>> 
>>> buildinstaller() {
>>> diff --git a/src/initscripts/packages/zabbix_agentd b/src/initscripts/packages/zabbix_agentd
>>> new file mode 100644
>>> index 0000000..df6124c
>>> --- /dev/null
>>> +++ b/src/initscripts/packages/zabbix_agentd
>>> @@ -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(a)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
>>> diff --git a/src/initscripts/sysconfig/createfiles b/src/initscripts/sysconfig/createfiles
>>> index cf7d6e1..dd40cb3 100644
>>> --- a/src/initscripts/sysconfig/createfiles
>>> +++ b/src/initscripts/sysconfig/createfiles
>>> @@ -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
>>> index 0000000..ebbb62d
>>> --- /dev/null
>>> +++ b/src/paks/zabbix_agentd/install.sh
>>> @@ -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(a)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
>>> index 0000000..edff3b8
>>> --- /dev/null
>>> +++ b/src/paks/zabbix_agentd/uninstall.sh
>>> @@ -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(a)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
>>> index 0000000..89c40d0
>>> --- /dev/null
>>> +++ b/src/paks/zabbix_agentd/update.sh
>>> @@ -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(a)ipfire.org>.                        #
>>> +#                                                                          #
>>> +############################################################################
>>> +#
>>> +. /opt/pakfire/lib/functions.sh
>>> +./uninstall.sh
>>> +./install.sh
>>> -- 
>>> 2.7.4
>>> 
>> 


      reply	other threads:[~2019-03-11  9:36 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-03 19:37 New addon: zabbix_agentd Alexander Koch
2019-02-05 12:44 ` Michael Tremer
2019-02-07 22:21   ` Alexander Koch
2019-02-08 12:49     ` Michael Tremer
2019-02-12 22:14       ` Alexander Koch
2019-02-13 17:19         ` Michael Tremer
2019-02-13 23:06           ` [PATCH] zabbix_agentd: New addon Alexander Koch
2019-03-08 10:14             ` Michael Tremer
2019-03-10 18:13               ` Alexander Koch
2019-03-11  9:36                 ` Michael Tremer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7B2EB93C-0B8D-4EBB-8BBE-9CB636ECC10A@ipfire.org \
    --to=michael.tremer@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox