From patchwork Mon Jul 1 11:06:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Lukyanchuk X-Patchwork-Id: 1125214 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.136; helo=silver.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=skif-web.ru Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=skif-web.ru header.i=@skif-web.ru header.b="XA1M0hWp"; dkim-atps=neutral Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 45cl2H3bk6z9sPM for ; Mon, 1 Jul 2019 21:07:17 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 0372C20501; Mon, 1 Jul 2019 11:07:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id saFicpYpbujU; Mon, 1 Jul 2019 11:07:10 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 81DD3204EC; Mon, 1 Jul 2019 11:07:10 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id BD6B61BF575 for ; Mon, 1 Jul 2019 11:07:08 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id BA7EE87987 for ; Mon, 1 Jul 2019 11:07:08 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id drxA8mN8WU05 for ; Mon, 1 Jul 2019 11:07:06 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from forward101o.mail.yandex.net (forward101o.mail.yandex.net [37.140.190.181]) by hemlock.osuosl.org (Postfix) with ESMTPS id 43FD1878EA for ; Mon, 1 Jul 2019 11:07:06 +0000 (UTC) Received: from mxback14j.mail.yandex.net (mxback14j.mail.yandex.net [IPv6:2a02:6b8:0:1619::90]) by forward101o.mail.yandex.net (Yandex) with ESMTP id B13693C01A22; Mon, 1 Jul 2019 14:06:59 +0300 (MSK) Received: from smtp1p.mail.yandex.net (smtp1p.mail.yandex.net [2a02:6b8:0:1472:2741:0:8b6:6]) by mxback14j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id jvxrlz9VXq-6xQ8L5d7; Mon, 01 Jul 2019 14:06:59 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skif-web.ru; s=mail; t=1561979219; bh=M0inrdvfsURZusaXfWfqmRFq2Qyt6w1Usjhu0/vBdIE=; h=Subject:To:From:Cc:Date:Message-Id; b=XA1M0hWpnx4eH+YXzoMmnq5+VP9Q6N8PhbG9qIhfDZ2KKhpTpPIGmfjn1ta/gxuh3 TG4cJuAai36YurSdfjD0sDWOKtNj5Njmy11iQ+1NX6xVcWd2pBg25hTHIIzrer9gvD AaGQ7eEd/BRUVXFqLHBDTuj8Kgtfq/2ySBUUoZsc= Authentication-Results: mxback14j.mail.yandex.net; dkim=pass header.i=@skif-web.ru Received: by smtp1p.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id gr2w952h8l-6vveqA2R; Mon, 01 Jul 2019 14:06:57 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) From: Alexey Lukyanchuk To: buildroot@buildroot.org Date: Mon, 1 Jul 2019 14:06:33 +0300 Message-Id: <20190701110633.5618-1-skif@skif-web.ru> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Subject: [Buildroot] [PATCH v3 1/1] package/zabbix: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Alexey Lukyanchuk , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" From: Alexey Provides zabbix server (with sql-files and php-frontend, which placed in /usr/zabbix) and client. Zabbix client always installed. Signed-off-by: Alexey Lukyanchuk v3: Remove PHP dependencies (server frontend may be installed on other machine) Add GLIBC dependence PID-files moved to /run/zabbix Zabbix updated to 4.2.4 SNMP-patch removed (now build fine) Signed-off-by: Alexey Lukyanchuk --- DEVELOPERS | 3 ++ package/Config.in | 1 + package/zabbix/Config.in | 55 +++++++++++++++++++++ package/zabbix/zabbix-agent.service | 14 ++++++ package/zabbix/zabbix-server.service | 15 ++++++ package/zabbix/zabbix.hash | 1 + package/zabbix/zabbix.mk | 73 ++++++++++++++++++++++++++++ 7 files changed, 162 insertions(+) create mode 100644 package/zabbix/Config.in create mode 100644 package/zabbix/zabbix-agent.service create mode 100644 package/zabbix/zabbix-server.service create mode 100644 package/zabbix/zabbix.hash create mode 100644 package/zabbix/zabbix.mk diff --git a/DEVELOPERS b/DEVELOPERS index e9c521f400..fd444bea0e 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -122,6 +122,9 @@ N: Alexandre Esse F: package/kvazaar/ F: package/v4l2loopback/ +N: Alexey Lukyanchuk +F: package/zabbix/ + N: Alistair Francis F: boot/opensbi/ F: package/xen/ diff --git a/package/Config.in b/package/Config.in index d501b5a65b..4f21a40af3 100644 --- a/package/Config.in +++ b/package/Config.in @@ -2094,6 +2094,7 @@ endif source "package/xinetd/Config.in" source "package/xl2tp/Config.in" source "package/xtables-addons/Config.in" + source "package/zabbix/Config.in" source "package/znc/Config.in" endmenu diff --git a/package/zabbix/Config.in b/package/zabbix/Config.in new file mode 100644 index 0000000000..6b74d24500 --- /dev/null +++ b/package/zabbix/Config.in @@ -0,0 +1,55 @@ +config BR2_PACKAGE_ZABBIX + bool "zabbix" + depends on BR2_TOOLCHAIN_BUILDROOT_GLIBC + select BR2_PACKAGE_LIBEVENT + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_NETSNMP + select BR2_PACKAGE_ZABBIX_CLIENT + select BR2_PACKAGE_PCRE # runtime + select BR2_TOOLCHAIN_BUILDROOT_WCHAR #zabbix runtime + select BR2_TOOLCHAIN_BUILDROOT_CXX #oracle-mysql + select BR2_PACKAGE_ZLIB + help + zabbix monitoring system + +if BR2_PACKAGE_ZABBIX + +config BR2_PACKAGE_ZABBIX_SERVER + bool "zabbix server" + depends on BR2_USE_MMU # netsnmp + select BR2_SYSTEM_ENABLE_NLS + select BR2_PACKAGE_LIBCURL # runtime + help + Zabbix monitoring server + Server php-frontends files placed in \ + $(TARGET_DIR)/usr/zabbix/php-frontend + Database initial files for postgres are placed in \ + /usr/zabbix/postgresql_schema/ + Database initial files for mysql are placed in\ + /usr/zabbix/mysql_schema/ + +if BR2_PACKAGE_ZABBIX_SERVER + +choice + prompt "zabbix server database backend" + default BR2_PACKAGE_ZABBIX_SERVER_POSTGRESQL + help + Select database backend for zabbix server + +config BR2_PACKAGE_ZABBIX_SERVER_MYSQL + bool "Use mysql support" + select BR2_PACKAGE_MYSQL + select BR2_PACKAGE_ORACLE_MYSQL + select BR2_PACKAGE_ORACLE_MYSQL_SERVER + +config BR2_PACKAGE_ZABBIX_SERVER_POSTGRESQL + bool "Use postgresql support" + select BR2_PACKAGE_POSTGRESQL + +endchoice + +endif + +config BR2_PACKAGE_ZABBIX_CLIENT + bool "zabbix client" +endif diff --git a/package/zabbix/zabbix-agent.service b/package/zabbix/zabbix-agent.service new file mode 100644 index 0000000000..27ae034b59 --- /dev/null +++ b/package/zabbix/zabbix-agent.service @@ -0,0 +1,14 @@ +Description=Zabbix Agent Daemon +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/zabbix_agentd +ExecReload=/usr/local/sbin/zabbix_agentd -R config_cache_reload +RuntimeDirectory=zabbix +PIDFile=/run/zabbix/zabbix_agentd.pid +User=zabbix +Group=zabbix + +[Install] +WantedBy=multi-user.target diff --git a/package/zabbix/zabbix-server.service b/package/zabbix/zabbix-server.service new file mode 100644 index 0000000000..06b14bef31 --- /dev/null +++ b/package/zabbix/zabbix-server.service @@ -0,0 +1,15 @@ +Description=Zabbix Server Daemon +Requires= +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/zabbix_server +ExecReload=/usr/sbin/zabbix_server -R config_cache_reload +RuntimeDirectory=zabbix +PIDFile=/run/zabbix/zabbix_server.pid +User=zabbix +Group=zabbix + +[Install] +WantedBy=multi-user.target diff --git a/package/zabbix/zabbix.hash b/package/zabbix/zabbix.hash new file mode 100644 index 0000000000..9da85cdf92 --- /dev/null +++ b/package/zabbix/zabbix.hash @@ -0,0 +1 @@ +sha256 f6de0e0b91908d8da72d087931fb232988b391d3724d7c951833488fd96942bd zabbix-4.2.4.tar.gz diff --git a/package/zabbix/zabbix.mk b/package/zabbix/zabbix.mk new file mode 100644 index 0000000000..501b6975e9 --- /dev/null +++ b/package/zabbix/zabbix.mk @@ -0,0 +1,73 @@ +################################################################################ +# +#zabbix +# +################################################################################ + +ZABBIX_VERSION = 4.2.4 +ZABBIX_SITE = https://sourceforge.net/projects/zabbix/files + +ZABBIX_DEPENDENCIES = libevent libxml2 netsnmp libcurl pcre zlib +ZABBIX_CONF_OPTS = --with-libpcre=$(STAGING_DIR)/usr/bin/ --with-libcurl=$(STAGING_DIR)/usr/bin/curl-config --with-libevent --with-libxml2--with-net-snmp=$(STAGING_DIR)/usr/bin/ + +define ZABBIX_SERVER_COPY_FRONTEND + mkdir -p $(TARGET_DIR)/usr/zabbix/php-frontend/ + cp -r $(@D)/frontends/php/* $(TARGET_DIR)/usr/zabbix/php-frontend/ +endef + +define ZABBIX_SERVER_PREPARE_POSTGRESQL + mkdir -p $(TARGET_DIR)/usr/zabbix/postgresql_schema + cp -r $(@D)/database/postgresql/*\.sql $(TARGET_DIR)/usr/zabbix/postgresql_schema/ +endef + +define ZABBIX_SERVER_PREPARE_MYSQL + mkdir -p $(TARGET_DIR)/usr/zabbix/mysql_schema/ + cp -r $(@D)/database/mysql/*\.sql $(TARGET_DIR)/usr/zabbix/mysql_schema/ +endef + +define ZABBIX_INSTALL_INIT_SYSTEMD + $(foreach unit,$(ZABBIX_SYSTEMD_UNITS),\ + $(INSTALL) -D -m 644 $(ZABBIX_PKGDIR)$(unit) $(TARGET_DIR)/usr/lib/systemd/system/$(unit) && \ + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants && \ + ln -fs ../../../../usr/lib/systemd/system/$(unit) $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/$(unit) ;) +endef + +define ZABBIX_USERS + zabbix -1 zabbix -1 !- /var/lib/zabbix - zabbix zabbix user +endef + +define ZABBIX_CLIENT_CHANGE_PIDFILE_LOCATION + sed -i 's/\#\ PidFile=\/tmp\/zabbix_agentd.pid/PidFile=\/run\/zabbix\/zabbix_agentd.pid/g' $(TARGET_DIR)/etc/zabbix_agentd.conf +endef + +define ZABBIX_SERVER_CHANGE_PIDFILE_LOCATION + sed -i 's/\#\ PidFile=\/tmp\/zabbix_server.pid/PidFile=\/run\/zabbix\/zabbix_server.pid/g' $(TARGET_DIR)/etc/zabbix_server.conf +endef + +ifeq ($(BR2_PACKAGE_ZABBIX_CLIENT),y) +ZABBIX_CONF_OPTS += --enable-agent +ZABBIX_SYSTEMD_UNITS += zabbix-agent.service +ZABBIX_POST_INSTALL_TARGET_HOOKS += ZABBIX_CLIENT_CHANGE_PIDFILE_LOCATION +endif + +ifeq ($(BR2_PACKAGE_ZABBIX_SERVER),y) +ZABBIX_SYSTEMD_UNITS += zabbix-server.service +ZABBIX_CONF_OPTS += --enable-server +ZABBIX_POST_INSTALL_TARGET_HOOKS += ZABBIX_SERVER_COPY_FRONTEND +ZABBIX_POST_INSTALL_TARGET_HOOKS += ZABBIX_SERVER_CHANGE_PIDFILE_LOCATION + +ifeq ($(BR2_PACKAGE_ZABBIX_SERVER_MYSQL),y) +ZABBIX_DEPENDENCIES += mysql +ZABBIX_CONF_OPTS += --with-mysql=$(STAGING_DIR)/usr/bin/mysql_config +ZABBIX_POST_INSTALL_TARGET_HOOKS += ZABBIX_SERVER_PREPARE_MYSQL +endif + +ifeq ($(BR2_PACKAGE_ZABBIX_SERVER_POSTGRESQL),y) +ZABBIX_DEPENDENCIES += postgresql +ZABBIX_CONF_OPTS += --with-postgresql=$(STAGING_DIR)/usr/bin/pg_config +ZABBIX_POST_INSTALL_TARGET_HOOKS += ZABBIX_SERVER_PREPARE_POSTGRESQL +endif + +endif + +$(eval $(autotools-package))