public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Alexander Koch <ipfire@starkstromkonsument.de>
To: development@lists.ipfire.org
Subject: Re: [PATCH] zabbix_agentd: New addon
Date: Sun, 10 Mar 2019 19:13:34 +0100	[thread overview]
Message-ID: <a3f1754b-6077-76f9-2cf2-f2894513dbd4@starkstromkonsument.de> (raw)
In-Reply-To: <67FFFC5B-B852-4BB1-ADA5-2B7EAC09726A@ipfire.org>

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

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-10 18:13 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 [this message]
2019-03-11  9:36                 ` Michael Tremer

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=a3f1754b-6077-76f9-2cf2-f2894513dbd4@starkstromkonsument.de \
    --to=ipfire@starkstromkonsument.de \
    --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