View | Details | Raw Unified | Return to bug 246447 | Differences between
and this patch

Collapse All | Expand All

(-)b/net-mgmt/zabbix5-agent/Makefile (+14 lines)
Added Link Here
1
# Created by: Juraj Lutter <juraj@lutter.sk>
2
# $FreeBSD$
3
4
PORTNAME=	zabbix5
5
CATEGORIES=	net-mgmt
6
PKGNAMESUFFIX=	-agent
7
8
MASTERDIR=	${.CURDIR}/../zabbix5-server
9
PLIST=		${PKGDIR}/pkg-plist.agent
10
11
OPTIONS_DEFINE=		CURL IPV6
12
OPTIONS_DEFAULT=	CURL OPENSSL
13
14
.include "${MASTERDIR}/Makefile"
(-)b/net-mgmt/zabbix5-agent2/Makefile (+20 lines)
Added Link Here
1
# Created by: Juraj Lutter <juraj@lutter.sk>
2
# $FreeBSD$
3
4
PORTNAME=	zabbix5
5
CATEGORIES=	net-mgmt
6
PKGNAMESUFFIX=	-agent2
7
DISTFILES=	${DISTNAME}${EXTRACT_SUFX}
8
9
MASTERDIR=	${.CURDIR}/../zabbix5-server
10
PLIST=		${PKGDIR}/pkg-plist.agent2
11
12
DISTINFO_FILE=	${.CURDIR}/distinfo
13
14
OPTIONS_DEFINE=		LDAP IPV6 OPENSSL
15
OPTIONS_DEFAULT=	LDAP OPENSSL
16
17
LDAP_CONFIGURE_WITH=    ldap
18
LDAP_USE=               OPENLDAP=yes
19
20
.include "${MASTERDIR}/Makefile"
(-)b/net-mgmt/zabbix5-agent2/distinfo (+25 lines)
Added Link Here
1
TIMESTAMP = 1590062351
2
SHA256 (zabbix-5.0.0.tar.gz) = 5a1762fd2bb7275d9a28c6dfa9a6d46d84be749f9bf50a36eb8fcd20fb8bb6eb
3
SIZE (zabbix-5.0.0.tar.gz) = 18519888
4
SHA256 (alimy-mc-v2.0.3_GH0.tar.gz) = 0ac06190a767bc0fcf74fbb7e565fa0742a6f5425440c337a15246a41aca309e
5
SIZE (alimy-mc-v2.0.3_GH0.tar.gz) = 21035
6
SHA256 (dustin-gomemcached-a2284a01c143_GH0.tar.gz) = d6b4c2af8993f45199aa2cfa05e0f630d897a73ddbbc7ddbebc47821d4b1115f
7
SIZE (dustin-gomemcached-a2284a01c143_GH0.tar.gz) = 21981
8
SHA256 (fsnotify-fsnotify-v1.4.7_GH0.tar.gz) = b7530d973d0ab0e58ad8ce1b9a4b963d6f57b3d72f2f9e13d49846976361b1cd
9
SIZE (fsnotify-fsnotify-v1.4.7_GH0.tar.gz) = 31139
10
SHA256 (go-ole-go-ole-v1.2.4_GH0.tar.gz) = 1f30df494ffc50c133c5f276f64c94820046b1a3a660c0cca49a5c3a8106db11
11
SIZE (go-ole-go-ole-v1.2.4_GH0.tar.gz) = 51655
12
SHA256 (go-sql-driver-mysql-v1.5.0_GH0.tar.gz) = 9d98b46623037447a26a51a203540bf605b6e6220d31f2efc7396242fcb660b5
13
SIZE (go-sql-driver-mysql-v1.5.0_GH0.tar.gz) = 90474
14
SHA256 (godbus-dbus-v4.1.0_GH0.tar.gz) = e35dd6031febb2b550b765da602a6e8eaa6a45c501af7370f66d7710a23c501d
15
SIZE (godbus-dbus-v4.1.0_GH0.tar.gz) = 53466
16
SHA256 (golang-sys-f43be2a4598c_GH0.tar.gz) = 120cfab17111e93b3513a42bf0db20634552c85ae48d1fd3c5d7859fc5603356
17
SIZE (golang-sys-f43be2a4598c_GH0.tar.gz) = 1513901
18
SHA256 (golang-xerrors-1b5146add898_GH0.tar.gz) = 57ba6cacc0a84a2ecbfda1169b5e9c184581dd009136f95d2fca9a5289e49ab1
19
SIZE (golang-xerrors-1b5146add898_GH0.tar.gz) = 12200
20
SHA256 (mattn-go-sqlite3-v2.0.3_GH0.tar.gz) = ed015860c9b3e701d8cce7dcb0bcb2e2f53071718334465b10abb696f7de0e58
21
SIZE (mattn-go-sqlite3-v2.0.3_GH0.tar.gz) = 2335418
22
SHA256 (mediocregopher-radix-v3.4.2_GH0.tar.gz) = 3b26042bed210daca2354b43e476e462b12e94edba6e242c14f2cf6095c9dce5
23
SIZE (mediocregopher-radix-v3.4.2_GH0.tar.gz) = 93999
24
SHA256 (natefinch-npipe-c1b8fa8bdcce_GH0.tar.gz) = 6e3de30412671aba8f89008b2411126378a4dd2bddff095312d7a88a1670d3ab
25
SIZE (natefinch-npipe-c1b8fa8bdcce_GH0.tar.gz) = 12421
(-)b/net-mgmt/zabbix5-frontend/Makefile (+34 lines)
Added Link Here
1
# Created by: Juraj Lutter <juraj@lutter.sk>
2
# $FreeBSD$
3
4
PORTNAME=	zabbix5
5
CATEGORIES=	net-mgmt
6
PKGNAMESUFFIX=	-frontend
7
8
MASTERDIR=	${.CURDIR}/../zabbix5-server
9
10
NO_BUILD=	yes
11
NO_ARCH=	yes
12
PATCHDIR=
13
PLIST=		${PKGDIR}/pkg-plist.frontend
14
15
USE_PHP=	bcmath ctype dom fileinfo filter gd gettext json ldap mbstring pcre \
16
		session simplexml snmp sockets xml xmlreader xmlwriter
17
USES+=		php:web
18
19
OPTIONS_DEFINE=		MYSQLI PGSQL ORACLE
20
OPTIONS_DEFAULT=	MYSQLI
21
MYSQLI_DESC=		MySQLI backend
22
23
MYSQLI_USE=	PHP=mysqli
24
25
PGSQL_USE=	PHP=pgsql
26
27
ORACLE_CONFIGURE_WITH=	oracle
28
29
do-install:
30
	@${MKDIR} ${STAGEDIR}${WWWDIR}
31
	(cd ${WRKSRC}/ui && \
32
		${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR})
33
34
.include "${MASTERDIR}/Makefile"
(-)b/net-mgmt/zabbix5-java/Makefile (+14 lines)
Added Link Here
1
# $FreeBSD$
2
3
PORTNAME=	zabbix5
4
CATEGORIES=	net-mgmt
5
PKGNAMESUFFIX=	-java
6
7
MASTERDIR=	${.CURDIR}/../zabbix5-server
8
PLIST=		${PKGDIR}/pkg-plist.java
9
10
OPTIONS_DEFINE=		IPV6
11
12
USE_JAVA=	yes
13
14
.include "${MASTERDIR}/Makefile"
(-)b/net-mgmt/zabbix5-proxy/Makefile (+12 lines)
Added Link Here
1
# Created by: Juraj Lutter <juraj@lutter.sk>
2
# $FreeBSD$
3
4
PORTNAME=	zabbix5
5
CATEGORIES=	net-mgmt
6
PKGNAMESUFFIX=	-proxy
7
8
MASTERDIR=	${.CURDIR}/../zabbix5-server
9
10
OPTIONS_SINGLE_DB=	MYSQL PGSQL SQLITE ORACLE
11
12
.include "${MASTERDIR}/Makefile"
(-)b/net-mgmt/zabbix5-server/Makefile (+261 lines)
Added Link Here
1
# Created by: Juraj Lutter <juraj@lutter.sk>
2
# $FreeBSD$
3
4
PORTNAME=	zabbix5
5
PORTVERSION=	5.0.1
6
PORTREVISION?=	0
7
CATEGORIES=	net-mgmt
8
MASTER_SITES=	https://cdn.zabbix.com/zabbix/sources/stable/${PORTVERSION:R}/
9
PKGNAMESUFFIX?=	-server
10
DISTNAME=	zabbix-${PORTVERSION}
11
12
MAINTAINER=	juraj@lutter.sk
13
COMMENT=	Enterprise-class open source distributed monitoring (${PKGNAMESUFFIX:S/^-//})
14
15
LICENSE=	GPLv2+
16
LICENSE_FILE=	${WRKSRC}/COPYING
17
18
LIB_DEPENDS=	libpcre.so:devel/pcre
19
20
CONFLICTS=	zabbix[0-46-9][0-9]${PKGNAMESUFFIX} \
21
		zabbix4[0-46-9]${PKGNAMESUFFIX} \
22
		zabbix[0-9]${PKGNAMESUFFIX}
23
24
ZABBIX_BUILD=	${PKGNAMESUFFIX:S/^-//}
25
26
USES=		autoreconf localbase pkgconfig iconv
27
.if ${ZABBIX_BUILD} == "agent2"
28
USES+=		go:modules
29
USE_GITHUB=	nodefault
30
GH_ACCOUNT=	zabbix
31
GH_PROJECT=	zabbix
32
GH_TUPLE=	\
33
		alimy:mc:v2.0.3:alimy_mc_v2/src/go/vendor/github.com/alimy/mc/v2 \
34
		dustin:gomemcached:a2284a01c143:dustin_gomemcached/src/go/vendor/github.com/dustin/gomemcached \
35
		fsnotify:fsnotify:v1.4.7:fsnotify_fsnotify/src/go/vendor/github.com/fsnotify/fsnotify \
36
		go-ole:go-ole:v1.2.4:go_ole_go_ole/src/go/vendor/github.com/go-ole/go-ole \
37
		go-sql-driver:mysql:v1.5.0:go_sql_driver_mysql/src/go/vendor/github.com/go-sql-driver/mysql \
38
		godbus:dbus:v4.1.0:godbus_dbus/src/go/vendor/github.com/godbus/dbus \
39
		golang:sys:f43be2a4598c:golang_sys/src/go/vendor/golang.org/x/sys \
40
		golang:xerrors:1b5146add898:golang_xerrors/src/go/vendor/golang.org/x/xerrors \
41
		mattn:go-sqlite3:v2.0.3:mattn_go_sqlite3/src/go/vendor/github.com/mattn/go-sqlite3 \
42
		mediocregopher:radix:v3.4.2:mediocregopher_radix_v3/src/go/vendor/github.com/mediocregopher/radix/v3 \
43
		natefinch:npipe:c1b8fa8bdcce:natefinch_npipe/src/go/vendor/github.com/natefinch/npipe
44
.endif
45
46
.if ${ZABBIX_BUILD} != "frontend" # frontend only needs the version/distribution settings
47
.if ${ZABBIX_BUILD:Nagent*}
48
CONFIGURE_ARGS+=	--with-libevent=${LOCALBASE} --cache-file=${WRKSRC}/config.cache
49
LIB_DEPENDS+=	libevent.so:devel/libevent
50
USE_RC_SUBR=	zabbix_${ZABBIX_BUILD}
51
.elif ${ZABBIX_BUILD} == "agent"
52
USE_RC_SUBR=	zabbix_${ZABBIX_BUILD}d
53
.else
54
USE_RC_SUBR=	zabbix_${ZABBIX_BUILD}
55
USE_RC_SUBR+=	mock_server
56
.endif
57
58
USERS=		zabbix
59
GROUPS=		zabbix
60
61
.if ${ZABBIX_BUILD} != "proxy"
62
PLIST_SUB=	PROXY="@comment "
63
.else
64
PLIST_SUB=	PROXY=""
65
.endif
66
67
.if ${ZABBIX_BUILD} == "server"
68
PLIST_SUB+=	SERVER=""
69
.else
70
PLIST_SUB+=	SERVER="@comment "
71
.endif
72
73
PLIST_SUB+=	ZABBIX_BUILD=${ZABBIX_BUILD} PORTVERSION=${PORTVERSION}
74
SUB_LIST=	ZABBIX_BUILD=${ZABBIX_BUILD}
75
76
MAKE_ARGS+=	ARCH=freebsd
77
78
GNU_CONFIGURE=	yes
79
CONFIGURE_ARGS+=	--enable-${ZABBIX_BUILD} \
80
			--sysconfdir=${ETCDIR} \
81
			--datadir=${ETCDIR} \
82
			--with-iconv=${ICONV_PREFIX}
83
84
.if ${ZABBIX_BUILD:Nagent*} && ${ZABBIX_BUILD} != "java"
85
LIB_DEPENDS+=	libnetsnmp.so:net-mgmt/net-snmp
86
87
CPPFLAGS+=	-I${LOCALBASE}/include
88
89
SUB_FILES=	pkg-message
90
91
CONFIGURE_ARGS+=	--with-net-snmp
92
93
OPTIONS_DEFINE=		IPV6 FPING CURL LDAP IPMI SSH NMAP LIBXML2 UNIXODBC
94
95
OPTIONS_DEFAULT=	FPING CURL UNIXODBC MYSQL OPENSSL
96
OPTIONS_SUB=		yes
97
98
FPING_DESC=		Build/install fping for ping checks
99
IPMI_DESC=		Support for IPMI checks
100
LDAP_DESC=		Support for LDAP server checks
101
NMAP_DESC=		Build/install nmap for o/s detection
102
SSH_DESC=		Support for SSH-based checks
103
UNIXODBC_DESC=		Support for database checks via ODBC
104
LIBXML2_DESC=		Support for libxml2 (required by monitoring VMware)
105
106
OPTIONS_SINGLE=		DB SSL
107
OPTIONS_SINGLE_DB?=	MYSQL PGSQL ORACLE
108
OPTIONS_SINGLE_SSL=	OPENSSL GNUTLS
109
110
MYSQL_CONFIGURE_WITH=	mysql
111
MYSQL_USES+=		compiler:c11 mysql
112
113
PGSQL_CONFIGURE_WITH=	postgresql
114
PGSQL_USES+=		pgsql
115
116
SQLITE_CONFIGURE_WITH=	sqlite3
117
SQLITE_USES+=		sqlite:3
118
119
ORACLE_CONFIGURE_WITH=	oracle
120
121
LDAP_CONFIGURE_WITH=	ldap
122
LDAP_USE=		OPENLDAP=yes
123
124
IPMI_CONFIGURE_WITH=	openipmi
125
IPMI_LIB_DEPENDS=	libOpenIPMI.so:sysutils/openipmi
126
127
FPING_RUN_DEPENDS=	fping:net/fping
128
129
SSH_CONFIGURE_WITH=	ssh2
130
SSH_LIB_DEPENDS=	libssh2.so:security/libssh2
131
132
UNIXODBC_CONFIGURE_WITH=unixodbc
133
UNIXODBC_LIB_DEPENDS=	libodbc.so:databases/unixODBC
134
.elif ${ZABBIX_BUILD} == "agent"
135
OPTIONS_SINGLE=	SSL
136
OPTIONS_SINGLE_SSL=	OPENSSL GNUTLS
137
.endif # if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java"
138
139
CURL_DESC=		Support for web monitoring
140
CURL_CONFIGURE_WITH=	libcurl
141
CURL_LIB_DEPENDS=	libcurl.so:ftp/curl
142
143
IPV6_CONFIGURE_ENABLE=	ipv6
144
145
NMAP_RUN_DEPENDS=	nmap:security/nmap \
146
			sudo:security/sudo
147
148
LIBXML2_CONFIGURE_WITH=	libxml2=${LOCALBASE}
149
LIBXML2_LIB_DEPENDS=	libxml2.so:textproc/libxml2
150
151
OPENSSL_CONFIGURE_WITH=	openssl
152
OPENSSL_USES=		ssl
153
OPENSSL_VARS=		BROKEN_SSL="libressl libressl-devel" \
154
			BROKEN_SSL_REASON="PSK is not provided by LibreSSL"
155
156
GNUTLS_CONFIGURE_WITH=	gnutls
157
GNUTLS_LIB_DEPENDS=	libgnutls.so:security/gnutls
158
159
.include <bsd.port.pre.mk>
160
161
.if ${ZABBIX_BUILD} == "agent2"
162
EXTRA_PATCHES=	${PATCHDIR}/agent2-patches
163
MAKE_ARGS+=	CGO_CFLAGS="${CFLAGS}"
164
MAKE_ARGS+=	CGO_LDLAGS="${LDFLAGS}"
165
.endif
166
167
post-patch:
168
	@${GREP} -rl "/etc/zabbix" ${WRKSRC} \
169
	  | ${XARGS} ${REINPLACE_CMD} -e 's#/usr/local/etc#${ETCDIR}#g'
170
171
	@${REINPLACE_CMD} -e 's#/usr/sbin/fping#${LOCALBASE}/sbin/fping#g' \
172
		${WRKSRC}/conf/zabbix_*.conf \
173
		${WRKSRC}/src/zabbix_proxy/proxy.c \
174
		${WRKSRC}/src/zabbix_server/server.c
175
176
.if ${ZABBIX_BUILD} == "server"
177
	@${REINPLACE_CMD} -e 's#/tmp/zabbix_server.pid#/var/run/zabbix/zabbix_server.pid#g' \
178
		${WRKSRC}/conf/zabbix_server.conf \
179
		${WRKSRC}/src/zabbix_server/server.c
180
.endif
181
182
.if ${ZABBIX_BUILD} == "proxy"
183
	@${REINPLACE_CMD} -e 's#/tmp/zabbix_proxy.pid#/var/run/zabbix/zabbix_proxy.pid#g' \
184
		${WRKSRC}/conf/zabbix_proxy.conf \
185
		${WRKSRC}/src/zabbix_proxy/proxy.c
186
.endif
187
188
.if ${ZABBIX_BUILD} == "agent"
189
	@${REINPLACE_CMD} -e 's#/tmp/zabbix_agentd.pid#/var/run/zabbix/zabbix_agentd.pid#g' \
190
		${WRKSRC}/conf/zabbix_agentd.conf \
191
		${WRKSRC}/src/zabbix_agent/zabbix_agentd.c
192
.endif
193
194
.if ${ZABBIX_BUILD} == "agent2"
195
	@${REINPLACE_CMD} -e 's#/tmp/zabbix_agent2.pid#/var/run/zabbix/zabbix_agent2.pid#g' \
196
		${WRKSRC}/src/go/conf/zabbix_agent2.conf \
197
		${WRKSRC}/src/go/pkg/pidfile/pidfile_nix.go
198
.endif
199
200
.if ${ZABBIX_BUILD} == "java"
201
	@${REINPLACE_CMD} -e 's#/tmp/zabbix_java.pid#/var/run/zabbix/zabbix_java.pid#g' \
202
		${WRKSRC}/src/zabbix_java/settings.sh
203
.endif
204
205
.if ${ZABBIX_BUILD:Nagent*}
206
.  for d in mysql oracle postgresql sqlite3
207
	@${REINPLACE_CMD} \
208
		-e 's|/usr/bin/traceroute|/usr/sbin/traceroute|g' \
209
		-e 's|sudo /usr/bin/nmap|sudo ${LOCALBASE}/bin/nmap|g' \
210
		${WRKSRC}/database/${d}/data.sql
211
.  endfor
212
.endif
213
	@${FIND} ${WRKSRC} -type f \( -name '*.bak' -or -name '*.orig' \) \
214
		-exec ${RM} {} +
215
216
pre-configure:
217
	@echo "ac_cv_env_PKG_CONFIG_set=${LOCALBASE}/bin/pkgconf" > ${WRKSRC}/config.cache
218
219
.if ${ZABBIX_BUILD} == "agent2"
220
do-build:
221
	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS}
222
223
do-install:
224
	${MKDIR} ${STAGEDIR}${ETCDIR}
225
	${INSTALL_PROGRAM} ${WRKSRC}/src/go/bin/mock_server ${STAGEDIR}${LOCALBASE}/bin
226
	${INSTALL_PROGRAM} ${WRKSRC}/src/go/bin/zabbix_agent2 ${STAGEDIR}${LOCALBASE}/bin
227
	${CP} ${WRKSRC}/src/go/conf/zabbix_agent2.conf ${STAGEDIR}${ETCDIR}/zabbix_agent2.conf.sample
228
	${CP} ${WRKSRC}/src/go/conf/mock_server.conf ${STAGEDIR}${ETCDIR}/mock_server.conf.sample
229
	${CP} ${WRKSRC}/src/go/cmd/mock_server/active_checks.json ${STAGEDIR}${ETCDIR}/active_checks.json.sample
230
	@${REINPLACE_CMD} -e 's#./go/src/zabbix/cmd/mock_server/active_checks.json#${ETCDIR}/active_checks.json#g' \
231
		${STAGEDIR}${ETCDIR}/mock_server.conf.sample
232
.endif
233
234
post-install:
235
.if ${ZABBIX_BUILD} == "java"
236
	${MV} ${STAGEDIR}${PREFIX}/sbin/zabbix_java/settings.sh \
237
		${STAGEDIR}${PREFIX}/sbin/zabbix_java/settings.sh.sample
238
	@${MKDIR} ${STAGEDIR}/var/run/zabbix
239
.endif
240
241
.if ${ZABBIX_BUILD:Nagent*} && ${ZABBIX_BUILD} != "java"
242
	${MKDIR} ${STAGEDIR}${DATADIR}/${ZABBIX_BUILD:Q}/database
243
	@${RM} ${WRKSRC}/database/*/Makefile*
244
	(cd ${WRKSRC}/database/ && \
245
		${COPYTREE_SHARE} "mysql oracle postgresql sqlite3" \
246
		${STAGEDIR}${DATADIR}/${ZABBIX_BUILD:Q}/database/)
247
248
	${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf \
249
		${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf.sample
250
.endif
251
252
.if ${ZABBIX_BUILD} == "agent"
253
	${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf \
254
		${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf.sample
255
.endif
256
257
.else # frontend
258
.include <bsd.port.pre.mk>
259
.endif
260
261
.include <bsd.port.post.mk>
(-)b/net-mgmt/zabbix5-server/distinfo (+3 lines)
Added Link Here
1
TIMESTAMP = 1590522860
2
SHA256 (zabbix-5.0.1.tar.gz) = 20a19e5cf2354ffcbbe24521b04becfc9875e57289c00da71999de60c4a853b6
3
SIZE (zabbix-5.0.1.tar.gz) = 18623104
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_Makefile.am (+11 lines)
Added Link Here
1
--- src/go/Makefile.am.orig	2020-05-23 17:45:00 UTC
2
+++ src/go/Makefile.am
3
@@ -19,7 +19,7 @@ GOLDFLAGS += -X main.confDefault=${AGENT2_CONFIG_FILE}
4
 all: build
5
 
6
 build:
7
-	CGO_CFLAGS="${CGO_CFLAGS}" CGO_LDFLAGS="${CGO_LDFLAGS}" go build -ldflags="${GOLDFLAGS}" -o bin ./...
8
+	CGO_CFLAGS="${CGO_CFLAGS}" CGO_LDFLAGS="${CGO_LDFLAGS}" go build -mod=vendor -ldflags="${GOLDFLAGS}" -o bin ./...
9
 
10
 clean:
11
 	go clean ./...
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_cmd_zabbix__agent2_testrun__freebsd.go (+105 lines)
Added Link Here
1
--- src/go/cmd/zabbix_agent2/testrun_freebsd.go.orig	2020-05-23 17:55:39 UTC
2
+++ src/go/cmd/zabbix_agent2/testrun_freebsd.go
3
@@ -0,0 +1,102 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package main
24
+
25
+import "zabbix.com/internal/agent/scheduler"
26
+
27
+func checkMetrics(s scheduler.Scheduler) {
28
+	metrics := []string{
29
+		`agent.hostname`,
30
+		`agent.ping`,
31
+		`agent.version`,
32
+		`system.localtime[utc]`,
33
+		`system.run[echo test]`,
34
+		`web.page.get[localhost,,80]`,
35
+		`web.page.perf[localhost,,80]`,
36
+		`web.page.regexp[localhost,,80,OK]`,
37
+		`vfs.file.size[/etc/passwd]`,
38
+		`vfs.file.time[/etc/passwd,modify]`,
39
+		`vfs.file.exists[/etc/passwd]`,
40
+		`vfs.file.contents[/etc/passwd]`,
41
+		`vfs.file.regexp[/etc/passwd,root]`,
42
+		`vfs.file.regmatch[/etc/passwd,root]`,
43
+		`vfs.file.md5sum[/etc/passwd]`,
44
+		`vfs.file.cksum[/etc/passwd]`,
45
+		`vfs.dir.size[/var/log]`,
46
+		`vfs.dir.count[/var/log]`,
47
+		`net.dns[,zabbix.com]`,
48
+		`net.dns.record[,zabbix.com]`,
49
+		`net.tcp.dns[,zabbix.com]`,
50
+		`net.tcp.dns.query[,zabbix.com]`,
51
+		`net.tcp.port[,80]`,
52
+		`system.users.num`,
53
+		`log[logfile]`,
54
+		`log.count[logfile]`,
55
+		`logrt[logfile]`,
56
+		`logrt.count[logfile]`,
57
+		`zabbix.stats[127.0.0.1,10051]`,
58
+		`kernel.maxfiles`,
59
+		`kernel.maxproc`,
60
+		`vfs.fs.size[/,free]`,
61
+		`vfs.fs.inode[/,free]`,
62
+		`vfs.fs.discovery`,
63
+		`vfs.dev.write[sda,operations]`,
64
+		`net.tcp.listen[80]`,
65
+		`net.udp.listen[68]`,
66
+		`net.if.in[lo0,bytes]`,
67
+		`net.if.out[lo0,bytes]`,
68
+		`net.if.total[lo0,bytes]`,
69
+		`net.if.collisions[lo0]`,
70
+		`net.if.discovery`,
71
+		`vm.memory.size[total]`,
72
+		`proc.cpu.util[inetd]`,
73
+		`proc.num[inetd]`,
74
+		`proc.mem[inetd]`,
75
+		`system.cpu.switches`,
76
+		`system.cpu.intr`,
77
+		`system.cpu.util[all,user,avg1]`,
78
+		`system.cpu.load[all,avg1]`,
79
+		`system.cpu.num[online]`,
80
+		`system.cpu.discovery`,
81
+		`system.uname`,
82
+		`system.hw.chassis`,
83
+		`system.hw.cpu`,
84
+		`system.hw.devices`,
85
+		`system.hw.macaddr`,
86
+		`system.sw.arch`,
87
+		`system.sw.os`,
88
+		`system.sw.packages`,
89
+		`system.swap.size[all,free]`,
90
+		`system.swap.in[all]`,
91
+		`system.swap.out[all]`,
92
+		`system.uptime`,
93
+		`system.boottime`,
94
+		`sensor[w83781d-i2c-0-2d,temp1]`,
95
+		`net.tcp.service[ssh,127.0.0.1,22]`,
96
+		`net.tcp.service.perf[ssh,127.0.0.1,22]`,
97
+		`net.udp.service[ntp,127.0.0.1,123]`,
98
+		`net.udp.service.perf[ntp,127.0.0.1,123]`,
99
+		`system.hostname`,
100
+	}
101
+
102
+	for _, metric := range metrics {
103
+		checkMetric(s, metric)
104
+	}
105
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_checks__freebsd.go (+103 lines)
Added Link Here
1
--- src/go/pkg/zbxlib/checks_freebsd.go.orig	2020-05-19 19:28:35 UTC
2
+++ src/go/pkg/zbxlib/checks_freebsd.go
3
@@ -0,0 +1,100 @@
4
+// +build freebsd
5
+
6
+/*
7
+** Zabbix
8
+** Copyright (C) 2001-2020 Zabbix SIA
9
+**
10
+** This program is free software; you can redistribute it and/or modify
11
+** it under the terms of the GNU General Public License as published by
12
+** the Free Software Foundation; either version 2 of the License, or
13
+** (at your option) any later version.
14
+**
15
+** This program is distributed in the hope that it will be useful,
16
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+** GNU General Public License for more details.
19
+**
20
+** You should have received a copy of the GNU General Public License
21
+** along with this program; if not, write to the Free Software
22
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
23
+**/
24
+
25
+package zbxlib
26
+
27
+/* cspell:disable */
28
+
29
+/*
30
+#cgo CFLAGS: -I${SRCDIR}/../../../../../include
31
+
32
+#include "common.h"
33
+#include "sysinfo.h"
34
+
35
+int	SYSTEM_LOCALTIME(AGENT_REQUEST *request, AGENT_RESULT *result);
36
+int	NET_DNS(AGENT_REQUEST *request, AGENT_RESULT *result);
37
+int	NET_DNS_RECORD(AGENT_REQUEST *request, AGENT_RESULT *result);
38
+int	SYSTEM_BOOTTIME(AGENT_REQUEST *request, AGENT_RESULT *result);
39
+int	NET_TCP_LISTEN(AGENT_REQUEST *request, AGENT_RESULT *result);
40
+int	NET_TCP_PORT(AGENT_REQUEST *request, AGENT_RESULT *result);
41
+int	CHECK_SERVICE(AGENT_REQUEST *request, AGENT_RESULT *result);
42
+int	CHECK_SERVICE_PERF(AGENT_REQUEST *request, AGENT_RESULT *result);
43
+int	NET_UDP_LISTEN(AGENT_REQUEST *request, AGENT_RESULT *result);
44
+int	SYSTEM_CPU_LOAD(AGENT_REQUEST *request, AGENT_RESULT *result);
45
+int	SYSTEM_USERS_NUM(AGENT_REQUEST *request, AGENT_RESULT *result);
46
+int	VFS_DIR_COUNT(AGENT_REQUEST *request, AGENT_RESULT *result);
47
+int	VFS_DIR_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result);
48
+int	VFS_FS_DISCOVERY(AGENT_REQUEST *request, AGENT_RESULT *result);
49
+int	VFS_FS_INODE(AGENT_REQUEST *request, AGENT_RESULT *result);
50
+int	VFS_FS_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result);
51
+int	VFS_FS_GET(AGENT_REQUEST *request, AGENT_RESULT *result);
52
+int	VM_MEMORY_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result);
53
+
54
+*/
55
+import "C"
56
+
57
+import (
58
+	"unsafe"
59
+)
60
+
61
+func resolveMetric(key string) (cfunc unsafe.Pointer) {
62
+	switch key {
63
+	case "system.localtime":
64
+		return unsafe.Pointer(C.SYSTEM_LOCALTIME)
65
+	case "net.dns":
66
+		return unsafe.Pointer(C.NET_DNS)
67
+	case "net.dns.record":
68
+		return unsafe.Pointer(C.NET_DNS_RECORD)
69
+	case "system.boottime":
70
+		return unsafe.Pointer(C.SYSTEM_BOOTTIME)
71
+	case "net.tcp.listen":
72
+		return unsafe.Pointer(C.NET_TCP_LISTEN)
73
+	case "net.tcp.port":
74
+		return unsafe.Pointer(C.NET_TCP_PORT)
75
+	case "net.tcp.service", "net.udp.service":
76
+		return unsafe.Pointer(C.CHECK_SERVICE)
77
+	case "net.tcp.service.perf", "net.udp.service.perf":
78
+		return unsafe.Pointer(C.CHECK_SERVICE_PERF)
79
+	case "net.udp.listen":
80
+		return unsafe.Pointer(C.NET_UDP_LISTEN)
81
+	case "system.cpu.load":
82
+		return unsafe.Pointer(C.SYSTEM_CPU_LOAD)
83
+	case "system.users.num":
84
+		return unsafe.Pointer(C.SYSTEM_USERS_NUM)
85
+	case "vfs.dir.count":
86
+		return unsafe.Pointer(C.VFS_DIR_COUNT)
87
+	case "vfs.dir.size":
88
+		return unsafe.Pointer(C.VFS_DIR_SIZE)
89
+	case "vfs.fs.discovery":
90
+		return unsafe.Pointer(C.VFS_FS_DISCOVERY)
91
+	case "vfs.fs.inode":
92
+		return unsafe.Pointer(C.VFS_FS_INODE)
93
+	case "vfs.fs.size":
94
+		return unsafe.Pointer(C.VFS_FS_SIZE)
95
+	case "vfs.fs.get":
96
+		return unsafe.Pointer(C.VFS_FS_GET)
97
+	case "vm.memory.size":
98
+		return unsafe.Pointer(C.VM_MEMORY_SIZE)
99
+
100
+	default:
101
+		return
102
+	}
103
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_globals__freebsd.go (+129 lines)
Added Link Here
1
--- src/go/pkg/zbxlib/globals_freebsd.go.orig	2020-05-23 18:27:12 UTC
2
+++ src/go/pkg/zbxlib/globals_freebsd.go
3
@@ -0,0 +1,126 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package zbxlib
24
+
25
+/* cspell:disable */
26
+
27
+/*
28
+#cgo LDFLAGS: -Wl,--start-group
29
+#cgo LDFLAGS: ${SRCDIR}/../../../zabbix_agent/logfiles/libzbxlogfiles.a
30
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcomms/libzbxcomms.a
31
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcommon/libzbxcommon.a
32
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcrypto/libzbxcrypto.a
33
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsys/libzbxsys.a
34
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxnix/libzbxnix.a
35
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxconf/libzbxconf.a
36
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxhttp/libzbxhttp.a
37
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcompress/libzbxcompress.a
38
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxregexp/libzbxregexp.a
39
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/libzbxagentsysinfo.a
40
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/common/libcommonsysinfo.a
41
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/simple/libsimplesysinfo.a
42
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/freebsd/libspechostnamesysinfo.a
43
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/freebsd/libspecsysinfo.a
44
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxexec/libzbxexec.a
45
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxalgo/libzbxalgo.a
46
+#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxjson/libzbxjson.a
47
+#cgo LDFLAGS: -lz -lpcre 
48
+#cgo LDFLAGS: -Wl,--end-group
49
+
50
+#include "common.h"
51
+#include "sysinfo.h"
52
+#include "comms.h"
53
+#include "log.h"
54
+#include "../src/zabbix_agent/metrics.h"
55
+#include "../src/zabbix_agent/logfiles/logfiles.h"
56
+
57
+typedef ZBX_ACTIVE_METRIC* ZBX_ACTIVE_METRIC_LP;
58
+typedef zbx_vector_ptr_t * zbx_vector_ptr_lp_t;
59
+
60
+int CONFIG_MAX_LINES_PER_SECOND = 20;
61
+char *CONFIG_HOSTNAME = NULL;
62
+int	CONFIG_UNSAFE_USER_PARAMETERS= 0;
63
+int	CONFIG_ENABLE_REMOTE_COMMANDS= 0;
64
+int	CONFIG_LOG_REMOTE_COMMANDS= 0;
65
+char	*CONFIG_SOURCE_IP= NULL;
66
+
67
+unsigned int	configured_tls_connect_mode = ZBX_TCP_SEC_UNENCRYPTED;
68
+unsigned int	configured_tls_accept_modes = ZBX_TCP_SEC_UNENCRYPTED;
69
+
70
+char *CONFIG_TLS_CONNECT= NULL;
71
+char *CONFIG_TLS_ACCEPT	= NULL;
72
+char *CONFIG_TLS_CA_FILE = NULL;
73
+char *CONFIG_TLS_CRL_FILE = NULL;
74
+char *CONFIG_TLS_SERVER_CERT_ISSUER	= NULL;
75
+char *CONFIG_TLS_SERVER_CERT_SUBJECT = NULL;
76
+char *CONFIG_TLS_CERT_FILE = NULL;
77
+char *CONFIG_TLS_KEY_FILE = NULL;
78
+char *CONFIG_TLS_PSK_IDENTITY = NULL;
79
+char *CONFIG_TLS_PSK_FILE = NULL;
80
+
81
+char *CONFIG_TLS_CIPHER_CERT13 = NULL;
82
+char *CONFIG_TLS_CIPHER_CERT = NULL;
83
+char *CONFIG_TLS_CIPHER_PSK13 = NULL;
84
+char *CONFIG_TLS_CIPHER_PSK = NULL;
85
+char *CONFIG_TLS_CIPHER_ALL13 = NULL;
86
+char *CONFIG_TLS_CIPHER_ALL = NULL;
87
+char *CONFIG_TLS_CIPHER_CMD13 = NULL;
88
+char *CONFIG_TLS_CIPHER_CMD = NULL;
89
+
90
+int	CONFIG_PASSIVE_FORKS = 0;
91
+int	CONFIG_ACTIVE_FORKS = 0;
92
+
93
+const char	*progname = NULL;
94
+const char	title_message[] = "agent";
95
+const char	syslog_app_name[] = "agent";
96
+const char	*usage_message[] = {};
97
+unsigned char	program_type	= 0x80;
98
+const char	*help_message[] = {};
99
+
100
+ZBX_METRIC	parameters_agent[] = {NULL};
101
+ZBX_METRIC	parameters_specific[] = {NULL};
102
+
103
+void zbx_on_exit(int ret)
104
+{
105
+}
106
+
107
+int	zbx_procstat_collector_started(void)
108
+{
109
+	return FAIL;
110
+}
111
+
112
+int	zbx_procstat_get_util(const char *procname, const char *username, const char *cmdline, zbx_uint64_t flags,
113
+		int period, int type, double *value, char **errmsg)
114
+{
115
+	return FAIL;
116
+}
117
+
118
+int	get_cpustat(AGENT_RESULT *result, int cpu_num, int state, int mode)
119
+{
120
+	return SYSINFO_RET_FAIL;
121
+}
122
+
123
+char	*strerror_from_system(unsigned long error)
124
+{
125
+	return zbx_strerror(errno);
126
+}
127
+
128
+*/
129
+import "C"
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_kernel_kernel__freebsd.go (+57 lines)
Added Link Here
1
--- src/go/plugins/kernel/kernel_freebsd.go.orig	2020-05-23 18:14:41 UTC
2
+++ src/go/plugins/kernel/kernel_freebsd.go
3
@@ -0,0 +1,54 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package kernel
24
+
25
+import (
26
+	"fmt"
27
+	"os/exec"
28
+	"strconv"
29
+	"strings"
30
+)
31
+
32
+func getMax(proc bool) (max uint64, err error) {
33
+	var out []byte
34
+	var result string
35
+
36
+	if proc {
37
+		out, err = exec.Command("/sbin/sysctl", "-n", "kern.pid_max").Output()
38
+		if err != nil {
39
+			err = fmt.Errorf("sysctl -n kern.pid_max failed: %v\n", err)
40
+		}
41
+		result = strings.TrimRight(string(out), "\n")
42
+		max, err = strconv.ParseUint(string(result), 10, 64)
43
+	} else {
44
+		out, err = exec.Command("/sbin/sysctl", "-n", "kern.maxfiles").Output()
45
+		if err != nil {
46
+			err = fmt.Errorf("sysctl -n kern.maxfiles failed: %v\n", err)
47
+		}
48
+		result = strings.TrimRight(string(out), "\n")
49
+		max, err = strconv.ParseUint(string(result), 10, 64)
50
+	}
51
+
52
+	if err != nil {
53
+		err = fmt.Errorf("Cannot obtain data from kernel.")
54
+	}
55
+
56
+	return
57
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__freebsd.go (+196 lines)
Added Link Here
1
--- src/go/plugins/net/netif/netif_freebsd.go.orig	2020-05-23 18:07:38 UTC
2
+++ src/go/plugins/net/netif/netif_freebsd.go
3
@@ -0,0 +1,193 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package netif
24
+
25
+import (
26
+	"bufio"
27
+	"bytes"
28
+	"encoding/json"
29
+	"errors"
30
+	"strconv"
31
+	"strings"
32
+        "log"
33
+        "os/exec"
34
+
35
+	"zabbix.com/pkg/plugin"
36
+	"zabbix.com/pkg/std"
37
+)
38
+
39
+var stdOs std.Os
40
+
41
+var mapNetStatIn = map[string]uint{
42
+	"name":       0,
43
+	"mtu":        1,
44
+	"network":    2,
45
+	"address":    3,
46
+	"packets":    4,
47
+	"errors":     5,
48
+	"dropped":    6,
49
+	"bytes":      7,
50
+}
51
+
52
+var mapNetStatOut = map[string]uint{
53
+	"packets":    8,
54
+	"errors":     9,
55
+	"bytes":      10,
56
+	"collisions": 11,
57
+}
58
+
59
+func (p *Plugin) addStatNum(statName string, mapNetStat map[string]uint, statNums *[]uint) error {
60
+	if statNum, ok := mapNetStat[statName]; ok {
61
+		*statNums = append(*statNums, statNum)
62
+	} else {
63
+		return errors.New(errorInvalidSecondParam)
64
+	}
65
+	return nil
66
+}
67
+
68
+func (p *Plugin) getNetStats(networkIf string, statName string, dir dirFlag) (result uint64, err error) {
69
+	var statNums []uint
70
+
71
+	if dir&dirIn != 0 {
72
+		if err = p.addStatNum(statName, mapNetStatIn, &statNums); err != nil {
73
+			return
74
+		}
75
+	}
76
+
77
+	if dir&dirOut != 0 {
78
+		if err = p.addStatNum(statName, mapNetStatOut, &statNums); err != nil {
79
+			return
80
+		}
81
+	}
82
+
83
+        out, err := exec.Command("/usr/bin/netstat", "-bnI", networkIf).Output()
84
+        if err != nil {
85
+                log.Fatal("netstat failed: %v\n", err)
86
+        }
87
+        file := bytes.NewBufferString(string(out))
88
+
89
+	var total uint64
90
+loop:
91
+	for sLines := bufio.NewScanner(file); sLines.Scan(); {
92
+		dev := strings.Split(sLines.Text(), " ")
93
+
94
+		if len(dev) > 1 && networkIf == strings.TrimSpace(dev[0]) {
95
+			stats := strings.Fields(sLines.Text())
96
+
97
+			if len(stats) >= 12 {
98
+				for _, statNum := range statNums {
99
+					var res uint64
100
+
101
+					if res, err = strconv.ParseUint(stats[statNum], 10, 64); err != nil {
102
+						break loop
103
+					}
104
+					total += res
105
+				}
106
+				return total, nil
107
+			}
108
+			break
109
+		}
110
+	}
111
+	err = errors.New("Cannot find information for this network interface")
112
+	return
113
+}
114
+
115
+func (p *Plugin) getDevDiscovery() (netInterfaces []msgIfDiscovery, err error) {
116
+        out, err := exec.Command("/sbin/ifconfig", "-l").Output()
117
+        if err != nil {
118
+                log.Fatal("/sbin/ifconfig -a failed: %v\n", err)
119
+        }
120
+
121
+	netInterfaces = make([]msgIfDiscovery, 0)
122
+	netif := strings.Fields(string(out))
123
+	for _, i := range netif {
124
+		netInterfaces = append(netInterfaces, msgIfDiscovery{i})
125
+	}
126
+
127
+	return netInterfaces, nil
128
+}
129
+
130
+// Export -
131
+func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error) {
132
+	var direction dirFlag
133
+	var mode string
134
+
135
+	switch key {
136
+	case "net.if.discovery":
137
+		if len(params) > 0 {
138
+			return nil, errors.New(errorParametersNotAllowed)
139
+		}
140
+		var devices []msgIfDiscovery
141
+		if devices, err = p.getDevDiscovery(); err != nil {
142
+			return
143
+		}
144
+		var b []byte
145
+		if b, err = json.Marshal(devices); err != nil {
146
+			return
147
+		}
148
+		return string(b), nil
149
+	case "net.if.collisions":
150
+		if len(params) > 1 {
151
+			return nil, errors.New(errorTooManyParams)
152
+		}
153
+
154
+		if len(params) < 1 || params[0] == "" {
155
+			return nil, errors.New(errorEmptyIfName)
156
+		}
157
+		return p.getNetStats(params[0], "collisions", dirOut)
158
+	case "net.if.in":
159
+		direction = dirIn
160
+	case "net.if.out":
161
+		direction = dirOut
162
+	case "net.if.total":
163
+		direction = dirIn | dirOut
164
+	default:
165
+		/* SHOULD_NEVER_HAPPEN */
166
+		return nil, errors.New(errorUnsupportedMetric)
167
+	}
168
+
169
+	if len(params) < 1 || params[0] == "" {
170
+		return nil, errors.New(errorEmptyIfName)
171
+	}
172
+
173
+	if len(params) > 2 {
174
+		return nil, errors.New(errorTooManyParams)
175
+	}
176
+
177
+	if len(params) == 2 && params[1] != "" {
178
+		mode = params[1]
179
+	} else {
180
+		mode = "bytes"
181
+	}
182
+
183
+	return p.getNetStats(params[0], mode, direction)
184
+}
185
+
186
+func init() {
187
+	stdOs = std.NewOs()
188
+
189
+	plugin.RegisterMetrics(&impl, "NetIf",
190
+		"net.if.collisions", "Returns number of out-of-window collisions.",
191
+		"net.if.in", "Returns incoming traffic statistics on network interface.",
192
+		"net.if.out", "Returns outgoing traffic statistics on network interface.",
193
+		"net.if.total", "Returns sum of incoming and outgoing traffic statistics on network interface.",
194
+		"net.if.discovery", "Returns list of network interfaces. Used for low-level discovery.")
195
+
196
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__unsupported.go (+8 lines)
Added Link Here
1
--- src/go/plugins/net/netif/netif_unsupported.go.orig	2020-05-20 09:53:44 UTC
2
+++ src/go/plugins/net/netif/netif_unsupported.go
3
@@ -1,4 +1,4 @@
4
-// +build !linux,!windows
5
+// +build !linux,!windows,!freebsd
6
 
7
 /*
8
 ** Zabbix
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_tcp_tcp__freebsd.go (+38 lines)
Added Link Here
1
--- src/go/plugins/net/tcp/tcp_freebsd.go.orig	2020-05-20 10:52:02 UTC
2
+++ src/go/plugins/net/tcp/tcp_freebsd.go
3
@@ -0,0 +1,35 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package tcpudp
24
+
25
+import (
26
+	"errors"
27
+
28
+	"zabbix.com/pkg/plugin"
29
+)
30
+
31
+func exportSystemTcpListen(port uint16) (result interface{}, err error) {
32
+	return nil, errors.New("Not supported.")
33
+}
34
+
35
+func init() {
36
+	plugin.RegisterMetrics(&impl, "TCP",
37
+		"net.tcp.port", "Checks if it is possible to make TCP connection to specified port.")
38
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_plugins__freebsd.go (+45 lines)
Added Link Here
1
--- src/go/plugins/plugins_freebsd.go.orig	2020-05-23 18:05:47 UTC
2
+++ src/go/plugins/plugins_freebsd.go
3
@@ -0,0 +1,42 @@
4
+// build: freebsd
5
+/*
6
+** Zabbix
7
+** Copyright (C) 2001-2020 Zabbix SIA
8
+**
9
+** This program is free software; you can redistribute it and/or modify
10
+** it under the terms of the GNU General Public License as published by
11
+** the Free Software Foundation; either version 2 of the License, or
12
+** (at your option) any later version.
13
+**
14
+** This program is distributed in the hope that it will be useful,
15
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+** GNU General Public License for more details.
18
+**
19
+** You should have received a copy of the GNU General Public License
20
+** along with this program; if not, write to the Free Software
21
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
22
+**/
23
+
24
+package plugins
25
+
26
+import (
27
+	_ "zabbix.com/plugins/kernel"
28
+	_ "zabbix.com/plugins/log"
29
+	_ "zabbix.com/plugins/memcached"
30
+	_ "zabbix.com/plugins/mysql"
31
+	_ "zabbix.com/plugins/net/netif"
32
+	_ "zabbix.com/plugins/net/tcp"
33
+	_ "zabbix.com/plugins/net/udp"
34
+	_ "zabbix.com/plugins/proc"
35
+	_ "zabbix.com/plugins/redis"
36
+	_ "zabbix.com/plugins/systemrun"
37
+	_ "zabbix.com/plugins/system/cpu"
38
+	_ "zabbix.com/plugins/system/uname"
39
+	_ "zabbix.com/plugins/system/uptime"
40
+	_ "zabbix.com/plugins/vfs/file"
41
+	_ "zabbix.com/plugins/web"
42
+	_ "zabbix.com/plugins/zabbix/async"
43
+	_ "zabbix.com/plugins/zabbix/stats"
44
+	_ "zabbix.com/plugins/zabbix/sync"
45
+)
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_proc__freebsd.go (+413 lines)
Added Link Here
1
--- src/go/plugins/proc/proc_freebsd.go.orig	2020-05-20 10:37:47 UTC
2
+++ src/go/plugins/proc/proc_freebsd.go
3
@@ -0,0 +1,410 @@
4
+// +build freebsd
5
+
6
+/*
7
+** Zabbix
8
+** Copyright (C) 2001-2020 Zabbix SIA
9
+**
10
+** This program is free software; you can redistribute it and/or modify
11
+** it under the terms of the GNU General Public License as published by
12
+** the Free Software Foundation; either version 2 of the License, or
13
+** (at your option) any later version.
14
+**
15
+** This program is distributed in the hope that it will be useful,
16
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+** GNU General Public License for more details.
19
+**
20
+** You should have received a copy of the GNU General Public License
21
+** along with this program; if not, write to the Free Software
22
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
23
+**/
24
+
25
+package proc
26
+
27
+/*
28
+#include <unistd.h>
29
+*/
30
+import "C"
31
+
32
+import (
33
+	"errors"
34
+	"math"
35
+	"os/user"
36
+	"regexp"
37
+	"strconv"
38
+	"sync"
39
+	"time"
40
+
41
+	"zabbix.com/pkg/log"
42
+	"zabbix.com/pkg/plugin"
43
+)
44
+
45
+const (
46
+	maxInactivityPeriod = time.Hour * 25
47
+	maxHistory          = 60*15 + 1
48
+)
49
+
50
+// Plugin -
51
+type Plugin struct {
52
+	plugin.Base
53
+	queries map[procQuery]*cpuUtilStats
54
+	mutex   sync.Mutex
55
+	scanid  uint64
56
+	stats   map[int64]*cpuUtil
57
+}
58
+
59
+var impl Plugin = Plugin{
60
+	stats:   make(map[int64]*cpuUtil),
61
+	queries: make(map[procQuery]*cpuUtilStats),
62
+}
63
+
64
+type historyIndex int
65
+
66
+func (h historyIndex) inc() historyIndex {
67
+	h++
68
+	if h == maxHistory {
69
+		h = 0
70
+	}
71
+	return h
72
+}
73
+
74
+func (h historyIndex) dec() historyIndex {
75
+	h--
76
+	if h < 0 {
77
+		h = maxHistory - 1
78
+	}
79
+	return h
80
+}
81
+
82
+func (h historyIndex) sub(value historyIndex) historyIndex {
83
+	h -= value
84
+	for h < 0 {
85
+		h += maxHistory
86
+	}
87
+	return h
88
+}
89
+
90
+type cpuUtilData struct {
91
+	utime     uint64
92
+	stime     uint64
93
+	timestamp time.Time
94
+}
95
+
96
+type cpuUtilStats struct {
97
+	scanid         uint64
98
+	accessed       time.Time
99
+	err            error
100
+	cmdlinePattern *regexp.Regexp
101
+	history        []cpuUtilData
102
+	tail           historyIndex
103
+	head           historyIndex
104
+}
105
+
106
+type cpuUtilQuery struct {
107
+	procQuery
108
+	userid         int64
109
+	pids           []int64
110
+	cmdlinePattern *regexp.Regexp
111
+	utime          uint64
112
+	stime          uint64
113
+}
114
+
115
+type procQuery struct {
116
+	name    string
117
+	user    string
118
+	cmdline string
119
+}
120
+
121
+const (
122
+	procInfoPid = 1 << iota
123
+	procInfoName
124
+	procInfoUser
125
+	procInfoCmdline
126
+)
127
+
128
+type procInfo struct {
129
+	pid     int64
130
+	name    string
131
+	userid  int64
132
+	cmdline string
133
+	arg0    string
134
+}
135
+
136
+type cpuUtil struct {
137
+	utime   uint64
138
+	stime   uint64
139
+	started uint64
140
+	err     error
141
+}
142
+
143
+
144
+func (q *cpuUtilQuery) match(p *procInfo) bool {
145
+	if q.name != "" && q.name != p.name && q.name != p.arg0 {
146
+		return false
147
+	}
148
+	if q.user != "" && q.userid != p.userid {
149
+		return false
150
+	}
151
+	if q.cmdline != "" && !q.cmdlinePattern.Match([]byte(p.cmdline)) {
152
+		return false
153
+	}
154
+	return true
155
+}
156
+
157
+func newCpuUtilQuery(q *procQuery, pattern *regexp.Regexp) (query *cpuUtilQuery, err error) {
158
+	query = &cpuUtilQuery{procQuery: *q}
159
+	if q.user != "" {
160
+		var u *user.User
161
+		if u, err = user.Lookup(q.user); err != nil {
162
+			return
163
+		}
164
+		if query.userid, err = strconv.ParseInt(u.Uid, 10, 64); err != nil {
165
+			return
166
+		}
167
+	}
168
+	query.cmdlinePattern = pattern
169
+	return
170
+}
171
+
172
+func (p *Plugin) prepareQueries() (queries []*cpuUtilQuery, flags int) {
173
+	now := time.Now()
174
+	flags = procInfoPid
175
+
176
+	queries = make([]*cpuUtilQuery, 0, len(p.queries))
177
+	p.mutex.Lock()
178
+	for q, stats := range p.queries {
179
+		if now.Sub(stats.accessed) > maxInactivityPeriod {
180
+			p.Debugf("removed unused CPU utilisation query %+v", q)
181
+			delete(p.queries, q)
182
+			continue
183
+		}
184
+		var query *cpuUtilQuery
185
+		if query, stats.err = newCpuUtilQuery(&q, stats.cmdlinePattern); stats.err != nil {
186
+			p.Debugf("cannot create CPU utilisation query %+v: %s", q, stats.err)
187
+			continue
188
+		}
189
+		queries = append(queries, query)
190
+		stats.scanid = p.scanid
191
+		if q.name != "" {
192
+			flags |= procInfoName | procInfoCmdline
193
+		}
194
+		if q.user != "" {
195
+			flags |= procInfoUser
196
+		}
197
+		if q.cmdline != "" {
198
+			flags |= procInfoCmdline
199
+		}
200
+	}
201
+	p.mutex.Unlock()
202
+	return
203
+}
204
+
205
+func (p *Plugin) Collect() (err error) {
206
+	if log.CheckLogLevel(log.Trace) {
207
+		p.Tracef("In %s() queries:%d", log.Caller(), len(p.queries))
208
+		defer p.Tracef("End of %s()", log.Caller())
209
+	}
210
+	p.scanid++
211
+	queries, flags := p.prepareQueries()
212
+	var processes []*procInfo
213
+	if processes, err = p.getProcesses(flags); err != nil {
214
+		return
215
+	}
216
+	p.Tracef("%s() queries:%d", log.Caller(), len(p.queries))
217
+
218
+	stats := make(map[int64]*cpuUtil)
219
+	// find processes matching prepared queries
220
+	for _, p := range processes {
221
+		var monitored bool
222
+		for _, q := range queries {
223
+			if q.match(p) {
224
+				q.pids = append(q.pids, p.pid)
225
+				monitored = true
226
+			}
227
+		}
228
+		if monitored {
229
+			stats[p.pid] = &cpuUtil{}
230
+		}
231
+	}
232
+
233
+	if log.CheckLogLevel(log.Trace) {
234
+		for _, q := range queries {
235
+			p.Tracef("%s() name:%s user:%s cmdline:%s pids:%v", log.Caller(), q.name, q.user, q.cmdline, q.pids)
236
+		}
237
+	}
238
+
239
+	now := time.Now()
240
+	for pid, stat := range stats {
241
+		p.getProcCpuUtil(pid, stat)
242
+		if stat.err != nil {
243
+			p.Debugf("cannot get process %d CPU utilisation statistics: %s", pid, stat.err)
244
+		}
245
+	}
246
+
247
+	// gather process utilization for queries
248
+	for _, q := range queries {
249
+		for _, pid := range q.pids {
250
+			var stat, last *cpuUtil
251
+			var ok bool
252
+			if stat, ok = stats[pid]; !ok || stat.err != nil {
253
+				continue
254
+			}
255
+			if last, ok = p.stats[pid]; !ok || stat.err != nil {
256
+				continue
257
+			}
258
+			if stat.started == last.started {
259
+				q.utime += stat.utime - last.utime
260
+				q.stime += stat.stime - last.stime
261
+			}
262
+		}
263
+	}
264
+
265
+	p.stats = stats
266
+
267
+	// update statistics
268
+	p.Tracef("%s() update statistics", log.Caller())
269
+	p.mutex.Lock()
270
+	for _, q := range queries {
271
+		if stat, ok := p.queries[q.procQuery]; ok {
272
+			if stat.scanid != p.scanid {
273
+				continue
274
+			}
275
+			var last *cpuUtilData
276
+			if stat.tail != stat.head {
277
+				last = &stat.history[stat.tail.dec()]
278
+			}
279
+			slot := &stat.history[stat.tail]
280
+			slot.utime = q.utime
281
+			slot.stime = q.stime
282
+			slot.timestamp = now
283
+			if last != nil {
284
+				slot.utime += last.utime
285
+				slot.stime += last.stime
286
+			}
287
+			stat.tail = stat.tail.inc()
288
+			if stat.tail == stat.head {
289
+				stat.head = stat.head.inc()
290
+			}
291
+		}
292
+	}
293
+	p.mutex.Unlock()
294
+
295
+	return nil
296
+}
297
+
298
+func (p *Plugin) Period() int {
299
+	return 1
300
+}
301
+
302
+const (
303
+	timeUser = 1 << iota
304
+	timeSystem
305
+	timeTotal = timeUser | timeSystem
306
+)
307
+
308
+// Export -
309
+func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error) {
310
+	if ctx == nil {
311
+		return nil, errors.New("This item is available only in daemon mode.")
312
+	}
313
+
314
+	var name, user, cmdline, mode, utiltype string
315
+	switch len(params) {
316
+	case 5:
317
+		mode = params[4]
318
+		fallthrough
319
+	case 4:
320
+		cmdline = params[3]
321
+		fallthrough
322
+	case 3:
323
+		utiltype = params[2]
324
+		fallthrough
325
+	case 2:
326
+		user = params[1]
327
+		fallthrough
328
+	case 1:
329
+		name = params[0]
330
+	case 0:
331
+	default:
332
+		return nil, errors.New("Too many parameters.")
333
+	}
334
+
335
+	var utilrange historyIndex
336
+	switch mode {
337
+	case "avg1", "":
338
+		utilrange = 60
339
+	case "avg5":
340
+		utilrange = 300
341
+	case "avg15":
342
+		utilrange = 900
343
+	default:
344
+		return nil, errors.New("Invalid fifth parameter.")
345
+	}
346
+
347
+	var typeflags uint
348
+	switch utiltype {
349
+	case "total", "":
350
+		typeflags |= timeTotal
351
+	case "user":
352
+		typeflags |= timeUser
353
+	case "system":
354
+		typeflags |= timeSystem
355
+	default:
356
+		return nil, errors.New("Invalid third parameter.")
357
+	}
358
+
359
+	now := time.Now()
360
+	query := procQuery{name: name, user: user, cmdline: cmdline}
361
+	p.mutex.Lock()
362
+	defer p.mutex.Unlock()
363
+	if stats, ok := p.queries[query]; ok {
364
+		stats.accessed = now
365
+		if stats.err != nil {
366
+			p.Debugf("CPU utilisation gathering error %s", err)
367
+			return nil, stats.err
368
+		}
369
+		if stats.tail == stats.head {
370
+			return
371
+		}
372
+		totalnum := stats.tail - stats.head
373
+		if totalnum < 0 {
374
+			totalnum += maxHistory
375
+		}
376
+		if totalnum < 2 {
377
+			return
378
+		}
379
+		if totalnum < utilrange {
380
+			utilrange = totalnum
381
+		}
382
+		tail := &stats.history[stats.tail.dec()]
383
+		head := &stats.history[stats.tail.sub(utilrange)]
384
+
385
+		var ticks uint64
386
+		if typeflags&timeUser != 0 {
387
+			ticks += tail.utime - head.utime
388
+		}
389
+		if typeflags&timeSystem != 0 {
390
+			ticks += tail.stime - head.stime
391
+		}
392
+		/* 1e9 (nanoseconds) * 1e2 (percent) * 1e1 (one digit decimal place) */
393
+		ticks *= 1e12
394
+		ticks /= uint64(tail.timestamp.Sub(head.timestamp))
395
+
396
+		return math.Round(float64(ticks)/float64(C.sysconf(C._SC_CLK_TCK))) / 10, nil
397
+	}
398
+	stats := &cpuUtilStats{accessed: now, history: make([]cpuUtilData, maxHistory)}
399
+	if cmdline != "" {
400
+		stats.cmdlinePattern, err = regexp.Compile(cmdline)
401
+	}
402
+	if err == nil {
403
+		p.queries[query] = stats
404
+		p.Debugf("registered new CPU utilisation query: %s, %s, %s", name, user, cmdline)
405
+	} else {
406
+		p.Debugf("cannot register CPU utilisation query: %s", err)
407
+	}
408
+	return
409
+}
410
+
411
+func init() {
412
+	plugin.RegisterMetrics(&impl, "Proc", "proc.cpu.util", "Process CPU utilisation percentage.")
413
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_procfs__freebsd.go (+196 lines)
Added Link Here
1
--- src/go/plugins/proc/procfs_freebsd.go.orig	2020-05-20 10:37:05 UTC
2
+++ src/go/plugins/proc/procfs_freebsd.go
3
@@ -0,0 +1,193 @@
4
+// +build freebsd
5
+
6
+/*
7
+** Zabbix
8
+** Copyright (C) 2001-2020 Zabbix SIA
9
+**
10
+** This program is free software; you can redistribute it and/or modify
11
+** it under the terms of the GNU General Public License as published by
12
+** the Free Software Foundation; either version 2 of the License, or
13
+** (at your option) any later version.
14
+**
15
+** This program is distributed in the hope that it will be useful,
16
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+** GNU General Public License for more details.
19
+**
20
+** You should have received a copy of the GNU General Public License
21
+** along with this program; if not, write to the Free Software
22
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
23
+**/
24
+
25
+package proc
26
+
27
+import (
28
+	"bytes"
29
+	"fmt"
30
+	"io"
31
+	"os"
32
+	"strconv"
33
+	"syscall"
34
+)
35
+
36
+func read2k(filename string) (data []byte, err error) {
37
+	fd, err := syscall.Open(filename, syscall.O_RDONLY, 0)
38
+	if err != nil {
39
+		return
40
+	}
41
+	var n int
42
+	b := make([]byte, 2048)
43
+	if n, err = syscall.Read(fd, b); err == nil {
44
+		data = b[:n]
45
+	}
46
+	syscall.Close(fd)
47
+	return
48
+}
49
+
50
+func readAll(filename string) (data []byte, err error) {
51
+	fd, err := syscall.Open(filename, syscall.O_RDONLY, 0)
52
+	if err != nil {
53
+		return
54
+	}
55
+	defer syscall.Close(fd)
56
+	var buf bytes.Buffer
57
+	b := make([]byte, 2048)
58
+	for {
59
+		var n int
60
+		if n, err = syscall.Read(fd, b); err != nil {
61
+			return
62
+		}
63
+		if n == 0 {
64
+			return buf.Bytes(), nil
65
+		}
66
+		if _, err = buf.Write(b[:n]); err != nil {
67
+			return
68
+		}
69
+	}
70
+}
71
+
72
+func (p *Plugin) getProcessName(pid string) (name string, err error) {
73
+	var data []byte
74
+	if data, err = read2k("/compat/linux/proc/" + pid + "/stat"); err != nil {
75
+		return
76
+	}
77
+	var left, right int
78
+	if right = bytes.LastIndexByte(data, ')'); right == -1 {
79
+		return "", fmt.Errorf("cannot find process name ending position in /compat/linux/proc/%s/stat", pid)
80
+	}
81
+	if left = bytes.IndexByte(data[:right], '('); left == -1 {
82
+		return "", fmt.Errorf("cannot find process name starting position in /compat/linux/proc/%s/stat", pid)
83
+	}
84
+	return string(data[left+1 : right]), nil
85
+}
86
+
87
+func (p *Plugin) getProcessUserID(pid string) (userid int64, err error) {
88
+	var fi os.FileInfo
89
+	if fi, err = os.Stat("/compat/linux/proc/" + pid); err != nil {
90
+		return
91
+	}
92
+	return int64(fi.Sys().(*syscall.Stat_t).Uid), nil
93
+}
94
+
95
+func (p *Plugin) getProcessCmdline(pid string, flags int) (arg0 string, cmdline string, err error) {
96
+	var data []byte
97
+	if data, err = readAll("/compat/linux/proc/" + pid + "/cmdline"); err != nil {
98
+		return
99
+	}
100
+
101
+	if flags&procInfoName != 0 {
102
+		if end := bytes.IndexByte(data, 0); end != -1 {
103
+			if pos := bytes.LastIndexByte(data[:end], '/'); pos != -1 {
104
+				arg0 = string(data[pos+1 : end])
105
+			} else {
106
+				arg0 = string(data[:end])
107
+			}
108
+		} else {
109
+			arg0 = string(data)
110
+		}
111
+	}
112
+
113
+	for i := 0; i < len(data); i++ {
114
+		if data[i] == 0 {
115
+			data[i] = ' '
116
+		}
117
+	}
118
+
119
+	if len(data) != 0 && data[len(data)-1] == ' ' {
120
+		data = data[:len(data)-1]
121
+	}
122
+
123
+	return arg0, string(data), nil
124
+}
125
+
126
+func (p *Plugin) getProcCpuUtil(pid int64, stat *cpuUtil) {
127
+	var data []byte
128
+	if data, stat.err = read2k(fmt.Sprintf("/compat/linux/proc/%d/stat", pid)); stat.err != nil {
129
+		return
130
+	}
131
+	var pos int
132
+	if pos = bytes.LastIndexByte(data, ')'); pos == -1 || len(data[pos:]) < 2 {
133
+		stat.err = fmt.Errorf("cannot find CPU statistic starting position in /compat/linux/proc/%d/stat", pid)
134
+		return
135
+	}
136
+	stats := bytes.Split(data[pos+2:], []byte{' '})
137
+	if len(stats) < 20 {
138
+		stat.err = fmt.Errorf("cannot parse CPU statistics in /compat/linux/proc/%d/stat", pid)
139
+		return
140
+	}
141
+	if stat.utime, stat.err = strconv.ParseUint(string(stats[11]), 10, 64); stat.err != nil {
142
+		return
143
+	}
144
+	if stat.stime, stat.err = strconv.ParseUint(string(stats[12]), 10, 64); stat.err != nil {
145
+		return
146
+	}
147
+	if stat.started, stat.err = strconv.ParseUint(string(stats[19]), 10, 64); stat.err != nil {
148
+		return
149
+	}
150
+}
151
+
152
+func (p *Plugin) getProcesses(flags int) (processes []*procInfo, err error) {
153
+	var entries []os.FileInfo
154
+	f, err := os.Open("/compat/linux/proc")
155
+	if err != nil {
156
+		return nil, err
157
+	}
158
+	defer f.Close()
159
+
160
+	for entries, err = f.Readdir(1); err != io.EOF; entries, err = f.Readdir(1) {
161
+		if err != nil {
162
+			return nil, err
163
+		}
164
+
165
+		if !entries[0].IsDir() {
166
+			continue
167
+		}
168
+		var pid int64
169
+		var tmperr error
170
+		if pid, tmperr = strconv.ParseInt(entries[0].Name(), 10, 64); tmperr != nil {
171
+			continue
172
+		}
173
+		info := &procInfo{pid: pid}
174
+		if flags&procInfoName != 0 {
175
+			if info.name, tmperr = p.getProcessName(entries[0].Name()); tmperr != nil {
176
+				p.Debugf("cannot get process %s name: %s", entries[0].Name(), tmperr)
177
+				continue
178
+			}
179
+		}
180
+		if flags&procInfoUser != 0 {
181
+			if info.userid, tmperr = p.getProcessUserID(entries[0].Name()); tmperr != nil {
182
+				p.Debugf("cannot get process %s user id: %s", entries[0].Name(), tmperr)
183
+				continue
184
+			}
185
+		}
186
+		if flags&procInfoCmdline != 0 {
187
+			if info.arg0, info.cmdline, tmperr = p.getProcessCmdline(entries[0].Name(), flags); tmperr != nil {
188
+				p.Debugf("cannot get process %s command line: %s", entries[0].Name(), tmperr)
189
+				continue
190
+			}
191
+		}
192
+		processes = append(processes, info)
193
+	}
194
+
195
+	return processes, nil
196
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpu__freebsd.go (+152 lines)
Added Link Here
1
--- src/go/plugins/system/cpu/cpu_freebsd.go.orig	2020-05-20 10:00:53 UTC
2
+++ src/go/plugins/system/cpu/cpu_freebsd.go
3
@@ -0,0 +1,149 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package cpu
24
+
25
+/*
26
+#include <unistd.h>
27
+*/
28
+import "C"
29
+
30
+import (
31
+	"bufio"
32
+	"bytes"
33
+	"os"
34
+	"strconv"
35
+	"strings"
36
+
37
+	"zabbix.com/pkg/plugin"
38
+)
39
+
40
+// Plugin -
41
+type Plugin struct {
42
+	plugin.Base
43
+	cpus []*cpuUnit
44
+}
45
+
46
+const (
47
+	procStatLocation = "/compat/linux/proc/stat"
48
+)
49
+
50
+func (p *Plugin) getCpuLoad(params []string) (result interface{}, err error) {
51
+	return nil, plugin.UnsupportedMetricError
52
+}
53
+
54
+func (p *Plugin) Collect() (err error) {
55
+	var file *os.File
56
+	if file, err = os.Open(procStatLocation); err != nil {
57
+		return err
58
+	}
59
+	defer file.Close()
60
+
61
+	var buf bytes.Buffer
62
+	if _, err = buf.ReadFrom(file); err != nil {
63
+		return
64
+	}
65
+
66
+	for _, cpu := range p.cpus {
67
+		cpu.status = cpuStatusOffline
68
+	}
69
+
70
+	scanner := bufio.NewScanner(&buf)
71
+	for scanner.Scan() {
72
+		line := scanner.Text()
73
+		if !strings.HasPrefix(line, "cpu") {
74
+			continue
75
+		}
76
+		fields := strings.Fields(line)
77
+		var index, status int
78
+		if len(fields[0]) > 3 {
79
+			var i int64
80
+			if i, err = strconv.ParseInt(fields[0][3:], 10, 32); err != nil {
81
+				return
82
+			}
83
+			if index = int(i); index < 0 || index+1 >= len(p.cpus) {
84
+				p.Debugf("invalid CPU index %d", index)
85
+				continue
86
+			}
87
+
88
+			status = cpuStatusOnline
89
+		} else {
90
+			index = -1
91
+		}
92
+
93
+		cpu := p.cpus[index+1]
94
+		cpu.status = status
95
+
96
+		slot := &cpu.history[cpu.tail]
97
+		num := len(slot.counters)
98
+		if num > len(fields)-1 {
99
+			num = len(fields) - 1
100
+		}
101
+		for i := 0; i < num; i++ {
102
+			slot.counters[i], _ = strconv.ParseUint(fields[i+1], 10, 64)
103
+		}
104
+		for i := num; i < len(slot.counters); i++ {
105
+			slot.counters[i] = 0
106
+		}
107
+		// Linux includes guest times in user and nice times
108
+		slot.counters[counterUser] -= slot.counters[counterGcpu]
109
+		slot.counters[counterNice] -= slot.counters[counterGnice]
110
+
111
+		if cpu.tail = cpu.tail.inc(); cpu.tail == cpu.head {
112
+			cpu.head = cpu.head.inc()
113
+		}
114
+	}
115
+	return nil
116
+}
117
+
118
+func numCPU() int {
119
+	return int(C.sysconf(C._SC_NPROCESSORS_CONF))
120
+}
121
+
122
+func (p *Plugin) Start() {
123
+	p.cpus = p.newCpus(numCPU())
124
+}
125
+
126
+func (p *Plugin) Stop() {
127
+	p.cpus = nil
128
+}
129
+
130
+func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error) {
131
+	if p.cpus == nil || p.cpus[0].head == p.cpus[0].tail {
132
+		// no data gathered yet
133
+		return
134
+	}
135
+	switch key {
136
+	case "system.cpu.discovery":
137
+		return p.getCpuDiscovery(params)
138
+	case "system.cpu.num":
139
+		return p.getCpuNum(params)
140
+	case "system.cpu.util":
141
+		return p.getCpuUtil(params)
142
+	default:
143
+		return nil, plugin.UnsupportedMetricError
144
+	}
145
+}
146
+
147
+func init() {
148
+	plugin.RegisterMetrics(&impl, pluginName,
149
+		"system.cpu.discovery", "List of detected CPUs/CPU cores, used for low-level discovery.",
150
+		"system.cpu.num", "Number of CPUs.",
151
+		"system.cpu.util", "CPU utilisation percentage.")
152
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpucounters__freebsd.go (+104 lines)
Added Link Here
1
--- src/go/plugins/system/cpu/cpucounters_freebsd.go.orig	2020-05-20 10:07:01 UTC
2
+++ src/go/plugins/system/cpu/cpucounters_freebsd.go
3
@@ -0,0 +1,101 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2019 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package cpu
24
+
25
+const (
26
+	counterUnknown cpuCounter = iota - 1
27
+	counterUser
28
+	counterNice
29
+	counterSystem
30
+	counterIdle
31
+	counterIowait
32
+	counterIrq
33
+	counterSoftirq
34
+	counterSteal
35
+	counterGcpu
36
+	counterGnice
37
+	counterNum // number of cpu counters
38
+)
39
+
40
+type cpuCounters struct {
41
+	counters [counterNum]uint64
42
+}
43
+
44
+func counterByType(name string) (counter cpuCounter) {
45
+	switch name {
46
+	case "", "user":
47
+		return counterUser
48
+	case "idle":
49
+		return counterIdle
50
+	case "nice":
51
+		return counterNice
52
+	case "system":
53
+		return counterSystem
54
+	case "iowait":
55
+		return counterIowait
56
+	case "interrupt":
57
+		return counterIrq
58
+	case "softirq":
59
+		return counterSoftirq
60
+	case "steal":
61
+		return counterSteal
62
+	case "guest":
63
+		return counterGcpu
64
+	case "guest_nice":
65
+		return counterGnice
66
+	default:
67
+		return counterUnknown
68
+	}
69
+}
70
+
71
+func (c *cpuUnit) counterAverage(counter cpuCounter, period historyIndex) (result interface{}) {
72
+	if c.head == c.tail {
73
+		return
74
+	}
75
+	var tail, head *cpuCounters
76
+	totalnum := c.tail - c.head
77
+	if totalnum < 0 {
78
+		totalnum += maxHistory
79
+	}
80
+	if totalnum < 2 {
81
+		// need at least two samples to calculate utilization
82
+		return
83
+	}
84
+	if totalnum-1 < period {
85
+		period = totalnum - 1
86
+	}
87
+	tail = &c.history[c.tail.dec()]
88
+	head = &c.history[c.tail.sub(period+1)]
89
+
90
+	var value, total uint64
91
+	for i := 0; i < len(tail.counters); i++ {
92
+		if tail.counters[i] > head.counters[i] {
93
+			total += tail.counters[i] - head.counters[i]
94
+		}
95
+	}
96
+	if total == 0 {
97
+		return
98
+	}
99
+
100
+	if tail.counters[counter] > head.counters[counter] {
101
+		value = tail.counters[counter] - head.counters[counter]
102
+	}
103
+	return float64(value) * 100 / float64(total)
104
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uname_uname__freebsd.go (+86 lines)
Added Link Here
1
--- src/go/plugins/system/uname/uname_freebsd.go.orig	2020-05-23 18:02:49 UTC
2
+++ src/go/plugins/system/uname/uname_freebsd.go
3
@@ -0,0 +1,83 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package uname
24
+
25
+import (
26
+	"errors"
27
+	"fmt"
28
+
29
+	"golang.org/x/sys/unix"
30
+)
31
+
32
+func arrayToString(unameArray *[256]byte) string {
33
+	var byteString [256]byte
34
+	var indexLength int
35
+	for ; indexLength < len(unameArray); indexLength++ {
36
+		if 0 == unameArray[indexLength] {
37
+			break
38
+		}
39
+		byteString[indexLength] = uint8(unameArray[indexLength])
40
+	}
41
+	return string(byteString[:indexLength])
42
+}
43
+
44
+func getUname(params []string) (uname string, err error) {
45
+	if len(params) > 0 {
46
+		return "", errors.New("Too many parameters.")
47
+	}
48
+
49
+	var utsname unix.Utsname
50
+	if err = unix.Uname(&utsname); err != nil {
51
+		err = fmt.Errorf("Cannot obtain system information: %s", err.Error())
52
+		return
53
+	}
54
+	uname = fmt.Sprintf("%s %s %s %s %s", arrayToString(&utsname.Sysname), arrayToString(&utsname.Nodename),
55
+		arrayToString(&utsname.Release), arrayToString(&utsname.Version), arrayToString(&utsname.Machine))
56
+
57
+	return uname, nil
58
+}
59
+
60
+func getHostname(params []string) (hostname string, err error) {
61
+	if len(params) > 0 {
62
+		return "", errors.New("Too many parameters.")
63
+	}
64
+
65
+	var utsname unix.Utsname
66
+	if err = unix.Uname(&utsname); err != nil {
67
+		err = fmt.Errorf("Cannot obtain system information: %s", err.Error())
68
+		return
69
+	}
70
+
71
+	return arrayToString(&utsname.Nodename), nil
72
+}
73
+
74
+func getSwArch(params []string) (uname string, err error) {
75
+	if len(params) > 0 {
76
+		return "", errors.New("Too many parameters.")
77
+	}
78
+
79
+	var utsname unix.Utsname
80
+	if err = unix.Uname(&utsname); err != nil {
81
+		err = fmt.Errorf("Cannot obtain system information: %s", err.Error())
82
+		return
83
+	}
84
+
85
+	return arrayToString(&utsname.Machine), nil
86
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uptime_uptime__freebsd.go (+43 lines)
Added Link Here
1
--- src/go/plugins/system/uptime/uptime_freebsd.go.orig	2020-05-23 17:58:34 UTC
2
+++ src/go/plugins/system/uptime/uptime_freebsd.go
3
@@ -0,0 +1,40 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package uptime
24
+
25
+import (
26
+	"fmt"
27
+	"time"
28
+	"unsafe"
29
+	"syscall"
30
+
31
+	"golang.org/x/sys/unix"
32
+)
33
+
34
+func getUptime() (uptime int, err error) {
35
+	buf, err := unix.SysctlRaw("kern.boottime")
36
+	if err != nil {
37
+		err = fmt.Errorf("Cannot read boot time from kern.boottime: %s", err.Error())
38
+	        return
39
+	}
40
+
41
+	tv := *(*syscall.Timeval)(unsafe.Pointer((&buf[0])))
42
+	return int((time.Now().Unix()) - tv.Sec), nil
43
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_vfs_dev_dev__freebsd.go (+266 lines)
Added Link Here
1
--- src/go/plugins/vfs/dev/dev_freebsd.go.orig	2020-05-23 18:20:58 UTC
2
+++ src/go/plugins/vfs/dev/dev_freebsd.go
3
@@ -0,0 +1,263 @@
4
+/*
5
+** Zabbix
6
+** Copyright (C) 2001-2020 Zabbix SIA
7
+**
8
+** This program is free software; you can redistribute it and/or modify
9
+** it under the terms of the GNU General Public License as published by
10
+** the Free Software Foundation; either version 2 of the License, or
11
+** (at your option) any later version.
12
+**
13
+** This program is distributed in the hope that it will be useful,
14
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+** GNU General Public License for more details.
17
+**
18
+** You should have received a copy of the GNU General Public License
19
+** along with this program; if not, write to the Free Software
20
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21
+**/
22
+
23
+package vfsdev
24
+
25
+import (
26
+	"bufio"
27
+	"bytes"
28
+	"encoding/json"
29
+	"errors"
30
+	"fmt"
31
+	"io/ioutil"
32
+	"math"
33
+	"os"
34
+	"strconv"
35
+	"strings"
36
+	"syscall"
37
+	"time"
38
+
39
+	"golang.org/x/sys/unix"
40
+)
41
+
42
+const (
43
+	devLocation       = "/dev/"
44
+	sysBlkdevLocation = "/sys/dev/block/"
45
+	devtypePrefix     = "DEVTYPE="
46
+	diskstatLocation  = "/proc/diskstats"
47
+)
48
+
49
+type devRecord struct {
50
+	Name string `json:"{#DEVNAME}"`
51
+	Type string `json:"{#DEVTYPE}"`
52
+}
53
+
54
+func (p *Plugin) getDiscovery() (out string, err error) {
55
+	var entries []os.FileInfo
56
+	if entries, err = ioutil.ReadDir(devLocation); err != nil {
57
+		return
58
+	}
59
+
60
+	var sysfs bool
61
+	if stat, tmperr := os.Stat(sysBlkdevLocation); tmperr == nil {
62
+		sysfs = stat.IsDir()
63
+	}
64
+
65
+	devs := make([]*devRecord, 0)
66
+	for _, entry := range entries {
67
+		if stat, tmperr := os.Stat(devLocation + entry.Name()); tmperr == nil {
68
+			if stat.Mode()&os.ModeType == os.ModeDevice {
69
+				dev := &devRecord{Name: entry.Name()}
70
+				if sysfs {
71
+					rdev := stat.Sys().(*syscall.Stat_t).Rdev
72
+					filename := fmt.Sprintf("%s%d:%d/uevent", sysBlkdevLocation, unix.Major(rdev), unix.Minor(rdev))
73
+					if file, tmperr := os.Open(filename); tmperr == nil {
74
+						scanner := bufio.NewScanner(file)
75
+						for scanner.Scan() {
76
+							if strings.HasPrefix(scanner.Text(), devtypePrefix) {
77
+								dev.Type = scanner.Text()[len(devtypePrefix):]
78
+							}
79
+						}
80
+						file.Close()
81
+					}
82
+				}
83
+				devs = append(devs, dev)
84
+			}
85
+		}
86
+	}
87
+	var b []byte
88
+	if b, err = json.Marshal(&devs); err != nil {
89
+		return
90
+	}
91
+	return string(b), nil
92
+}
93
+
94
+func (p *Plugin) getDeviceName(name string) (devName string, err error) {
95
+	if name == "" {
96
+		return "", nil
97
+	}
98
+	if !strings.HasPrefix(name, devLocation) {
99
+		name = devLocation + name
100
+	}
101
+	var stat os.FileInfo
102
+	if stat, err = os.Stat(name); err != nil {
103
+		return
104
+	}
105
+	var file *os.File
106
+	if file, err = os.Open(diskstatLocation); err != nil {
107
+		return
108
+	}
109
+	defer file.Close()
110
+
111
+	scanner := bufio.NewScanner(file)
112
+	for scanner.Scan() {
113
+		fields := strings.Fields(scanner.Text())
114
+		if len(fields) < 3 {
115
+			return "", fmt.Errorf("unexpected %s file format", diskstatLocation)
116
+		}
117
+		var major, minor uint64
118
+		if major, err = strconv.ParseUint(fields[0], 10, 32); err != nil {
119
+			return
120
+		}
121
+		if minor, err = strconv.ParseUint(fields[1], 10, 32); err != nil {
122
+			return
123
+		}
124
+		rdev := stat.Sys().(*syscall.Stat_t).Rdev
125
+		if uint64(unix.Major(rdev)) == major && uint64(unix.Minor(rdev)) == minor {
126
+			return fields[2], nil
127
+		}
128
+	}
129
+
130
+	return "nil", errors.New("no matching record found")
131
+}
132
+
133
+const (
134
+	diskstatMatchNone = iota
135
+	diskstatMatchMultiple
136
+	diskstatMatchSingle
137
+)
138
+
139
+func (p *Plugin) matchDiskstatFields(name string, rdev uint64, fields []string) (match int, err error) {
140
+	if name == "" {
141
+		return diskstatMatchMultiple, nil
142
+	}
143
+	if name == fields[2] {
144
+		return diskstatMatchSingle, nil
145
+	}
146
+	if rdev != math.MaxUint64 {
147
+		var major, minor uint64
148
+		if major, err = strconv.ParseUint(fields[0], 10, 32); err != nil {
149
+			return
150
+		}
151
+		if minor, err = strconv.ParseUint(fields[1], 10, 32); err != nil {
152
+			return
153
+		}
154
+		if uint64(unix.Major(rdev)) == major && uint64(unix.Minor(rdev)) == minor {
155
+			return diskstatMatchMultiple, nil
156
+		}
157
+	}
158
+	return diskstatMatchNone, nil
159
+}
160
+
161
+func (p *Plugin) scanDeviceStats(name string, buf *bytes.Buffer) (devstats *devStats, err error) {
162
+	rdev := uint64(math.MaxUint64)
163
+	if name != "" {
164
+		if !strings.HasPrefix(name, devLocation) {
165
+			name = devLocation + name
166
+		}
167
+		var stat os.FileInfo
168
+		if stat, err = os.Stat(name); err == nil {
169
+			rdev = stat.Sys().(*syscall.Stat_t).Rdev
170
+		}
171
+	}
172
+
173
+	var stats devStats
174
+	scanner := bufio.NewScanner(buf)
175
+	for scanner.Scan() {
176
+		fields := strings.Fields(scanner.Text())
177
+		if len(fields) < 7 {
178
+			return nil, fmt.Errorf("unexpected %s file format", diskstatLocation)
179
+		}
180
+		var match int
181
+		if match, err = p.matchDiskstatFields(name, rdev, fields); err != nil {
182
+			return
183
+		}
184
+		if match == diskstatMatchNone {
185
+			continue
186
+		}
187
+		if match == diskstatMatchSingle {
188
+			// 'reset' devstats, as it might contain some information from matching device numbers
189
+			var tmpstats devStats
190
+			devstats = &tmpstats
191
+		} else {
192
+			devstats = &stats
193
+		}
194
+		var rxop, rxsec, txop, txsec int
195
+		if len(fields) >= 14 {
196
+			rxop, rxsec, txop, txsec = 3, 5, 7, 9
197
+		} else {
198
+			rxop, rxsec, txop, txsec = 3, 4, 5, 6
199
+		}
200
+		var n uint64
201
+		if n, err = strconv.ParseUint(fields[rxop], 10, 64); err != nil {
202
+			return
203
+		}
204
+		devstats.rx.operations += n
205
+
206
+		if n, err = strconv.ParseUint(fields[rxsec], 10, 64); err != nil {
207
+			return
208
+		}
209
+		devstats.rx.sectors += n
210
+
211
+		if n, err = strconv.ParseUint(fields[txop], 10, 64); err != nil {
212
+			return
213
+		}
214
+		devstats.tx.operations += n
215
+
216
+		if n, err = strconv.ParseUint(fields[txsec], 10, 64); err != nil {
217
+			return
218
+		}
219
+		devstats.tx.sectors += n
220
+
221
+		if match == diskstatMatchSingle {
222
+			return
223
+		}
224
+	}
225
+	return
226
+}
227
+
228
+func (p *Plugin) getDeviceStats(name string) (stats *devStats, err error) {
229
+	var file *os.File
230
+	if file, err = os.Open(diskstatLocation); err != nil {
231
+		return
232
+	}
233
+	var buf bytes.Buffer
234
+	_, err = buf.ReadFrom(file)
235
+	file.Close()
236
+	if err != nil {
237
+		return
238
+	}
239
+	return p.scanDeviceStats(name, &buf)
240
+}
241
+
242
+func (p *Plugin) collectDeviceStats(devices map[string]*devUnit) (err error) {
243
+	var file *os.File
244
+	if file, err = os.Open(diskstatLocation); err != nil {
245
+		return
246
+	}
247
+
248
+	var buf bytes.Buffer
249
+	_, err = buf.ReadFrom(file)
250
+	file.Close()
251
+	if err != nil {
252
+		return
253
+	}
254
+	now := time.Now()
255
+
256
+	for _, dev := range devices {
257
+		if stats, tmperr := p.getDeviceStats(dev.name); tmperr == nil && stats != nil {
258
+			stats.clock = now.UnixNano()
259
+			dev.history[dev.tail] = *stats
260
+			if dev.tail = dev.tail.inc(); dev.tail == dev.head {
261
+				dev.head = dev.head.inc()
262
+			}
263
+		}
264
+	}
265
+	return
266
+}
(-)b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_vfs_file_time__nix.go (+24 lines)
Added Link Here
1
--- src/go/plugins/vfs/file/time_nix.go.orig	2020-05-23 18:37:31 UTC
2
+++ src/go/plugins/vfs/file/time_nix.go
3
@@ -24,7 +24,8 @@ package file
4
 import (
5
 	"errors"
6
 	"fmt"
7
-	"syscall"
8
+
9
+	"golang.org/x/sys/unix"
10
 )
11
 
12
 // Export -
13
@@ -41,9 +42,9 @@ func (p *Plugin) exportTime(params []string) (result i
14
 		if len(params) == 1 || params[1] == "" || params[1] == "modify" {
15
 			return f.ModTime().Unix(), nil
16
 		} else if params[1] == "access" {
17
-			return f.Sys().(*syscall.Stat_t).Atim.Sec, nil
18
+			return f.Sys().(*unix.Stat_t).Atim.Sec, nil
19
 		} else if params[1] == "change" {
20
-			return f.Sys().(*syscall.Stat_t).Ctim.Sec, nil
21
+			return f.Sys().(*unix.Stat_t).Ctim.Sec, nil
22
 		} else {
23
 			return nil, errors.New("Invalid second parameter.")
24
 		}
(-)b/net-mgmt/zabbix5-server/files/mock_server.in (+65 lines)
Added Link Here
1
#!/bin/sh
2
3
# PROVIDE: mock_server
4
# REQUIRE: DAEMON
5
# KEYWORD: shutdown
6
#
7
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
8
# enable mock_server:
9
#
10
# mock_server_enable (bool): Set to NO by default.  Set it to YES to
11
#         enable mock_server.
12
# mock_server_config (string): Set to the standard config file path by
13
#         default.
14
# mock_server_pidfile (string): Location of the zabbix_agent pid file
15
#                               Default is /var/run/zabbix/mock_server.pid
16
# mock_server_paths (string): Set to standard path by default.  Set a search
17
#         if you have custom userparams that need binaries elsewhere.
18
#
19
20
. /etc/rc.subr
21
22
name="mock_server"
23
rcvar=mock_server_enable
24
25
load_rc_config $name
26
27
: ${mock_server_enable:=NO}
28
: ${mock_server_config:=%%ETCDIR%%/${name}.conf}
29
: ${mock_server_pidfile:=/var/run/zabbix/mock_server.pid}
30
: ${mock_server_paths:=$PATH}
31
32
command="%%PREFIX%%/bin/${name}"
33
required_files="${mock_server_config}"
34
35
start_cmd=mock_server_cmd
36
start_precmd=mock_server_precmd 
37
status_precmd=mock_server_precmd
38
stop_precmd=mock_server_precmd
39
40
mock_server_precmd()
41
{
42
	if get_pidfile_from_conf PidFile ${mock_server_config}; then
43
		pidfile="$_pidfile_from_conf"
44
	else
45
		pidfile=${mock_server_pidfile}
46
		local rundir=${mock_server_pidfile%/*}
47
		if [ ! -d $rundir ] ; then
48
			install -d -m 0755 -o zabbix -g zabbix $rundir
49
		fi
50
	fi
51
52
	# This shouldn't be necessary with pidfile, but empirically it was the
53
	# only way to reap the parent PID instead of all PIDs from
54
	# check_process, which may leak SysV IPC objects and prevent restart
55
	# and/or race condition on restart.
56
	rc_pid=$(check_pidfile ${pidfile} ${command})
57
}
58
59
mock_server_cmd()
60
{
61
	PATH=$mock_server_paths /usr/sbin/daemon -c -f -S -t "${name}" \
62
		-p $mock_server_pidfile $command -c $mock_server_config
63
}
64
65
run_rc_command "$1"
(-)b/net-mgmt/zabbix5-server/files/pkg-message.in (+45 lines)
Added Link Here
1
[
2
{ type: install
3
  message: <<EOM
4
For Zabbix server and proxy daemons, as well as Zabbix frontend, a database is
5
required. It is not needed to run Zabbix agent.
6
7
% cd %%DATADIR%%/%%ZABBIX_BUILD%%/database
8
9
And follow the instructions:
10
https://www.zabbix.com/documentation/5.0/manual/appendix/install/db_scripts
11
12
Upgrade notes for 5.0.0:
13
https://www.zabbix.com/documentation/5.0/manual/installation/upgrade_notes_500
14
15
Upgrade procedure:
16
https://www.zabbix.com/documentation/5.0/manual/installation/upgrade/sources
17
18
Please see https://www.zabbix.com/ for detailed information about Zabbix.
19
20
Official Zabbix documentation:
21
https://www.zabbix.com/documentation/5.0/start
22
23
For Zabbix frontend "Welcome" screen. Enter the user name Admin with password
24
zabbix to log in as a Zabbix superuser.
25
26
For use NMAP please edit sudoers
27
28
This is a Zabbix Standard release!
29
30
Standard Zabbix releases are supported for Zabbix customers during six (6)
31
months of Full Support (general, critical and security issues) until the next
32
Zabbix stable release, plus one (1) additional month of Limited Support
33
(critical and security issues only). Zabbix Standard version release will result
34
in change of the second version number.
35
36
Stable release:         Zabbix 5.0
37
Release date:           May 12, 2020
38
End of Full Support:    May 31, 2023
39
End of Limited Support: May 31, 2025
40
41
Zabbix Life Cycle & Release Policy:
42
https://www.zabbix.com/life_cycle_and_release_policy
43
EOM
44
}
45
]
(-)b/net-mgmt/zabbix5-server/files/zabbix_agent2.in (+65 lines)
Added Link Here
1
#!/bin/sh
2
3
# PROVIDE: zabbix_agent2
4
# REQUIRE: DAEMON
5
# KEYWORD: shutdown
6
#
7
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
8
# enable zabbix_agent2:
9
#
10
# zabbix_agent2_enable (bool): Set to NO by default.  Set it to YES to
11
#         enable zabbix_agent2.
12
# zabbix_agent2_config (string): Set to the standard config file path by
13
#         default.
14
# zabbix_agent2_pidfile (string): Location of the zabbix_agent pid file
15
#                               Default is /var/run/zabbix/zabbix_agent2.pid
16
# zabbix_agent2_paths (string): Set to standard path by default.  Set a search
17
#         if you have custom userparams that need binaries elsewhere.
18
#
19
20
. /etc/rc.subr
21
22
name="zabbix_agent2"
23
rcvar=zabbix_agent2_enable
24
25
load_rc_config $name
26
27
: ${zabbix_agent2_enable:=NO}
28
: ${zabbix_agent2_config:=%%ETCDIR%%/${name}.conf}
29
: ${zabbix_agent2_pidfile:=/var/run/zabbix/zabbix_agent2.pid}
30
: ${zabbix_agent2_paths:=$PATH}
31
32
command="%%PREFIX%%/sbin/${name}"
33
required_files="${zabbix_agent2_config}"
34
35
start_cmd=zabbix_agent2_cmd
36
start_precmd=zabbix_agent2_precmd 
37
status_precmd=zabbix_agent2_precmd
38
stop_precmd=zabbix_agent2_precmd
39
40
zabbix_agent2_precmd()
41
{
42
	if get_pidfile_from_conf PidFile ${zabbix_agent2_config}; then
43
		pidfile="$_pidfile_from_conf"
44
	else
45
		pidfile=${zabbix_agent2_pidfile}
46
		local rundir=${zabbix_agent2_pidfile%/*}
47
		if [ ! -d $rundir ] ; then
48
			install -d -m 0755 -o zabbix -g zabbix $rundir
49
		fi
50
	fi
51
52
	# This shouldn't be necessary with pidfile, but empirically it was the
53
	# only way to reap the parent PID instead of all PIDs from
54
	# check_process, which may leak SysV IPC objects and prevent restart
55
	# and/or race condition on restart.
56
	rc_pid=$(check_pidfile ${pidfile} ${command})
57
}
58
59
zabbix_agent2_cmd()
60
{
61
	PATH=$zabbix_agent2_paths /usr/sbin/daemon -c -f -S -t "${name}" \
62
		$command -c $zabbix_agent2_config
63
}
64
65
run_rc_command "$1"
(-)b/net-mgmt/zabbix5-server/files/zabbix_agentd.in (+64 lines)
Added Link Here
1
#!/bin/sh
2
3
# PROVIDE: zabbix_agentd
4
# REQUIRE: DAEMON
5
# KEYWORD: shutdown
6
#
7
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
8
# enable zabbix_agentd:
9
#
10
# zabbix_agentd_enable (bool): Set to NO by default.  Set it to YES to
11
#         enable zabbix_agentd.
12
# zabbix_agentd_config (string): Set to the standard config file path by
13
#         default.
14
# zabbix_agentd_pidfile (string): Location of the zabbix_agent pid file
15
#                               Default is /var/run/zabbix/zabbix_agentd.pid
16
# zabbix_agentd_paths (string): Set to standard path by default.  Set a search
17
#         if you have custom userparams that need binaries elsewhere.
18
#
19
20
. /etc/rc.subr
21
22
name="zabbix_agentd"
23
rcvar=zabbix_agentd_enable
24
25
load_rc_config $name
26
27
: ${zabbix_agentd_enable:=NO}
28
: ${zabbix_agentd_config:=%%ETCDIR%%/${name}.conf}
29
: ${zabbix_agentd_pidfile:=/var/run/zabbix/zabbix_agentd.pid}
30
: ${zabbix_agentd_paths:=$PATH}
31
32
command="%%PREFIX%%/sbin/${name}"
33
required_files="${zabbix_agentd_config}"
34
35
start_cmd=zabbix_agentd_cmd
36
start_precmd=zabbix_agentd_precmd 
37
status_precmd=zabbix_agentd_precmd
38
stop_precmd=zabbix_agentd_precmd
39
40
zabbix_agentd_precmd()
41
{
42
	if get_pidfile_from_conf PidFile ${zabbix_agentd_config}; then
43
		pidfile="$_pidfile_from_conf"
44
	else
45
		pidfile=${zabbix_agentd_pidfile}
46
		local rundir=${zabbix_agentd_pidfile%/*}
47
		if [ ! -d $rundir ] ; then
48
			install -d -m 0755 -o zabbix -g zabbix $rundir
49
		fi
50
	fi
51
52
	# This shouldn't be necessary with pidfile, but empirically it was the
53
	# only way to reap the parent PID instead of all PIDs from
54
	# check_process, which may leak SysV IPC objects and prevent restart
55
	# and/or race condition on restart.
56
	rc_pid=$(check_pidfile ${pidfile} ${command})
57
}
58
59
zabbix_agentd_cmd()
60
{
61
	PATH=$zabbix_agentd_paths $command -c $zabbix_agentd_config
62
}
63
64
run_rc_command "$1"
(-)b/net-mgmt/zabbix5-server/files/zabbix_java.in (+27 lines)
Added Link Here
1
#!/bin/sh
2
3
# PROVIDE: zabbix_java
4
# REQUIRE: NETWORKING SERVERS
5
# BEFORE: DAEMON
6
# KEYWORD: shutdown
7
#
8
# Options to configure zabbix_java via /etc/rc.conf:
9
#
10
# zabbix_java_enable (bool):
11
#   Enable service on boot.
12
#   Default: NO
13
#
14
15
. /etc/rc.subr
16
17
name="zabbix_java"
18
rcvar=zabbix_java_enable
19
20
load_rc_config $name
21
22
: ${zabbix_java_enable:=NO}
23
24
start_cmd="/usr/bin/su -m zabbix -c %%PREFIX%%/sbin/zabbix_java/startup.sh"
25
stop_cmd="/usr/bin/su -m zabbix -c %%PREFIX%%/sbin/zabbix_java/shutdown.sh"
26
27
run_rc_command "$1"
(-)b/net-mgmt/zabbix5-server/files/zabbix_proxy.in (+65 lines)
Added Link Here
1
#!/bin/sh
2
3
# PROVIDE: zabbix_proxy
4
# REQUIRE: DAEMON
5
%%PGSQL%%# REQUIRE: postgresql
6
%%MYSQL%%# REQUIRE: mysql
7
# KEYWORD: shutdown
8
#
9
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
10
# enable zabbix_proxy:
11
#
12
# zabbix_proxy_enable (bool): Set to NO by default.  Set it to YES to
13
#         enable zabbix_proxy.
14
# zabbix_proxy_config (string): Set to the standard config file path by
15
#         default.
16
# zabbix_proxy_pidfile (string):    Location of the zabbix_proxy pid file
17
#                               Default is /var/run/zabbix/zabbix_proxy.pid
18
# zabbix_proxy_paths (string): Set to standard path by default.  Set a search
19
#         if you have custom userparams that need binaries elsewhere.
20
#
21
22
. /etc/rc.subr
23
24
name="zabbix_proxy"
25
rcvar=zabbix_proxy_enable
26
27
load_rc_config $name
28
29
: ${zabbix_proxy_enable:=NO}
30
: ${zabbix_proxy_config:=%%ETCDIR%%/${name}.conf}
31
: ${zabbix_proxy_pidfile:=/var/run/zabbix/zabbix_proxy.pid}
32
33
command="%%PREFIX%%/sbin/${name}"
34
required_files="${zabbix_proxy_config}"
35
36
start_cmd=zabbix_proxy_cmd
37
start_precmd=zabbix_proxy_precmd 
38
status_precmd=zabbix_proxy_precmd
39
stop_precmd=zabbix_proxy_precmd
40
41
zabbix_proxy_precmd()
42
{
43
	if get_pidfile_from_conf PidFile ${zabbix_proxy_config}; then
44
		pidfile="$_pidfile_from_conf"
45
	else
46
		pidfile=${zabbix_proxy_pidfile}
47
		local rundir=${zabbix_proxy_pidfile%/*}
48
		if [ ! -d $rundir ] ; then
49
			install -d -m 0755 -o zabbix -g zabbix $rundir
50
		fi
51
	fi
52
53
	# This shouldn't be necessary with pidfile, but empirically it was the
54
	# only way to reap the parent PID instead of all PIDs from
55
	# check_process, which may leak SysV IPC objects and prevent restart
56
	# and/or race condition on restart.
57
	rc_pid=$(check_pidfile ${pidfile} ${command})
58
}
59
60
zabbix_proxy_cmd()
61
{
62
	PATH=$zabbix_proxy_paths $command -c $zabbix_proxy_config
63
}
64
65
run_rc_command "$1"
(-)b/net-mgmt/zabbix5-server/files/zabbix_server.in (+66 lines)
Added Link Here
1
#!/bin/sh
2
3
# PROVIDE: zabbix_server
4
# REQUIRE: DAEMON
5
%%PGSQL%%# REQUIRE: postgresql
6
%%MYSQL%%# REQUIRE: mysql
7
# KEYWORD: shutdown
8
#
9
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
10
# enable zabbix_server:
11
#
12
# zabbix_server_enable (bool): Set to NO by default.  Set it to YES to
13
#         enable zabbix_server.
14
# zabbix_server_config (string): Set to the standard config file path by
15
#         default.
16
# zabbix_server_pidfile (string):    Location of the zabbix_server pid file
17
#                               Default is /var/run/zabbix/zabbix_server.pid
18
# zabbix_server_paths (string): Set to standard path by default.  Set a search
19
#         if you have custom userparams that need binaries elsewhere.
20
#
21
22
. /etc/rc.subr
23
24
name="zabbix_server"
25
rcvar=zabbix_server_enable
26
27
load_rc_config $name
28
29
: ${zabbix_server_enable:=NO}
30
: ${zabbix_server_config:=%%ETCDIR%%/${name}.conf}
31
: ${zabbix_server_pidfile:=/var/run/zabbix/zabbix_server.pid}
32
: ${zabbix_server_paths:=$PATH}
33
34
command="%%PREFIX%%/sbin/${name}"
35
required_files="${zabbix_server_config}"
36
37
start_cmd=zabbix_server_cmd
38
start_precmd=zabbix_server_precmd 
39
status_precmd=zabbix_server_precmd
40
stop_precmd=zabbix_server_precmd
41
42
zabbix_server_precmd()
43
{
44
	if get_pidfile_from_conf PidFile ${zabbix_server_config}; then
45
		pidfile="$_pidfile_from_conf"
46
	else
47
		pidfile=${zabbix_server_pidfile}
48
		local rundir=${zabbix_server_pidfile%/*}
49
		if [ ! -d $rundir ] ; then
50
			install -d -m 0755 -o zabbix -g zabbix $rundir
51
		fi
52
	fi
53
54
	# This shouldn't be necessary with pidfile, but empirically it was the
55
	# only way to reap the parent PID instead of all PIDs from
56
	# check_process, which may leak SysV IPC objects and prevent restart
57
	# and/or race condition on restart.
58
	rc_pid=$(check_pidfile ${pidfile} ${command})
59
}
60
61
zabbix_server_cmd()
62
{
63
	PATH=$zabbix_server_paths $command -c $zabbix_server_config
64
}
65
66
run_rc_command "$1"
(-)b/net-mgmt/zabbix5-server/pkg-descr (+10 lines)
Added Link Here
1
Zabbix is an enterprise-class open source distributed monitoring solution.
2
3
Zabbix is software that monitors numerous parameters of a network and the
4
health and integrity of servers. Zabbix uses a flexible notification
5
mechanism that allows users to configure e-mail based alerts for virtually
6
any event. This allows a fast reaction to server problems. Zabbix offers
7
excellent reporting and data visualisation features based on the stored
8
data. This makes Zabbix ideal for capacity planning.
9
10
WWW: https://www.zabbix.com/
(-)b/net-mgmt/zabbix5-server/pkg-plist (+22 lines)
Added Link Here
1
bin/zabbix_js
2
%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/data.sql
3
%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/images.sql
4
%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/schema.sql
5
%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/data.sql
6
%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/images.sql
7
%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/schema.sql
8
%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/data.sql
9
%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/images.sql
10
%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/schema.sql
11
%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/timescaledb.sql
12
%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/data.sql
13
%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/images.sql
14
%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/schema.sql
15
%%ETCDIR%%/zabbix_%%ZABBIX_BUILD%%.conf.sample
16
%%PROXY%%@dir %%ETCDIR%%/zabbix_proxy.conf.d
17
%%SERVER%%@dir %%ETCDIR%%/zabbix_server.conf.d
18
%%SERVER%%@dir %%ETCDIR%%/zabbix/alertscripts
19
man/man8/zabbix_%%ZABBIX_BUILD%%.8.gz
20
sbin/zabbix_%%ZABBIX_BUILD%%
21
@dir %%ETCDIR%%/zabbix/externalscripts
22
@dir lib/modules
(-)b/net-mgmt/zabbix5-server/pkg-plist.agent (+9 lines)
Added Link Here
1
%%ETCDIR%%/zabbix_agentd.conf.sample
2
bin/zabbix_get
3
bin/zabbix_sender
4
man/man1/zabbix_get.1.gz
5
man/man1/zabbix_sender.1.gz
6
man/man8/zabbix_%%ZABBIX_BUILD%%d.8.gz
7
sbin/zabbix_agentd
8
@dir %%ETCDIR%%/zabbix_agentd.conf.d
9
@dir lib/modules
(-)b/net-mgmt/zabbix5-server/pkg-plist.agent2 (+5 lines)
Added Link Here
1
bin/mock_server
2
bin/zabbix_%%ZABBIX_BUILD%%
3
%%ETCDIR%%/mock_server.conf.sample
4
%%ETCDIR%%/active_checks.json.sample
5
%%ETCDIR%%/zabbix_%%ZABBIX_BUILD%%.conf.sample
(-)b/net-mgmt/zabbix5-server/pkg-plist.frontend (+1181 lines)
Added Link Here
1
%%WWWDIR%%/actionconf.php
2
%%WWWDIR%%/api_jsonrpc.php
3
%%WWWDIR%%/app/.htaccess
4
%%WWWDIR%%/app/controllers/CControllerAuditLogList.php
5
%%WWWDIR%%/app/controllers/CControllerAuthenticationEdit.php
6
%%WWWDIR%%/app/controllers/CControllerAuthenticationUpdate.php
7
%%WWWDIR%%/app/controllers/CControllerAutoregEdit.php
8
%%WWWDIR%%/app/controllers/CControllerAutoregUpdate.php
9
%%WWWDIR%%/app/controllers/CControllerCharts.php
10
%%WWWDIR%%/app/controllers/CControllerChartsView.php
11
%%WWWDIR%%/app/controllers/CControllerChartsViewJson.php
12
%%WWWDIR%%/app/controllers/CControllerDashboardAbstract.php
13
%%WWWDIR%%/app/controllers/CControllerDashboardDelete.php
14
%%WWWDIR%%/app/controllers/CControllerDashboardList.php
15
%%WWWDIR%%/app/controllers/CControllerDashboardPropertiesCheck.php
16
%%WWWDIR%%/app/controllers/CControllerDashboardPropertiesEdit.php
17
%%WWWDIR%%/app/controllers/CControllerDashboardShareEdit.php
18
%%WWWDIR%%/app/controllers/CControllerDashboardShareUpdate.php
19
%%WWWDIR%%/app/controllers/CControllerDashboardUpdate.php
20
%%WWWDIR%%/app/controllers/CControllerDashboardView.php
21
%%WWWDIR%%/app/controllers/CControllerDashboardWidgetCheck.php
22
%%WWWDIR%%/app/controllers/CControllerDashboardWidgetConfigure.php
23
%%WWWDIR%%/app/controllers/CControllerDashboardWidgetEdit.php
24
%%WWWDIR%%/app/controllers/CControllerDashboardWidgetRfRate.php
25
%%WWWDIR%%/app/controllers/CControllerDashboardWidgetSanitize.php
26
%%WWWDIR%%/app/controllers/CControllerDiscoveryView.php
27
%%WWWDIR%%/app/controllers/CControllerExportXml.php
28
%%WWWDIR%%/app/controllers/CControllerFavouriteCreate.php
29
%%WWWDIR%%/app/controllers/CControllerFavouriteDelete.php
30
%%WWWDIR%%/app/controllers/CControllerGuiEdit.php
31
%%WWWDIR%%/app/controllers/CControllerGuiUpdate.php
32
%%WWWDIR%%/app/controllers/CControllerHost.php
33
%%WWWDIR%%/app/controllers/CControllerHostMacrosList.php
34
%%WWWDIR%%/app/controllers/CControllerHostView.php
35
%%WWWDIR%%/app/controllers/CControllerHostViewRefresh.php
36
%%WWWDIR%%/app/controllers/CControllerHousekeepingEdit.php
37
%%WWWDIR%%/app/controllers/CControllerHousekeepingUpdate.php
38
%%WWWDIR%%/app/controllers/CControllerIconMapCreate.php
39
%%WWWDIR%%/app/controllers/CControllerIconMapDelete.php
40
%%WWWDIR%%/app/controllers/CControllerIconMapEdit.php
41
%%WWWDIR%%/app/controllers/CControllerIconMapList.php
42
%%WWWDIR%%/app/controllers/CControllerIconMapUpdate.php
43
%%WWWDIR%%/app/controllers/CControllerImageCreate.php
44
%%WWWDIR%%/app/controllers/CControllerImageDelete.php
45
%%WWWDIR%%/app/controllers/CControllerImageEdit.php
46
%%WWWDIR%%/app/controllers/CControllerImageList.php
47
%%WWWDIR%%/app/controllers/CControllerImageUpdate.php
48
%%WWWDIR%%/app/controllers/CControllerLatest.php
49
%%WWWDIR%%/app/controllers/CControllerLatestView.php
50
%%WWWDIR%%/app/controllers/CControllerLatestViewRefresh.php
51
%%WWWDIR%%/app/controllers/CControllerMacrosEdit.php
52
%%WWWDIR%%/app/controllers/CControllerMacrosUpdate.php
53
%%WWWDIR%%/app/controllers/CControllerMapView.php
54
%%WWWDIR%%/app/controllers/CControllerMediatypeCreate.php
55
%%WWWDIR%%/app/controllers/CControllerMediatypeDelete.php
56
%%WWWDIR%%/app/controllers/CControllerMediatypeDisable.php
57
%%WWWDIR%%/app/controllers/CControllerMediatypeEdit.php
58
%%WWWDIR%%/app/controllers/CControllerMediatypeEnable.php
59
%%WWWDIR%%/app/controllers/CControllerMediatypeList.php
60
%%WWWDIR%%/app/controllers/CControllerMediatypeUpdate.php
61
%%WWWDIR%%/app/controllers/CControllerMenuPopup.php
62
%%WWWDIR%%/app/controllers/CControllerMiscConfigEdit.php
63
%%WWWDIR%%/app/controllers/CControllerMiscConfigUpdate.php
64
%%WWWDIR%%/app/controllers/CControllerModuleEdit.php
65
%%WWWDIR%%/app/controllers/CControllerModuleList.php
66
%%WWWDIR%%/app/controllers/CControllerModuleScan.php
67
%%WWWDIR%%/app/controllers/CControllerModuleUpdate.php
68
%%WWWDIR%%/app/controllers/CControllerNotificationsGet.php
69
%%WWWDIR%%/app/controllers/CControllerNotificationsMute.php
70
%%WWWDIR%%/app/controllers/CControllerNotificationsRead.php
71
%%WWWDIR%%/app/controllers/CControllerPopup.php
72
%%WWWDIR%%/app/controllers/CControllerPopupAcknowledgeCreate.php
73
%%WWWDIR%%/app/controllers/CControllerPopupAcknowledgeEdit.php
74
%%WWWDIR%%/app/controllers/CControllerPopupActionAcknowledge.php
75
%%WWWDIR%%/app/controllers/CControllerPopupActionOperation.php
76
%%WWWDIR%%/app/controllers/CControllerPopupActionRecovery.php
77
%%WWWDIR%%/app/controllers/CControllerPopupConditionActions.php
78
%%WWWDIR%%/app/controllers/CControllerPopupConditionCommon.php
79
%%WWWDIR%%/app/controllers/CControllerPopupConditionEventCorr.php
80
%%WWWDIR%%/app/controllers/CControllerPopupConditionOperations.php
81
%%WWWDIR%%/app/controllers/CControllerPopupDiscoveryCheck.php
82
%%WWWDIR%%/app/controllers/CControllerPopupGeneric.php
83
%%WWWDIR%%/app/controllers/CControllerPopupHttpStep.php
84
%%WWWDIR%%/app/controllers/CControllerPopupItemTest.php
85
%%WWWDIR%%/app/controllers/CControllerPopupItemTestEdit.php
86
%%WWWDIR%%/app/controllers/CControllerPopupItemTestGetValue.php
87
%%WWWDIR%%/app/controllers/CControllerPopupItemTestSend.php
88
%%WWWDIR%%/app/controllers/CControllerPopupLldOperation.php
89
%%WWWDIR%%/app/controllers/CControllerPopupLldOverride.php
90
%%WWWDIR%%/app/controllers/CControllerPopupMaintenancePeriod.php
91
%%WWWDIR%%/app/controllers/CControllerPopupMedia.php
92
%%WWWDIR%%/app/controllers/CControllerPopupMediatypeMessage.php
93
%%WWWDIR%%/app/controllers/CControllerPopupMediatypeTestEdit.php
94
%%WWWDIR%%/app/controllers/CControllerPopupMediatypeTestSend.php
95
%%WWWDIR%%/app/controllers/CControllerPopupOperationCommon.php
96
%%WWWDIR%%/app/controllers/CControllerPopupScriptExec.php
97
%%WWWDIR%%/app/controllers/CControllerPopupServices.php
98
%%WWWDIR%%/app/controllers/CControllerPopupTestTriggerExpr.php
99
%%WWWDIR%%/app/controllers/CControllerPopupTriggerExpr.php
100
%%WWWDIR%%/app/controllers/CControllerPopupTriggerWizard.php
101
%%WWWDIR%%/app/controllers/CControllerProblemView.php
102
%%WWWDIR%%/app/controllers/CControllerProfileUpdate.php
103
%%WWWDIR%%/app/controllers/CControllerProxyCreate.php
104
%%WWWDIR%%/app/controllers/CControllerProxyDelete.php
105
%%WWWDIR%%/app/controllers/CControllerProxyEdit.php
106
%%WWWDIR%%/app/controllers/CControllerProxyHostDisable.php
107
%%WWWDIR%%/app/controllers/CControllerProxyHostEnable.php
108
%%WWWDIR%%/app/controllers/CControllerProxyList.php
109
%%WWWDIR%%/app/controllers/CControllerProxyUpdate.php
110
%%WWWDIR%%/app/controllers/CControllerRegExCreate.php
111
%%WWWDIR%%/app/controllers/CControllerRegExDelete.php
112
%%WWWDIR%%/app/controllers/CControllerRegExEdit.php
113
%%WWWDIR%%/app/controllers/CControllerRegExList.php
114
%%WWWDIR%%/app/controllers/CControllerRegExTest.php
115
%%WWWDIR%%/app/controllers/CControllerRegExUpdate.php
116
%%WWWDIR%%/app/controllers/CControllerReportServices.php
117
%%WWWDIR%%/app/controllers/CControllerReportStatus.php
118
%%WWWDIR%%/app/controllers/CControllerScriptCreate.php
119
%%WWWDIR%%/app/controllers/CControllerScriptDelete.php
120
%%WWWDIR%%/app/controllers/CControllerScriptEdit.php
121
%%WWWDIR%%/app/controllers/CControllerScriptList.php
122
%%WWWDIR%%/app/controllers/CControllerScriptUpdate.php
123
%%WWWDIR%%/app/controllers/CControllerSearch.php
124
%%WWWDIR%%/app/controllers/CControllerSystemWarning.php
125
%%WWWDIR%%/app/controllers/CControllerTimeSelectorUpdate.php
126
%%WWWDIR%%/app/controllers/CControllerTrigDisplayEdit.php
127
%%WWWDIR%%/app/controllers/CControllerTrigDisplayUpdate.php
128
%%WWWDIR%%/app/controllers/CControllerTrigSeverityEdit.php
129
%%WWWDIR%%/app/controllers/CControllerTrigSeverityUpdate.php
130
%%WWWDIR%%/app/controllers/CControllerUserCreate.php
131
%%WWWDIR%%/app/controllers/CControllerUserDelete.php
132
%%WWWDIR%%/app/controllers/CControllerUserEdit.php
133
%%WWWDIR%%/app/controllers/CControllerUserEditGeneral.php
134
%%WWWDIR%%/app/controllers/CControllerUserList.php
135
%%WWWDIR%%/app/controllers/CControllerUserProfileEdit.php
136
%%WWWDIR%%/app/controllers/CControllerUserProfileUpdate.php
137
%%WWWDIR%%/app/controllers/CControllerUserUnblock.php
138
%%WWWDIR%%/app/controllers/CControllerUserUpdate.php
139
%%WWWDIR%%/app/controllers/CControllerUserUpdateGeneral.php
140
%%WWWDIR%%/app/controllers/CControllerUsergroupCreate.php
141
%%WWWDIR%%/app/controllers/CControllerUsergroupDelete.php
142
%%WWWDIR%%/app/controllers/CControllerUsergroupEdit.php
143
%%WWWDIR%%/app/controllers/CControllerUsergroupGrouprightAdd.php
144
%%WWWDIR%%/app/controllers/CControllerUsergroupList.php
145
%%WWWDIR%%/app/controllers/CControllerUsergroupMassUpdate.php
146
%%WWWDIR%%/app/controllers/CControllerUsergroupTagfilterAdd.php
147
%%WWWDIR%%/app/controllers/CControllerUsergroupUpdate.php
148
%%WWWDIR%%/app/controllers/CControllerValuemapCreate.php
149
%%WWWDIR%%/app/controllers/CControllerValuemapDelete.php
150
%%WWWDIR%%/app/controllers/CControllerValuemapEdit.php
151
%%WWWDIR%%/app/controllers/CControllerValuemapList.php
152
%%WWWDIR%%/app/controllers/CControllerValuemapUpdate.php
153
%%WWWDIR%%/app/controllers/CControllerWebView.php
154
%%WWWDIR%%/app/controllers/CControllerWidget.php
155
%%WWWDIR%%/app/controllers/CControllerWidgetActionLogView.php
156
%%WWWDIR%%/app/controllers/CControllerWidgetClockView.php
157
%%WWWDIR%%/app/controllers/CControllerWidgetDataOverView.php
158
%%WWWDIR%%/app/controllers/CControllerWidgetDiscoveryView.php
159
%%WWWDIR%%/app/controllers/CControllerWidgetFavGraphsView.php
160
%%WWWDIR%%/app/controllers/CControllerWidgetFavMapsView.php
161
%%WWWDIR%%/app/controllers/CControllerWidgetFavScreensView.php
162
%%WWWDIR%%/app/controllers/CControllerWidgetGraphView.php
163
%%WWWDIR%%/app/controllers/CControllerWidgetHostAvailView.php
164
%%WWWDIR%%/app/controllers/CControllerWidgetIterator.php
165
%%WWWDIR%%/app/controllers/CControllerWidgetIteratorGraphPrototypeView.php
166
%%WWWDIR%%/app/controllers/CControllerWidgetMapView.php
167
%%WWWDIR%%/app/controllers/CControllerWidgetNavTreeItemEdit.php
168
%%WWWDIR%%/app/controllers/CControllerWidgetNavTreeItemUpdate.php
169
%%WWWDIR%%/app/controllers/CControllerWidgetNavTreeView.php
170
%%WWWDIR%%/app/controllers/CControllerWidgetPlainTextView.php
171
%%WWWDIR%%/app/controllers/CControllerWidgetProblemHostsView.php
172
%%WWWDIR%%/app/controllers/CControllerWidgetProblemsBySvView.php
173
%%WWWDIR%%/app/controllers/CControllerWidgetProblemsView.php
174
%%WWWDIR%%/app/controllers/CControllerWidgetSvgGraphView.php
175
%%WWWDIR%%/app/controllers/CControllerWidgetSystemInfoView.php
176
%%WWWDIR%%/app/controllers/CControllerWidgetTrigOverView.php
177
%%WWWDIR%%/app/controllers/CControllerWidgetUrlView.php
178
%%WWWDIR%%/app/controllers/CControllerWidgetWebView.php
179
%%WWWDIR%%/app/controllers/CControllerWorkingTimeEdit.php
180
%%WWWDIR%%/app/controllers/CControllerWorkingTimeUpdate.php
181
%%WWWDIR%%/app/partials/administration.usergroup.grouprights.html.php
182
%%WWWDIR%%/app/partials/administration.usergroup.tagfilters.html.php
183
%%WWWDIR%%/app/partials/common.filter.trigger.php
184
%%WWWDIR%%/app/partials/configuration.tags.tab.php
185
%%WWWDIR%%/app/partials/dataoverview.table.left.php
186
%%WWWDIR%%/app/partials/dataoverview.table.top.php
187
%%WWWDIR%%/app/partials/hostmacros.inherited.list.html.php
188
%%WWWDIR%%/app/partials/hostmacros.list.html.php
189
%%WWWDIR%%/app/partials/js/common.filter.trigger.js.php
190
%%WWWDIR%%/app/partials/js/configuration.tags.tab.js.php
191
%%WWWDIR%%/app/partials/js/massupdate.macros.tab.js.php
192
%%WWWDIR%%/app/partials/layout.htmlpage.aside.php
193
%%WWWDIR%%/app/partials/layout.htmlpage.footer.php
194
%%WWWDIR%%/app/partials/layout.htmlpage.header.php
195
%%WWWDIR%%/app/partials/massupdate.macros.tab.php
196
%%WWWDIR%%/app/partials/monitoring.dashboard.breadcrumbs.php
197
%%WWWDIR%%/app/partials/monitoring.host.view.html.php
198
%%WWWDIR%%/app/partials/monitoring.latest.view.html.php
199
%%WWWDIR%%/app/partials/trigoverview.table.left.php
200
%%WWWDIR%%/app/partials/trigoverview.table.top.php
201
%%WWWDIR%%/app/views/administration.authentication.edit.php
202
%%WWWDIR%%/app/views/administration.autoreg.edit.php
203
%%WWWDIR%%/app/views/administration.gui.edit.php
204
%%WWWDIR%%/app/views/administration.housekeeping.edit.php
205
%%WWWDIR%%/app/views/administration.iconmap.edit.php
206
%%WWWDIR%%/app/views/administration.iconmap.list.php
207
%%WWWDIR%%/app/views/administration.image.edit.php
208
%%WWWDIR%%/app/views/administration.image.list.php
209
%%WWWDIR%%/app/views/administration.macros.edit.php
210
%%WWWDIR%%/app/views/administration.mediatype.edit.php
211
%%WWWDIR%%/app/views/administration.mediatype.list.php
212
%%WWWDIR%%/app/views/administration.miscconfig.edit.php
213
%%WWWDIR%%/app/views/administration.module.edit.php
214
%%WWWDIR%%/app/views/administration.module.list.php
215
%%WWWDIR%%/app/views/administration.proxy.edit.php
216
%%WWWDIR%%/app/views/administration.proxy.list.php
217
%%WWWDIR%%/app/views/administration.regex.edit.php
218
%%WWWDIR%%/app/views/administration.regex.list.php
219
%%WWWDIR%%/app/views/administration.script.edit.php
220
%%WWWDIR%%/app/views/administration.script.list.php
221
%%WWWDIR%%/app/views/administration.trigdisplay.edit.php
222
%%WWWDIR%%/app/views/administration.trigseverity.edit.php
223
%%WWWDIR%%/app/views/administration.user.edit.php
224
%%WWWDIR%%/app/views/administration.user.list.php
225
%%WWWDIR%%/app/views/administration.usergroup.edit.php
226
%%WWWDIR%%/app/views/administration.usergroup.grouprights.php
227
%%WWWDIR%%/app/views/administration.usergroup.list.php
228
%%WWWDIR%%/app/views/administration.usergroup.tagfilters.php
229
%%WWWDIR%%/app/views/administration.valuemap.edit.php
230
%%WWWDIR%%/app/views/administration.valuemap.list.php
231
%%WWWDIR%%/app/views/administration.workingtime.edit.php
232
%%WWWDIR%%/app/views/dashboard.properties.edit.php
233
%%WWWDIR%%/app/views/dashboard.sharing.edit.php
234
%%WWWDIR%%/app/views/hostmacros.list.php
235
%%WWWDIR%%/app/views/js/administration.authentication.edit.js.php
236
%%WWWDIR%%/app/views/js/administration.autoreg.edit.js.php
237
%%WWWDIR%%/app/views/js/administration.housekeeping.edit.js.php
238
%%WWWDIR%%/app/views/js/administration.iconmap.edit.js.php
239
%%WWWDIR%%/app/views/js/administration.image.edit.js.php
240
%%WWWDIR%%/app/views/js/administration.macros.edit.js.php
241
%%WWWDIR%%/app/views/js/administration.mediatype.edit.js.php
242
%%WWWDIR%%/app/views/js/administration.proxy.edit.js.php
243
%%WWWDIR%%/app/views/js/administration.regex.edit.js.php
244
%%WWWDIR%%/app/views/js/administration.script.edit.js.php
245
%%WWWDIR%%/app/views/js/administration.trigdisplay.edit.js.php
246
%%WWWDIR%%/app/views/js/administration.trigseverity.edit.js.php
247
%%WWWDIR%%/app/views/js/administration.user.edit.common.js.php
248
%%WWWDIR%%/app/views/js/administration.user.edit.js.php
249
%%WWWDIR%%/app/views/js/administration.usergroup.edit.js.php
250
%%WWWDIR%%/app/views/js/administration.userprofile.edit.js.php
251
%%WWWDIR%%/app/views/js/administration.valuemap.edit.js.php
252
%%WWWDIR%%/app/views/js/monitoring.charts.view.js.php
253
%%WWWDIR%%/app/views/js/monitoring.dashboard.view.js.php
254
%%WWWDIR%%/app/views/js/monitoring.host.view.js.php
255
%%WWWDIR%%/app/views/js/monitoring.latest.view.js.php
256
%%WWWDIR%%/app/views/js/monitoring.problem.view.js.php
257
%%WWWDIR%%/app/views/js/popup.acknowledge.edit.js.php
258
%%WWWDIR%%/app/views/js/popup.discovery.check.js.php
259
%%WWWDIR%%/app/views/js/popup.itemtestedit.view.js.php
260
%%WWWDIR%%/app/views/js/popup.maintenance.period.js.php
261
%%WWWDIR%%/app/views/js/popup.media.js.php
262
%%WWWDIR%%/app/views/js/popup.mediatype.message.js.php
263
%%WWWDIR%%/app/views/js/popup.mediatypetest.edit.js.php
264
%%WWWDIR%%/app/views/js/popup.triggerwizard.js.php
265
%%WWWDIR%%/app/views/layout.csv.php
266
%%WWWDIR%%/app/views/layout.htmlpage.php
267
%%WWWDIR%%/app/views/layout.javascript.php
268
%%WWWDIR%%/app/views/layout.json.php
269
%%WWWDIR%%/app/views/layout.warning.php
270
%%WWWDIR%%/app/views/layout.widget.php
271
%%WWWDIR%%/app/views/layout.xml.php
272
%%WWWDIR%%/app/views/monitoring.charts.view.json.php
273
%%WWWDIR%%/app/views/monitoring.charts.view.php
274
%%WWWDIR%%/app/views/monitoring.dashboard.list.php
275
%%WWWDIR%%/app/views/monitoring.dashboard.view.php
276
%%WWWDIR%%/app/views/monitoring.dashboard.widget.edit.php
277
%%WWWDIR%%/app/views/monitoring.discovery.view.php
278
%%WWWDIR%%/app/views/monitoring.host.view.php
279
%%WWWDIR%%/app/views/monitoring.host.view.refresh.php
280
%%WWWDIR%%/app/views/monitoring.latest.view.php
281
%%WWWDIR%%/app/views/monitoring.latest.view.refresh.php
282
%%WWWDIR%%/app/views/monitoring.map.view.php
283
%%WWWDIR%%/app/views/monitoring.problem.view.php
284
%%WWWDIR%%/app/views/monitoring.web.view.php
285
%%WWWDIR%%/app/views/monitoring.widget.actionlog.view.php
286
%%WWWDIR%%/app/views/monitoring.widget.clock.view.php
287
%%WWWDIR%%/app/views/monitoring.widget.dataover.view.php
288
%%WWWDIR%%/app/views/monitoring.widget.discovery.view.php
289
%%WWWDIR%%/app/views/monitoring.widget.favgraphs.view.php
290
%%WWWDIR%%/app/views/monitoring.widget.favmaps.view.php
291
%%WWWDIR%%/app/views/monitoring.widget.favscreens.view.php
292
%%WWWDIR%%/app/views/monitoring.widget.graph.view.php
293
%%WWWDIR%%/app/views/monitoring.widget.hostavail.view.php
294
%%WWWDIR%%/app/views/monitoring.widget.map.view.php
295
%%WWWDIR%%/app/views/monitoring.widget.navtree.view.php
296
%%WWWDIR%%/app/views/monitoring.widget.navtreeitem.edit.php
297
%%WWWDIR%%/app/views/monitoring.widget.plaintext.view.php
298
%%WWWDIR%%/app/views/monitoring.widget.problemhosts.view.php
299
%%WWWDIR%%/app/views/monitoring.widget.problems.view.php
300
%%WWWDIR%%/app/views/monitoring.widget.problemsbysv.view.php
301
%%WWWDIR%%/app/views/monitoring.widget.svggraph.view.php
302
%%WWWDIR%%/app/views/monitoring.widget.systeminfo.view.php
303
%%WWWDIR%%/app/views/monitoring.widget.trigover.view.php
304
%%WWWDIR%%/app/views/monitoring.widget.url.view.php
305
%%WWWDIR%%/app/views/monitoring.widget.web.view.php
306
%%WWWDIR%%/app/views/popup.acknowledge.edit.php
307
%%WWWDIR%%/app/views/popup.condition.common.php
308
%%WWWDIR%%/app/views/popup.discovery.check.php
309
%%WWWDIR%%/app/views/popup.generic.php
310
%%WWWDIR%%/app/views/popup.httpstep.php
311
%%WWWDIR%%/app/views/popup.itemtestedit.view.php
312
%%WWWDIR%%/app/views/popup.lldoperation.php
313
%%WWWDIR%%/app/views/popup.lldoverride.php
314
%%WWWDIR%%/app/views/popup.maintenance.period.php
315
%%WWWDIR%%/app/views/popup.media.php
316
%%WWWDIR%%/app/views/popup.mediatype.message.php
317
%%WWWDIR%%/app/views/popup.mediatypetest.edit.php
318
%%WWWDIR%%/app/views/popup.operation.common.php
319
%%WWWDIR%%/app/views/popup.scriptexec.php
320
%%WWWDIR%%/app/views/popup.services.php
321
%%WWWDIR%%/app/views/popup.testtriggerexpr.php
322
%%WWWDIR%%/app/views/popup.triggerexpr.php
323
%%WWWDIR%%/app/views/popup.triggerwizard.php
324
%%WWWDIR%%/app/views/popup.view.php
325
%%WWWDIR%%/app/views/report.services.php
326
%%WWWDIR%%/app/views/report.status.php
327
%%WWWDIR%%/app/views/reports.auditlog.list.php
328
%%WWWDIR%%/app/views/search.php
329
%%WWWDIR%%/app/views/system.warning.php
330
%%WWWDIR%%/applications.php
331
%%WWWDIR%%/assets/fonts/DejaVuSans.ttf
332
%%WWWDIR%%/assets/img/apple-touch-icon-120x120-precomposed.png
333
%%WWWDIR%%/assets/img/apple-touch-icon-152x152-precomposed.png
334
%%WWWDIR%%/assets/img/apple-touch-icon-180x180-precomposed.png
335
%%WWWDIR%%/assets/img/apple-touch-icon-76x76-precomposed.png
336
%%WWWDIR%%/assets/img/browser-sprite.png
337
%%WWWDIR%%/assets/img/icon-sprite.svg
338
%%WWWDIR%%/assets/img/ms-tile-144x144.png
339
%%WWWDIR%%/assets/img/touch-icon-192x192.png
340
%%WWWDIR%%/assets/styles/blue-theme.css
341
%%WWWDIR%%/assets/styles/dark-theme.css
342
%%WWWDIR%%/assets/styles/hc-dark.css
343
%%WWWDIR%%/assets/styles/hc-light.css
344
%%WWWDIR%%/audio/alarm_average.mp3
345
%%WWWDIR%%/audio/alarm_disaster.mp3
346
%%WWWDIR%%/audio/alarm_high.mp3
347
%%WWWDIR%%/audio/alarm_information.mp3
348
%%WWWDIR%%/audio/alarm_ok.mp3
349
%%WWWDIR%%/audio/alarm_warning.mp3
350
%%WWWDIR%%/audio/no_sound.mp3
351
%%WWWDIR%%/auditacts.php
352
%%WWWDIR%%/browserwarning.php
353
%%WWWDIR%%/chart.php
354
%%WWWDIR%%/chart2.php
355
%%WWWDIR%%/chart3.php
356
%%WWWDIR%%/chart4.php
357
%%WWWDIR%%/chart5.php
358
%%WWWDIR%%/chart6.php
359
%%WWWDIR%%/chart7.php
360
%%WWWDIR%%/conf.import.php
361
%%WWWDIR%%/conf/.htaccess
362
%%WWWDIR%%/conf/maintenance.inc.php
363
%%WWWDIR%%/conf/zabbix.conf.php.example
364
%%WWWDIR%%/correlation.php
365
%%WWWDIR%%/disc_prototypes.php
366
%%WWWDIR%%/discoveryconf.php
367
%%WWWDIR%%/favicon.ico
368
%%WWWDIR%%/graphs.php
369
%%WWWDIR%%/history.php
370
%%WWWDIR%%/host_discovery.php
371
%%WWWDIR%%/host_prototypes.php
372
%%WWWDIR%%/host_screen.php
373
%%WWWDIR%%/hostgroups.php
374
%%WWWDIR%%/hostinventories.php
375
%%WWWDIR%%/hostinventoriesoverview.php
376
%%WWWDIR%%/hosts.php
377
%%WWWDIR%%/httpconf.php
378
%%WWWDIR%%/httpdetails.php
379
%%WWWDIR%%/image.php
380
%%WWWDIR%%/imgstore.php
381
%%WWWDIR%%/include/.htaccess
382
%%WWWDIR%%/include/actions.inc.php
383
%%WWWDIR%%/include/audit.inc.php
384
%%WWWDIR%%/include/blocks.inc.php
385
%%WWWDIR%%/include/classes/api/API.php
386
%%WWWDIR%%/include/classes/api/APIException.php
387
%%WWWDIR%%/include/classes/api/CApiClientResponse.php
388
%%WWWDIR%%/include/classes/api/CApiService.php
389
%%WWWDIR%%/include/classes/api/CApiServiceFactory.php
390
%%WWWDIR%%/include/classes/api/CAudit.php
391
%%WWWDIR%%/include/classes/api/CRelationMap.php
392
%%WWWDIR%%/include/classes/api/clients/CApiClient.php
393
%%WWWDIR%%/include/classes/api/clients/CLocalApiClient.php
394
%%WWWDIR%%/include/classes/api/helpers/CApiHostHelper.php
395
%%WWWDIR%%/include/classes/api/helpers/CApiTagHelper.php
396
%%WWWDIR%%/include/classes/api/managers/CApplicationManager.php
397
%%WWWDIR%%/include/classes/api/managers/CGraphManager.php
398
%%WWWDIR%%/include/classes/api/managers/CGraphPrototypeManager.php
399
%%WWWDIR%%/include/classes/api/managers/CHistoryManager.php
400
%%WWWDIR%%/include/classes/api/managers/CHttpTestManager.php
401
%%WWWDIR%%/include/classes/api/managers/CItemManager.php
402
%%WWWDIR%%/include/classes/api/managers/CItemPrototypeManager.php
403
%%WWWDIR%%/include/classes/api/managers/CTriggerManager.php
404
%%WWWDIR%%/include/classes/api/managers/CTriggerPrototypeManager.php
405
%%WWWDIR%%/include/classes/api/services/CAPIInfo.php
406
%%WWWDIR%%/include/classes/api/services/CAction.php
407
%%WWWDIR%%/include/classes/api/services/CAlert.php
408
%%WWWDIR%%/include/classes/api/services/CApplication.php
409
%%WWWDIR%%/include/classes/api/services/CAuditLog.php
410
%%WWWDIR%%/include/classes/api/services/CAutoregistration.php
411
%%WWWDIR%%/include/classes/api/services/CConfiguration.php
412
%%WWWDIR%%/include/classes/api/services/CCorrelation.php
413
%%WWWDIR%%/include/classes/api/services/CDCheck.php
414
%%WWWDIR%%/include/classes/api/services/CDHost.php
415
%%WWWDIR%%/include/classes/api/services/CDRule.php
416
%%WWWDIR%%/include/classes/api/services/CDService.php
417
%%WWWDIR%%/include/classes/api/services/CDashboard.php
418
%%WWWDIR%%/include/classes/api/services/CDiscoveryRule.php
419
%%WWWDIR%%/include/classes/api/services/CEvent.php
420
%%WWWDIR%%/include/classes/api/services/CGraph.php
421
%%WWWDIR%%/include/classes/api/services/CGraphGeneral.php
422
%%WWWDIR%%/include/classes/api/services/CGraphItem.php
423
%%WWWDIR%%/include/classes/api/services/CGraphPrototype.php
424
%%WWWDIR%%/include/classes/api/services/CHistory.php
425
%%WWWDIR%%/include/classes/api/services/CHost.php
426
%%WWWDIR%%/include/classes/api/services/CHostBase.php
427
%%WWWDIR%%/include/classes/api/services/CHostGeneral.php
428
%%WWWDIR%%/include/classes/api/services/CHostGroup.php
429
%%WWWDIR%%/include/classes/api/services/CHostInterface.php
430
%%WWWDIR%%/include/classes/api/services/CHostPrototype.php
431
%%WWWDIR%%/include/classes/api/services/CHttpTest.php
432
%%WWWDIR%%/include/classes/api/services/CIconMap.php
433
%%WWWDIR%%/include/classes/api/services/CImage.php
434
%%WWWDIR%%/include/classes/api/services/CItem.php
435
%%WWWDIR%%/include/classes/api/services/CItemGeneral.php
436
%%WWWDIR%%/include/classes/api/services/CItemPrototype.php
437
%%WWWDIR%%/include/classes/api/services/CMaintenance.php
438
%%WWWDIR%%/include/classes/api/services/CMap.php
439
%%WWWDIR%%/include/classes/api/services/CMapElement.php
440
%%WWWDIR%%/include/classes/api/services/CMediatype.php
441
%%WWWDIR%%/include/classes/api/services/CModule.php
442
%%WWWDIR%%/include/classes/api/services/CProblem.php
443
%%WWWDIR%%/include/classes/api/services/CProxy.php
444
%%WWWDIR%%/include/classes/api/services/CScreen.php
445
%%WWWDIR%%/include/classes/api/services/CScreenItem.php
446
%%WWWDIR%%/include/classes/api/services/CScript.php
447
%%WWWDIR%%/include/classes/api/services/CService.php
448
%%WWWDIR%%/include/classes/api/services/CTask.php
449
%%WWWDIR%%/include/classes/api/services/CTemplate.php
450
%%WWWDIR%%/include/classes/api/services/CTemplateScreen.php
451
%%WWWDIR%%/include/classes/api/services/CTemplateScreenItem.php
452
%%WWWDIR%%/include/classes/api/services/CTrend.php
453
%%WWWDIR%%/include/classes/api/services/CTrigger.php
454
%%WWWDIR%%/include/classes/api/services/CTriggerGeneral.php
455
%%WWWDIR%%/include/classes/api/services/CTriggerPrototype.php
456
%%WWWDIR%%/include/classes/api/services/CUser.php
457
%%WWWDIR%%/include/classes/api/services/CUserGroup.php
458
%%WWWDIR%%/include/classes/api/services/CUserMacro.php
459
%%WWWDIR%%/include/classes/api/services/CValueMap.php
460
%%WWWDIR%%/include/classes/api/wrappers/CApiWrapper.php
461
%%WWWDIR%%/include/classes/api/wrappers/CFrontendApiWrapper.php
462
%%WWWDIR%%/include/classes/core/APP.php
463
%%WWWDIR%%/include/classes/core/CAjaxResponse.php
464
%%WWWDIR%%/include/classes/core/CAutoloader.php
465
%%WWWDIR%%/include/classes/core/CComponentRegistry.php
466
%%WWWDIR%%/include/classes/core/CConfigFile.php
467
%%WWWDIR%%/include/classes/core/CHttpRequest.php
468
%%WWWDIR%%/include/classes/core/CJsonRpc.php
469
%%WWWDIR%%/include/classes/core/CModule.php
470
%%WWWDIR%%/include/classes/core/CModuleManager.php
471
%%WWWDIR%%/include/classes/core/CRegistryFactory.php
472
%%WWWDIR%%/include/classes/core/CSession.php
473
%%WWWDIR%%/include/classes/core/ConfigFileException.php
474
%%WWWDIR%%/include/classes/core/Manager.php
475
%%WWWDIR%%/include/classes/core/ZBase.php
476
%%WWWDIR%%/include/classes/db/DB.php
477
%%WWWDIR%%/include/classes/db/DBException.php
478
%%WWWDIR%%/include/classes/db/DbBackend.php
479
%%WWWDIR%%/include/classes/db/MysqlDbBackend.php
480
%%WWWDIR%%/include/classes/db/OracleDbBackend.php
481
%%WWWDIR%%/include/classes/db/PostgresqlDbBackend.php
482
%%WWWDIR%%/include/classes/debug/CProfiler.php
483
%%WWWDIR%%/include/classes/export/CConfigurationExport.php
484
%%WWWDIR%%/include/classes/export/CConfigurationExportBuilder.php
485
%%WWWDIR%%/include/classes/export/CConfigurationExportException.php
486
%%WWWDIR%%/include/classes/export/writers/CExportWriter.php
487
%%WWWDIR%%/include/classes/export/writers/CExportWriterFactory.php
488
%%WWWDIR%%/include/classes/export/writers/CJsonExportWriter.php
489
%%WWWDIR%%/include/classes/export/writers/CXmlExportWriter.php
490
%%WWWDIR%%/include/classes/graph/CSvgGraph.php
491
%%WWWDIR%%/include/classes/graphdraw/CGraphDraw.php
492
%%WWWDIR%%/include/classes/graphdraw/CLineGraphDraw.php
493
%%WWWDIR%%/include/classes/graphdraw/CPieGraphDraw.php
494
%%WWWDIR%%/include/classes/helpers/CArrayHelper.php
495
%%WWWDIR%%/include/classes/helpers/CBrandHelper.php
496
%%WWWDIR%%/include/classes/helpers/CConditionHelper.php
497
%%WWWDIR%%/include/classes/helpers/CElasticsearchHelper.php
498
%%WWWDIR%%/include/classes/helpers/CHtml.php
499
%%WWWDIR%%/include/classes/helpers/CMapHelper.php
500
%%WWWDIR%%/include/classes/helpers/CMathHelper.php
501
%%WWWDIR%%/include/classes/helpers/CMediatypeHelper.php
502
%%WWWDIR%%/include/classes/helpers/CMenuPopupHelper.php
503
%%WWWDIR%%/include/classes/helpers/CPagerHelper.php
504
%%WWWDIR%%/include/classes/helpers/CSvgGraphHelper.php
505
%%WWWDIR%%/include/classes/helpers/CUploadFile.php
506
%%WWWDIR%%/include/classes/helpers/CViewHelper.php
507
%%WWWDIR%%/include/classes/html/CActionButtonList.php
508
%%WWWDIR%%/include/classes/html/CButton.php
509
%%WWWDIR%%/include/classes/html/CButtonCancel.php
510
%%WWWDIR%%/include/classes/html/CButtonDelete.php
511
%%WWWDIR%%/include/classes/html/CButtonDropdown.php
512
%%WWWDIR%%/include/classes/html/CButtonQMessage.php
513
%%WWWDIR%%/include/classes/html/CCheckBox.php
514
%%WWWDIR%%/include/classes/html/CCheckBoxList.php
515
%%WWWDIR%%/include/classes/html/CClock.php
516
%%WWWDIR%%/include/classes/html/CCol.php
517
%%WWWDIR%%/include/classes/html/CColHeader.php
518
%%WWWDIR%%/include/classes/html/CCollapsibleUiWidget.php
519
%%WWWDIR%%/include/classes/html/CColor.php
520
%%WWWDIR%%/include/classes/html/CComboBox.php
521
%%WWWDIR%%/include/classes/html/CComboItem.php
522
%%WWWDIR%%/include/classes/html/CDashboardWidgetMap.php
523
%%WWWDIR%%/include/classes/html/CDateSelector.php
524
%%WWWDIR%%/include/classes/html/CDiv.php
525
%%WWWDIR%%/include/classes/html/CFile.php
526
%%WWWDIR%%/include/classes/html/CFilter.php
527
%%WWWDIR%%/include/classes/html/CForm.php
528
%%WWWDIR%%/include/classes/html/CFormList.php
529
%%WWWDIR%%/include/classes/html/CHorList.php
530
%%WWWDIR%%/include/classes/html/CIFrame.php
531
%%WWWDIR%%/include/classes/html/CImageTextTable.php
532
%%WWWDIR%%/include/classes/html/CImg.php
533
%%WWWDIR%%/include/classes/html/CInput.php
534
%%WWWDIR%%/include/classes/html/CInputSecret.php
535
%%WWWDIR%%/include/classes/html/CJsScript.php
536
%%WWWDIR%%/include/classes/html/CLabel.php
537
%%WWWDIR%%/include/classes/html/CLink.php
538
%%WWWDIR%%/include/classes/html/CLinkAction.php
539
%%WWWDIR%%/include/classes/html/CList.php
540
%%WWWDIR%%/include/classes/html/CListBox.php
541
%%WWWDIR%%/include/classes/html/CListItem.php
542
%%WWWDIR%%/include/classes/html/CMacroValue.php
543
%%WWWDIR%%/include/classes/html/CMenu.php
544
%%WWWDIR%%/include/classes/html/CMenuItem.php
545
%%WWWDIR%%/include/classes/html/CMultiSelect.php
546
%%WWWDIR%%/include/classes/html/CMultilineInput.php
547
%%WWWDIR%%/include/classes/html/CNavigationTree.php
548
%%WWWDIR%%/include/classes/html/CNumericBox.php
549
%%WWWDIR%%/include/classes/html/CObject.php
550
%%WWWDIR%%/include/classes/html/CParam.php
551
%%WWWDIR%%/include/classes/html/CPassBox.php
552
%%WWWDIR%%/include/classes/html/CPatternSelect.php
553
%%WWWDIR%%/include/classes/html/CPre.php
554
%%WWWDIR%%/include/classes/html/CRadioButtonList.php
555
%%WWWDIR%%/include/classes/html/CRangeControl.php
556
%%WWWDIR%%/include/classes/html/CRedirectButton.php
557
%%WWWDIR%%/include/classes/html/CRow.php
558
%%WWWDIR%%/include/classes/html/CRowHeader.php
559
%%WWWDIR%%/include/classes/html/CScriptTag.php
560
%%WWWDIR%%/include/classes/html/CSeverity.php
561
%%WWWDIR%%/include/classes/html/CSeverityCheckBoxList.php
562
%%WWWDIR%%/include/classes/html/CSimpleButton.php
563
%%WWWDIR%%/include/classes/html/CSpan.php
564
%%WWWDIR%%/include/classes/html/CSubmit.php
565
%%WWWDIR%%/include/classes/html/CSubmitButton.php
566
%%WWWDIR%%/include/classes/html/CSup.php
567
%%WWWDIR%%/include/classes/html/CTabView.php
568
%%WWWDIR%%/include/classes/html/CTable.php
569
%%WWWDIR%%/include/classes/html/CTableInfo.php
570
%%WWWDIR%%/include/classes/html/CTag.php
571
%%WWWDIR%%/include/classes/html/CTextArea.php
572
%%WWWDIR%%/include/classes/html/CTextAreaFlexible.php
573
%%WWWDIR%%/include/classes/html/CTextBox.php
574
%%WWWDIR%%/include/classes/html/CTriggersInfo.php
575
%%WWWDIR%%/include/classes/html/CUiWidget.php
576
%%WWWDIR%%/include/classes/html/CVar.php
577
%%WWWDIR%%/include/classes/html/CVisibilityBox.php
578
%%WWWDIR%%/include/classes/html/CWarning.php
579
%%WWWDIR%%/include/classes/html/interfaces/CButtonInterface.php
580
%%WWWDIR%%/include/classes/html/pageheader/CPageHeader.php
581
%%WWWDIR%%/include/classes/html/svg/CSvg.php
582
%%WWWDIR%%/include/classes/html/svg/CSvgCircle.php
583
%%WWWDIR%%/include/classes/html/svg/CSvgGraphAnnotation.php
584
%%WWWDIR%%/include/classes/html/svg/CSvgGraphArea.php
585
%%WWWDIR%%/include/classes/html/svg/CSvgGraphAxis.php
586
%%WWWDIR%%/include/classes/html/svg/CSvgGraphBar.php
587
%%WWWDIR%%/include/classes/html/svg/CSvgGraphGrid.php
588
%%WWWDIR%%/include/classes/html/svg/CSvgGraphLegend.php
589
%%WWWDIR%%/include/classes/html/svg/CSvgGraphLine.php
590
%%WWWDIR%%/include/classes/html/svg/CSvgGraphLineGroup.php
591
%%WWWDIR%%/include/classes/html/svg/CSvgGraphPoints.php
592
%%WWWDIR%%/include/classes/html/svg/CSvgGroup.php
593
%%WWWDIR%%/include/classes/html/svg/CSvgLine.php
594
%%WWWDIR%%/include/classes/html/svg/CSvgPath.php
595
%%WWWDIR%%/include/classes/html/svg/CSvgPolygon.php
596
%%WWWDIR%%/include/classes/html/svg/CSvgRect.php
597
%%WWWDIR%%/include/classes/html/svg/CSvgTag.php
598
%%WWWDIR%%/include/classes/html/svg/CSvgText.php
599
%%WWWDIR%%/include/classes/html/widget/CWidget.php
600
%%WWWDIR%%/include/classes/import/CConfigurationImport.php
601
%%WWWDIR%%/include/classes/import/CImportDataAdapter.php
602
%%WWWDIR%%/include/classes/import/CImportReferencer.php
603
%%WWWDIR%%/include/classes/import/CImportedObjectContainer.php
604
%%WWWDIR%%/include/classes/import/converters/C10ImportConverter.php
605
%%WWWDIR%%/include/classes/import/converters/C10ItemKeyConverter.php
606
%%WWWDIR%%/include/classes/import/converters/C10TriggerConverter.php
607
%%WWWDIR%%/include/classes/import/converters/C20ImportConverter.php
608
%%WWWDIR%%/include/classes/import/converters/C20ItemKeyConverter.php
609
%%WWWDIR%%/include/classes/import/converters/C20TriggerConverter.php
610
%%WWWDIR%%/include/classes/import/converters/C30ImportConverter.php
611
%%WWWDIR%%/include/classes/import/converters/C32ImportConverter.php
612
%%WWWDIR%%/include/classes/import/converters/C34ImportConverter.php
613
%%WWWDIR%%/include/classes/import/converters/C40ImportConverter.php
614
%%WWWDIR%%/include/classes/import/converters/C42ImportConverter.php
615
%%WWWDIR%%/include/classes/import/converters/C44ImportConverter.php
616
%%WWWDIR%%/include/classes/import/converters/CArrayKeysImportConverter.php
617
%%WWWDIR%%/include/classes/import/converters/CConstantImportConverter.php
618
%%WWWDIR%%/include/classes/import/converters/CConverter.php
619
%%WWWDIR%%/include/classes/import/converters/CDefaultImportConverter.php
620
%%WWWDIR%%/include/classes/import/converters/CImportConverterFactory.php
621
%%WWWDIR%%/include/classes/import/converters/CTransformImportConverter.php
622
%%WWWDIR%%/include/classes/import/importers/CAbstractScreenImporter.php
623
%%WWWDIR%%/include/classes/import/importers/CHostImporter.php
624
%%WWWDIR%%/include/classes/import/importers/CImporter.php
625
%%WWWDIR%%/include/classes/import/importers/CMapImporter.php
626
%%WWWDIR%%/include/classes/import/importers/CScreenImporter.php
627
%%WWWDIR%%/include/classes/import/importers/CTemplateImporter.php
628
%%WWWDIR%%/include/classes/import/importers/CTemplateScreenImporter.php
629
%%WWWDIR%%/include/classes/import/readers/CImportReader.php
630
%%WWWDIR%%/include/classes/import/readers/CImportReaderFactory.php
631
%%WWWDIR%%/include/classes/import/readers/CJsonImportReader.php
632
%%WWWDIR%%/include/classes/import/readers/CXmlImportReader.php
633
%%WWWDIR%%/include/classes/import/validators/C10XmlValidator.php
634
%%WWWDIR%%/include/classes/import/validators/C20XmlValidator.php
635
%%WWWDIR%%/include/classes/import/validators/C30XmlValidator.php
636
%%WWWDIR%%/include/classes/import/validators/C32XmlValidator.php
637
%%WWWDIR%%/include/classes/import/validators/C34XmlValidator.php
638
%%WWWDIR%%/include/classes/import/validators/C40XmlValidator.php
639
%%WWWDIR%%/include/classes/import/validators/C42XmlValidator.php
640
%%WWWDIR%%/include/classes/import/validators/C44XmlValidator.php
641
%%WWWDIR%%/include/classes/import/validators/C50XmlValidator.php
642
%%WWWDIR%%/include/classes/import/validators/CImportValidatorFactory.php
643
%%WWWDIR%%/include/classes/import/validators/CXmlValidator.php
644
%%WWWDIR%%/include/classes/import/validators/CXmlValidatorGeneral.php
645
%%WWWDIR%%/include/classes/items/CHelpItems.php
646
%%WWWDIR%%/include/classes/ldap/CLdap.php
647
%%WWWDIR%%/include/classes/macros/CMacrosResolver.php
648
%%WWWDIR%%/include/classes/macros/CMacrosResolverGeneral.php
649
%%WWWDIR%%/include/classes/macros/CMacrosResolverHelper.php
650
%%WWWDIR%%/include/classes/mvc/CController.php
651
%%WWWDIR%%/include/classes/mvc/CControllerResponse.php
652
%%WWWDIR%%/include/classes/mvc/CControllerResponseData.php
653
%%WWWDIR%%/include/classes/mvc/CControllerResponseFatal.php
654
%%WWWDIR%%/include/classes/mvc/CControllerResponseRedirect.php
655
%%WWWDIR%%/include/classes/mvc/CLegacyAction.php
656
%%WWWDIR%%/include/classes/mvc/CPartial.php
657
%%WWWDIR%%/include/classes/mvc/CRouter.php
658
%%WWWDIR%%/include/classes/mvc/CView.php
659
%%WWWDIR%%/include/classes/parsers/CADNameAttributeParser.php
660
%%WWWDIR%%/include/classes/parsers/CAbsoluteTimeParser.php
661
%%WWWDIR%%/include/classes/parsers/CConditionFormula.php
662
%%WWWDIR%%/include/classes/parsers/CDnsParser.php
663
%%WWWDIR%%/include/classes/parsers/CFlexibleIntervalParser.php
664
%%WWWDIR%%/include/classes/parsers/CFunctionIdParser.php
665
%%WWWDIR%%/include/classes/parsers/CFunctionMacroParser.php
666
%%WWWDIR%%/include/classes/parsers/CFunctionParser.php
667
%%WWWDIR%%/include/classes/parsers/CHostGroupNameParser.php
668
%%WWWDIR%%/include/classes/parsers/CHostNameParser.php
669
%%WWWDIR%%/include/classes/parsers/CIPParser.php
670
%%WWWDIR%%/include/classes/parsers/CIPRangeParser.php
671
%%WWWDIR%%/include/classes/parsers/CIPv4Parser.php
672
%%WWWDIR%%/include/classes/parsers/CIPv6Parser.php
673
%%WWWDIR%%/include/classes/parsers/CItemKey.php
674
%%WWWDIR%%/include/classes/parsers/CLLDMacroFunctionParser.php
675
%%WWWDIR%%/include/classes/parsers/CLLDMacroParser.php
676
%%WWWDIR%%/include/classes/parsers/CMacroFunctionParser.php
677
%%WWWDIR%%/include/classes/parsers/CMacroParser.php
678
%%WWWDIR%%/include/classes/parsers/CNumberParser.php
679
%%WWWDIR%%/include/classes/parsers/CParser.php
680
%%WWWDIR%%/include/classes/parsers/CPrometheusOutputParser.php
681
%%WWWDIR%%/include/classes/parsers/CPrometheusPatternParser.php
682
%%WWWDIR%%/include/classes/parsers/CRangeParser.php
683
%%WWWDIR%%/include/classes/parsers/CRangeTimeParser.php
684
%%WWWDIR%%/include/classes/parsers/CRangesParser.php
685
%%WWWDIR%%/include/classes/parsers/CReferenceParser.php
686
%%WWWDIR%%/include/classes/parsers/CRelativeTimeParser.php
687
%%WWWDIR%%/include/classes/parsers/CReplacementParser.php
688
%%WWWDIR%%/include/classes/parsers/CSchedulingIntervalParser.php
689
%%WWWDIR%%/include/classes/parsers/CSetParser.php
690
%%WWWDIR%%/include/classes/parsers/CSimpleIntervalParser.php
691
%%WWWDIR%%/include/classes/parsers/CTimePeriodParser.php
692
%%WWWDIR%%/include/classes/parsers/CTimePeriodsParser.php
693
%%WWWDIR%%/include/classes/parsers/CTriggerExpression.php
694
%%WWWDIR%%/include/classes/parsers/CUpdateIntervalParser.php
695
%%WWWDIR%%/include/classes/parsers/CUserMacroParser.php
696
%%WWWDIR%%/include/classes/parsers/CValidationRule.php
697
%%WWWDIR%%/include/classes/parsers/results/CParserResult.php
698
%%WWWDIR%%/include/classes/parsers/results/CTriggerExprParserResult.php
699
%%WWWDIR%%/include/classes/regexp/CGlobalRegexp.php
700
%%WWWDIR%%/include/classes/routing/CUrl.php
701
%%WWWDIR%%/include/classes/routing/CUrlFactory.php
702
%%WWWDIR%%/include/classes/screens/CScreenActions.php
703
%%WWWDIR%%/include/classes/screens/CScreenBase.php
704
%%WWWDIR%%/include/classes/screens/CScreenBuilder.php
705
%%WWWDIR%%/include/classes/screens/CScreenClock.php
706
%%WWWDIR%%/include/classes/screens/CScreenDataOverview.php
707
%%WWWDIR%%/include/classes/screens/CScreenDiscovery.php
708
%%WWWDIR%%/include/classes/screens/CScreenEvents.php
709
%%WWWDIR%%/include/classes/screens/CScreenGraph.php
710
%%WWWDIR%%/include/classes/screens/CScreenHistory.php
711
%%WWWDIR%%/include/classes/screens/CScreenHostTriggers.php
712
%%WWWDIR%%/include/classes/screens/CScreenHostgroupTriggers.php
713
%%WWWDIR%%/include/classes/screens/CScreenHostsInfo.php
714
%%WWWDIR%%/include/classes/screens/CScreenHttpTest.php
715
%%WWWDIR%%/include/classes/screens/CScreenHttpTestDetails.php
716
%%WWWDIR%%/include/classes/screens/CScreenLldGraph.php
717
%%WWWDIR%%/include/classes/screens/CScreenLldGraphBase.php
718
%%WWWDIR%%/include/classes/screens/CScreenLldSimpleGraph.php
719
%%WWWDIR%%/include/classes/screens/CScreenMap.php
720
%%WWWDIR%%/include/classes/screens/CScreenPlainText.php
721
%%WWWDIR%%/include/classes/screens/CScreenProblem.php
722
%%WWWDIR%%/include/classes/screens/CScreenServerInfo.php
723
%%WWWDIR%%/include/classes/screens/CScreenSimpleGraph.php
724
%%WWWDIR%%/include/classes/screens/CScreenSystemStatus.php
725
%%WWWDIR%%/include/classes/screens/CScreenTriggersInfo.php
726
%%WWWDIR%%/include/classes/screens/CScreenTriggersOverview.php
727
%%WWWDIR%%/include/classes/screens/CScreenUrl.php
728
%%WWWDIR%%/include/classes/server/CZabbixServer.php
729
%%WWWDIR%%/include/classes/services/CServicesSlaCalculator.php
730
%%WWWDIR%%/include/classes/setup/CFrontendSetup.php
731
%%WWWDIR%%/include/classes/setup/CSetupWizard.php
732
%%WWWDIR%%/include/classes/tree/CServiceTree.php
733
%%WWWDIR%%/include/classes/tree/CTree.php
734
%%WWWDIR%%/include/classes/triggers/CTextTriggerConstructor.php
735
%%WWWDIR%%/include/classes/user/CFavorite.php
736
%%WWWDIR%%/include/classes/user/CProfile.php
737
%%WWWDIR%%/include/classes/user/CWebUser.php
738
%%WWWDIR%%/include/classes/validators/CActionCondValidator.php
739
%%WWWDIR%%/include/classes/validators/CApiInputValidator.php
740
%%WWWDIR%%/include/classes/validators/CCollectionValidator.php
741
%%WWWDIR%%/include/classes/validators/CColorValidator.php
742
%%WWWDIR%%/include/classes/validators/CEmailValidator.php
743
%%WWWDIR%%/include/classes/validators/CEventCorrCondValidator.php
744
%%WWWDIR%%/include/classes/validators/CFunctionValidator.php
745
%%WWWDIR%%/include/classes/validators/CHtmlUrlValidator.php
746
%%WWWDIR%%/include/classes/validators/CIdValidator.php
747
%%WWWDIR%%/include/classes/validators/CLdapAuthValidator.php
748
%%WWWDIR%%/include/classes/validators/CLimitedSetValidator.php
749
%%WWWDIR%%/include/classes/validators/CNewValidator.php
750
%%WWWDIR%%/include/classes/validators/CPartialValidatorInterface.php
751
%%WWWDIR%%/include/classes/validators/CRegexValidator.php
752
%%WWWDIR%%/include/classes/validators/CStringValidator.php
753
%%WWWDIR%%/include/classes/validators/CValidator.php
754
%%WWWDIR%%/include/classes/validators/event/CEventSourceObjectValidator.php
755
%%WWWDIR%%/include/classes/validators/host/CHostNormalValidator.php
756
%%WWWDIR%%/include/classes/validators/object/CConditionValidator.php
757
%%WWWDIR%%/include/classes/validators/object/CUpdateDiscoveredValidator.php
758
%%WWWDIR%%/include/classes/validators/schema/CSchemaValidator.php
759
%%WWWDIR%%/include/classes/widgets/CWidgetConfig.php
760
%%WWWDIR%%/include/classes/widgets/CWidgetHelper.php
761
%%WWWDIR%%/include/classes/widgets/fields/CWidgetField.php
762
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldApplication.php
763
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldCheckBox.php
764
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldCheckBoxList.php
765
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldComboBox.php
766
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldDatePicker.php
767
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldGraphDataSet.php
768
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldGraphOverride.php
769
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldHidden.php
770
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldHostPatternSelect.php
771
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldIntegerBox.php
772
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMs.php
773
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsGraph.php
774
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsGraphPrototype.php
775
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsGroup.php
776
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsHost.php
777
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsItem.php
778
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsItemPrototype.php
779
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldNavTree.php
780
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldNumericBox.php
781
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldRadioButtonList.php
782
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldRangeControl.php
783
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldReference.php
784
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldSelectResource.php
785
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldSeverities.php
786
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldTags.php
787
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldTextBox.php
788
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldUrl.php
789
%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldWidgetListComboBox.php
790
%%WWWDIR%%/include/classes/widgets/forms/CWidgetForm.php
791
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormActionLog.php
792
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormClock.php
793
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormDataOver.php
794
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormGraph.php
795
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormGraphPrototype.php
796
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormHostAvail.php
797
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormMap.php
798
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormNavTree.php
799
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormPlainText.php
800
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormProblemHosts.php
801
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormProblems.php
802
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormProblemsBySv.php
803
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormSvgGraph.php
804
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormTrigOver.php
805
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormUrl.php
806
%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormWeb.php
807
%%WWWDIR%%/include/classes/widgets/views/widget.actionlog.form.view.php
808
%%WWWDIR%%/include/classes/widgets/views/widget.clock.form.view.php
809
%%WWWDIR%%/include/classes/widgets/views/widget.dataover.form.view.php
810
%%WWWDIR%%/include/classes/widgets/views/widget.discovery.form.view.php
811
%%WWWDIR%%/include/classes/widgets/views/widget.favgraphs.form.view.php
812
%%WWWDIR%%/include/classes/widgets/views/widget.favmaps.form.view.php
813
%%WWWDIR%%/include/classes/widgets/views/widget.favscreens.form.view.php
814
%%WWWDIR%%/include/classes/widgets/views/widget.graph.form.view.php
815
%%WWWDIR%%/include/classes/widgets/views/widget.graphprototype.form.view.php
816
%%WWWDIR%%/include/classes/widgets/views/widget.hostavail.form.view.php
817
%%WWWDIR%%/include/classes/widgets/views/widget.map.form.view.php
818
%%WWWDIR%%/include/classes/widgets/views/widget.navtree.form.view.php
819
%%WWWDIR%%/include/classes/widgets/views/widget.plaintext.form.view.php
820
%%WWWDIR%%/include/classes/widgets/views/widget.problemhosts.form.view.php
821
%%WWWDIR%%/include/classes/widgets/views/widget.problems.form.view.php
822
%%WWWDIR%%/include/classes/widgets/views/widget.problemsbysv.form.view.php
823
%%WWWDIR%%/include/classes/widgets/views/widget.svggraph.form.view.php
824
%%WWWDIR%%/include/classes/widgets/views/widget.systeminfo.form.view.php
825
%%WWWDIR%%/include/classes/widgets/views/widget.trigover.form.view.php
826
%%WWWDIR%%/include/classes/widgets/views/widget.url.form.view.php
827
%%WWWDIR%%/include/classes/widgets/views/widget.web.form.view.php
828
%%WWWDIR%%/include/classes/xml/CXmlConstantName.php
829
%%WWWDIR%%/include/classes/xml/CXmlConstantValue.php
830
%%WWWDIR%%/include/config.inc.php
831
%%WWWDIR%%/include/correlation.inc.php
832
%%WWWDIR%%/include/db.inc.php
833
%%WWWDIR%%/include/debug.inc.php
834
%%WWWDIR%%/include/defines.inc.php
835
%%WWWDIR%%/include/discovery.inc.php
836
%%WWWDIR%%/include/draw.inc.php
837
%%WWWDIR%%/include/events.inc.php
838
%%WWWDIR%%/include/forms.inc.php
839
%%WWWDIR%%/include/func.inc.php
840
%%WWWDIR%%/include/gettextwrapper.inc.php
841
%%WWWDIR%%/include/graphs.inc.php
842
%%WWWDIR%%/include/hostgroups.inc.php
843
%%WWWDIR%%/include/hosts.inc.php
844
%%WWWDIR%%/include/html.inc.php
845
%%WWWDIR%%/include/httptest.inc.php
846
%%WWWDIR%%/include/ident.inc.php
847
%%WWWDIR%%/include/images.inc.php
848
%%WWWDIR%%/include/items.inc.php
849
%%WWWDIR%%/include/js.inc.php
850
%%WWWDIR%%/include/locales.inc.php
851
%%WWWDIR%%/include/maintenances.inc.php
852
%%WWWDIR%%/include/maps.inc.php
853
%%WWWDIR%%/include/media.inc.php
854
%%WWWDIR%%/include/menu.inc.php
855
%%WWWDIR%%/include/page_footer.php
856
%%WWWDIR%%/include/page_header.php
857
%%WWWDIR%%/include/perm.inc.php
858
%%WWWDIR%%/include/profiles.inc.php
859
%%WWWDIR%%/include/regexp.inc.php
860
%%WWWDIR%%/include/schema.inc.php
861
%%WWWDIR%%/include/screens.inc.php
862
%%WWWDIR%%/include/services.inc.php
863
%%WWWDIR%%/include/sounds.inc.php
864
%%WWWDIR%%/include/translateDefines.inc.php
865
%%WWWDIR%%/include/triggers.inc.php
866
%%WWWDIR%%/include/users.inc.php
867
%%WWWDIR%%/include/validate.inc.php
868
%%WWWDIR%%/include/valuemap.inc.php
869
%%WWWDIR%%/include/views/administration.auditacts.list.php
870
%%WWWDIR%%/include/views/conf.import.php
871
%%WWWDIR%%/include/views/configuration.action.edit.php
872
%%WWWDIR%%/include/views/configuration.action.list.php
873
%%WWWDIR%%/include/views/configuration.application.edit.php
874
%%WWWDIR%%/include/views/configuration.application.list.php
875
%%WWWDIR%%/include/views/configuration.copy.elements.php
876
%%WWWDIR%%/include/views/configuration.correlation.edit.php
877
%%WWWDIR%%/include/views/configuration.correlation.list.php
878
%%WWWDIR%%/include/views/configuration.discovery.edit.php
879
%%WWWDIR%%/include/views/configuration.discovery.list.php
880
%%WWWDIR%%/include/views/configuration.graph.edit.php
881
%%WWWDIR%%/include/views/configuration.graph.list.php
882
%%WWWDIR%%/include/views/configuration.host.discovery.edit.php
883
%%WWWDIR%%/include/views/configuration.host.discovery.list.php
884
%%WWWDIR%%/include/views/configuration.host.edit.php
885
%%WWWDIR%%/include/views/configuration.host.list.php
886
%%WWWDIR%%/include/views/configuration.host.massupdate.php
887
%%WWWDIR%%/include/views/configuration.host.prototype.edit.php
888
%%WWWDIR%%/include/views/configuration.host.prototype.list.php
889
%%WWWDIR%%/include/views/configuration.hostgroups.edit.php
890
%%WWWDIR%%/include/views/configuration.hostgroups.list.php
891
%%WWWDIR%%/include/views/configuration.httpconf.edit.php
892
%%WWWDIR%%/include/views/configuration.httpconf.list.php
893
%%WWWDIR%%/include/views/configuration.item.edit.php
894
%%WWWDIR%%/include/views/configuration.item.list.php
895
%%WWWDIR%%/include/views/configuration.item.massupdate.php
896
%%WWWDIR%%/include/views/configuration.item.prototype.edit.php
897
%%WWWDIR%%/include/views/configuration.item.prototype.list.php
898
%%WWWDIR%%/include/views/configuration.item.prototype.massupdate.php
899
%%WWWDIR%%/include/views/configuration.maintenance.edit.php
900
%%WWWDIR%%/include/views/configuration.maintenance.list.php
901
%%WWWDIR%%/include/views/configuration.services.edit.php
902
%%WWWDIR%%/include/views/configuration.services.list.php
903
%%WWWDIR%%/include/views/configuration.template.edit.php
904
%%WWWDIR%%/include/views/configuration.template.list.php
905
%%WWWDIR%%/include/views/configuration.template.massupdate.php
906
%%WWWDIR%%/include/views/configuration.trigger.prototype.edit.php
907
%%WWWDIR%%/include/views/configuration.trigger.prototype.list.php
908
%%WWWDIR%%/include/views/configuration.trigger.prototype.massupdate.php
909
%%WWWDIR%%/include/views/configuration.triggers.edit.php
910
%%WWWDIR%%/include/views/configuration.triggers.list.php
911
%%WWWDIR%%/include/views/configuration.triggers.massupdate.php
912
%%WWWDIR%%/include/views/general.browserwarning.php
913
%%WWWDIR%%/include/views/general.login.php
914
%%WWWDIR%%/include/views/general.warning.php
915
%%WWWDIR%%/include/views/inventory.host.list.php
916
%%WWWDIR%%/include/views/inventory.host.view.php
917
%%WWWDIR%%/include/views/js/common.init.js.php
918
%%WWWDIR%%/include/views/js/common.item.edit.js.php
919
%%WWWDIR%%/include/views/js/common.template.edit.js.php
920
%%WWWDIR%%/include/views/js/conf.import.js.php
921
%%WWWDIR%%/include/views/js/configuration.action.edit.js.php
922
%%WWWDIR%%/include/views/js/configuration.copy.elements.js.php
923
%%WWWDIR%%/include/views/js/configuration.correlation.edit.js.php
924
%%WWWDIR%%/include/views/js/configuration.discovery.edit.js.php
925
%%WWWDIR%%/include/views/js/configuration.graph.edit.js.php
926
%%WWWDIR%%/include/views/js/configuration.host.discovery.edit.js.php
927
%%WWWDIR%%/include/views/js/configuration.host.discovery.edit.overr.js.php
928
%%WWWDIR%%/include/views/js/configuration.host.discovery.list.js.php
929
%%WWWDIR%%/include/views/js/configuration.host.edit.js.php
930
%%WWWDIR%%/include/views/js/configuration.host.list.js.php
931
%%WWWDIR%%/include/views/js/configuration.host.massupdate.js.php
932
%%WWWDIR%%/include/views/js/configuration.host.prototype.edit.js.php
933
%%WWWDIR%%/include/views/js/configuration.httpconf.edit.js.php
934
%%WWWDIR%%/include/views/js/configuration.item.edit.js.php
935
%%WWWDIR%%/include/views/js/configuration.item.list.js.php
936
%%WWWDIR%%/include/views/js/configuration.item.massupdate.js.php
937
%%WWWDIR%%/include/views/js/configuration.item.prototype.edit.js.php
938
%%WWWDIR%%/include/views/js/configuration.maintenance.edit.js.php
939
%%WWWDIR%%/include/views/js/configuration.services.edit.js.php
940
%%WWWDIR%%/include/views/js/configuration.template.list.js.php
941
%%WWWDIR%%/include/views/js/configuration.template.massupdate.js.php
942
%%WWWDIR%%/include/views/js/configuration.trigger.massupdate.js.php
943
%%WWWDIR%%/include/views/js/configuration.triggers.edit.js.php
944
%%WWWDIR%%/include/views/js/configuration.triggers.list.js.php
945
%%WWWDIR%%/include/views/js/editabletable.js.php
946
%%WWWDIR%%/include/views/js/item.preprocessing.js.php
947
%%WWWDIR%%/include/views/js/itemtest.js.php
948
%%WWWDIR%%/include/views/js/monitoring.screen.edit.js.php
949
%%WWWDIR%%/include/views/js/monitoring.screen.js.php
950
%%WWWDIR%%/include/views/js/monitoring.slideconf.edit.js.php
951
%%WWWDIR%%/include/views/js/monitoring.slides.js.php
952
%%WWWDIR%%/include/views/js/monitoring.sysmap.edit.js.php
953
%%WWWDIR%%/include/views/js/monitoring.sysmaps.js.php
954
%%WWWDIR%%/include/views/monitoring.history.php
955
%%WWWDIR%%/include/views/monitoring.hostscreen.php
956
%%WWWDIR%%/include/views/monitoring.overview.items.php
957
%%WWWDIR%%/include/views/monitoring.overview.triggers.php
958
%%WWWDIR%%/include/views/monitoring.screen.constructor.edit.php
959
%%WWWDIR%%/include/views/monitoring.screen.constructor.list.php
960
%%WWWDIR%%/include/views/monitoring.screen.edit.php
961
%%WWWDIR%%/include/views/monitoring.screen.list.php
962
%%WWWDIR%%/include/views/monitoring.screen.php
963
%%WWWDIR%%/include/views/monitoring.slideconf.edit.php
964
%%WWWDIR%%/include/views/monitoring.slideconf.list.php
965
%%WWWDIR%%/include/views/monitoring.slides.php
966
%%WWWDIR%%/include/views/monitoring.sysmap.constructor.php
967
%%WWWDIR%%/include/views/monitoring.sysmap.edit.php
968
%%WWWDIR%%/include/views/monitoring.sysmap.list.php
969
%%WWWDIR%%/include/views/reports.toptriggers.php
970
%%WWWDIR%%/index.php
971
%%WWWDIR%%/index_http.php
972
%%WWWDIR%%/index_sso.php
973
%%WWWDIR%%/items.php
974
%%WWWDIR%%/js/browsers.js
975
%%WWWDIR%%/js/chkbxrange.js
976
%%WWWDIR%%/js/class.base-component.js
977
%%WWWDIR%%/js/class.bbcode.js
978
%%WWWDIR%%/js/class.browsertab.js
979
%%WWWDIR%%/js/class.calendar.js
980
%%WWWDIR%%/js/class.cclock.js
981
%%WWWDIR%%/js/class.cdate.js
982
%%WWWDIR%%/js/class.cdebug.js
983
%%WWWDIR%%/js/class.cmap.js
984
%%WWWDIR%%/js/class.cnavtree.js
985
%%WWWDIR%%/js/class.cookie.js
986
%%WWWDIR%%/js/class.coverride.js
987
%%WWWDIR%%/js/class.crangecontrol.js
988
%%WWWDIR%%/js/class.cscreen.js
989
%%WWWDIR%%/js/class.csuggest.js
990
%%WWWDIR%%/js/class.csvggraph.js
991
%%WWWDIR%%/js/class.ctree.js
992
%%WWWDIR%%/js/class.curl.js
993
%%WWWDIR%%/js/class.cverticalaccordion.js
994
%%WWWDIR%%/js/class.cviewswitcher.js
995
%%WWWDIR%%/js/class.localstorage.js
996
%%WWWDIR%%/js/class.mapWidget.js
997
%%WWWDIR%%/js/class.menu-item.js
998
%%WWWDIR%%/js/class.menu.js
999
%%WWWDIR%%/js/class.notification.collection.js
1000
%%WWWDIR%%/js/class.notification.js
1001
%%WWWDIR%%/js/class.notifications.audio.js
1002
%%WWWDIR%%/js/class.notifications.js
1003
%%WWWDIR%%/js/class.overlay.js
1004
%%WWWDIR%%/js/class.overlaycollection.js
1005
%%WWWDIR%%/js/class.pmaster.js
1006
%%WWWDIR%%/js/class.rpc.js
1007
%%WWWDIR%%/js/class.scrollable.js
1008
%%WWWDIR%%/js/class.sidebar.js
1009
%%WWWDIR%%/js/class.template.js
1010
%%WWWDIR%%/js/colorpicker.js
1011
%%WWWDIR%%/js/common.js
1012
%%WWWDIR%%/js/csvggraphwidget.js
1013
%%WWWDIR%%/js/dashboard.grid.js
1014
%%WWWDIR%%/js/flickerfreescreen.js
1015
%%WWWDIR%%/js/functions.js
1016
%%WWWDIR%%/js/gtlc.js
1017
%%WWWDIR%%/js/init.js
1018
%%WWWDIR%%/js/inputsecret.js
1019
%%WWWDIR%%/js/layout.mode.js
1020
%%WWWDIR%%/js/macrovalue.js
1021
%%WWWDIR%%/js/main.js
1022
%%WWWDIR%%/js/menupopup.js
1023
%%WWWDIR%%/js/multilineinput.js
1024
%%WWWDIR%%/js/multiselect.js
1025
%%WWWDIR%%/js/pages/items.js
1026
%%WWWDIR%%/js/pages/popup.condition.common.js
1027
%%WWWDIR%%/js/pages/popup.operation.common.js
1028
%%WWWDIR%%/js/servercheck.js
1029
%%WWWDIR%%/js/textareaflexible.js
1030
%%WWWDIR%%/js/vector/class.svg.canvas.js
1031
%%WWWDIR%%/js/vector/class.svg.map.js
1032
%%WWWDIR%%/js/vendors/jquery-ui.js
1033
%%WWWDIR%%/js/vendors/jquery.js
1034
%%WWWDIR%%/jsLoader.php
1035
%%WWWDIR%%/jsrpc.php
1036
%%WWWDIR%%/local/.htaccess
1037
%%WWWDIR%%/local/README
1038
%%WWWDIR%%/locale/README
1039
%%WWWDIR%%/locale/add_new_language.sh
1040
%%WWWDIR%%/locale/bg/LC_MESSAGES/frontend.mo
1041
%%WWWDIR%%/locale/bg/LC_MESSAGES/frontend.po
1042
%%WWWDIR%%/locale/ca/LC_MESSAGES/frontend.mo
1043
%%WWWDIR%%/locale/ca/LC_MESSAGES/frontend.po
1044
%%WWWDIR%%/locale/cs/LC_MESSAGES/frontend.mo
1045
%%WWWDIR%%/locale/cs/LC_MESSAGES/frontend.po
1046
%%WWWDIR%%/locale/de/LC_MESSAGES/frontend.mo
1047
%%WWWDIR%%/locale/de/LC_MESSAGES/frontend.po
1048
%%WWWDIR%%/locale/el/LC_MESSAGES/frontend.mo
1049
%%WWWDIR%%/locale/el/LC_MESSAGES/frontend.po
1050
%%WWWDIR%%/locale/en_US/LC_MESSAGES/frontend.mo
1051
%%WWWDIR%%/locale/en_US/LC_MESSAGES/frontend.po
1052
%%WWWDIR%%/locale/es/LC_MESSAGES/frontend.mo
1053
%%WWWDIR%%/locale/es/LC_MESSAGES/frontend.po
1054
%%WWWDIR%%/locale/fa/LC_MESSAGES/frontend.mo
1055
%%WWWDIR%%/locale/fa/LC_MESSAGES/frontend.po
1056
%%WWWDIR%%/locale/fi/LC_MESSAGES/frontend.mo
1057
%%WWWDIR%%/locale/fi/LC_MESSAGES/frontend.po
1058
%%WWWDIR%%/locale/fr/LC_MESSAGES/frontend.mo
1059
%%WWWDIR%%/locale/fr/LC_MESSAGES/frontend.po
1060
%%WWWDIR%%/locale/he/LC_MESSAGES/frontend.mo
1061
%%WWWDIR%%/locale/he/LC_MESSAGES/frontend.po
1062
%%WWWDIR%%/locale/hu/LC_MESSAGES/frontend.mo
1063
%%WWWDIR%%/locale/hu/LC_MESSAGES/frontend.po
1064
%%WWWDIR%%/locale/id/LC_MESSAGES/frontend.mo
1065
%%WWWDIR%%/locale/id/LC_MESSAGES/frontend.po
1066
%%WWWDIR%%/locale/it/LC_MESSAGES/frontend.mo
1067
%%WWWDIR%%/locale/it/LC_MESSAGES/frontend.po
1068
%%WWWDIR%%/locale/ja/LC_MESSAGES/frontend.mo
1069
%%WWWDIR%%/locale/ja/LC_MESSAGES/frontend.po
1070
%%WWWDIR%%/locale/ka/LC_MESSAGES/frontend.mo
1071
%%WWWDIR%%/locale/ka/LC_MESSAGES/frontend.po
1072
%%WWWDIR%%/locale/ko/LC_MESSAGES/frontend.mo
1073
%%WWWDIR%%/locale/ko/LC_MESSAGES/frontend.po
1074
%%WWWDIR%%/locale/lt/LC_MESSAGES/frontend.mo
1075
%%WWWDIR%%/locale/lt/LC_MESSAGES/frontend.po
1076
%%WWWDIR%%/locale/lv/LC_MESSAGES/frontend.mo
1077
%%WWWDIR%%/locale/lv/LC_MESSAGES/frontend.po
1078
%%WWWDIR%%/locale/make_mo.sh
1079
%%WWWDIR%%/locale/nb/LC_MESSAGES/frontend.mo
1080
%%WWWDIR%%/locale/nb/LC_MESSAGES/frontend.po
1081
%%WWWDIR%%/locale/nl/LC_MESSAGES/frontend.mo
1082
%%WWWDIR%%/locale/nl/LC_MESSAGES/frontend.po
1083
%%WWWDIR%%/locale/pl/LC_MESSAGES/frontend.mo
1084
%%WWWDIR%%/locale/pl/LC_MESSAGES/frontend.po
1085
%%WWWDIR%%/locale/pt_BR/LC_MESSAGES/frontend.mo
1086
%%WWWDIR%%/locale/pt_BR/LC_MESSAGES/frontend.po
1087
%%WWWDIR%%/locale/pt_PT/LC_MESSAGES/frontend.mo
1088
%%WWWDIR%%/locale/pt_PT/LC_MESSAGES/frontend.po
1089
%%WWWDIR%%/locale/ro/LC_MESSAGES/frontend.mo
1090
%%WWWDIR%%/locale/ro/LC_MESSAGES/frontend.po
1091
%%WWWDIR%%/locale/ru/LC_MESSAGES/frontend.mo
1092
%%WWWDIR%%/locale/ru/LC_MESSAGES/frontend.po
1093
%%WWWDIR%%/locale/sk/LC_MESSAGES/frontend.mo
1094
%%WWWDIR%%/locale/sk/LC_MESSAGES/frontend.po
1095
%%WWWDIR%%/locale/sv/LC_MESSAGES/frontend.mo
1096
%%WWWDIR%%/locale/sv/LC_MESSAGES/frontend.po
1097
%%WWWDIR%%/locale/tr/LC_MESSAGES/frontend.mo
1098
%%WWWDIR%%/locale/tr/LC_MESSAGES/frontend.po
1099
%%WWWDIR%%/locale/uk/LC_MESSAGES/frontend.mo
1100
%%WWWDIR%%/locale/uk/LC_MESSAGES/frontend.po
1101
%%WWWDIR%%/locale/update_po.sh
1102
%%WWWDIR%%/locale/vi/LC_MESSAGES/frontend.mo
1103
%%WWWDIR%%/locale/vi/LC_MESSAGES/frontend.po
1104
%%WWWDIR%%/locale/zh_CN/LC_MESSAGES/frontend.mo
1105
%%WWWDIR%%/locale/zh_CN/LC_MESSAGES/frontend.po
1106
%%WWWDIR%%/locale/zh_TW/LC_MESSAGES/frontend.mo
1107
%%WWWDIR%%/locale/zh_TW/LC_MESSAGES/frontend.po
1108
%%WWWDIR%%/maintenance.php
1109
%%WWWDIR%%/map.import.php
1110
%%WWWDIR%%/map.php
1111
%%WWWDIR%%/overview.php
1112
%%WWWDIR%%/queue.php
1113
%%WWWDIR%%/report2.php
1114
%%WWWDIR%%/report4.php
1115
%%WWWDIR%%/robots.txt
1116
%%WWWDIR%%/screen.import.php
1117
%%WWWDIR%%/screenconf.php
1118
%%WWWDIR%%/screenedit.php
1119
%%WWWDIR%%/screens.php
1120
%%WWWDIR%%/services.php
1121
%%WWWDIR%%/setup.php
1122
%%WWWDIR%%/slideconf.php
1123
%%WWWDIR%%/slides.php
1124
%%WWWDIR%%/srv_status.php
1125
%%WWWDIR%%/sysmap.php
1126
%%WWWDIR%%/sysmaps.php
1127
%%WWWDIR%%/templates.php
1128
%%WWWDIR%%/toptriggers.php
1129
%%WWWDIR%%/tr_events.php
1130
%%WWWDIR%%/trigger_prototypes.php
1131
%%WWWDIR%%/triggers.php
1132
%%WWWDIR%%/vendor/php-saml/CHANGELOG
1133
%%WWWDIR%%/vendor/php-saml/LICENSE
1134
%%WWWDIR%%/vendor/php-saml/README.md
1135
%%WWWDIR%%/vendor/php-saml/_toolkit_loader.php
1136
%%WWWDIR%%/vendor/php-saml/advanced_settings_example.php
1137
%%WWWDIR%%/vendor/php-saml/certs/README
1138
%%WWWDIR%%/vendor/php-saml/composer.json
1139
%%WWWDIR%%/vendor/php-saml/phpunit.xml
1140
%%WWWDIR%%/vendor/php-saml/settings_example.php
1141
%%WWWDIR%%/vendor/php-saml/src/Saml2/Auth.php
1142
%%WWWDIR%%/vendor/php-saml/src/Saml2/AuthnRequest.php
1143
%%WWWDIR%%/vendor/php-saml/src/Saml2/Constants.php
1144
%%WWWDIR%%/vendor/php-saml/src/Saml2/Error.php
1145
%%WWWDIR%%/vendor/php-saml/src/Saml2/IdPMetadataParser.php
1146
%%WWWDIR%%/vendor/php-saml/src/Saml2/LogoutRequest.php
1147
%%WWWDIR%%/vendor/php-saml/src/Saml2/LogoutResponse.php
1148
%%WWWDIR%%/vendor/php-saml/src/Saml2/Metadata.php
1149
%%WWWDIR%%/vendor/php-saml/src/Saml2/Response.php
1150
%%WWWDIR%%/vendor/php-saml/src/Saml2/Settings.php
1151
%%WWWDIR%%/vendor/php-saml/src/Saml2/Utils.php
1152
%%WWWDIR%%/vendor/php-saml/src/Saml2/ValidationError.php
1153
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-assertion-2.0.xsd
1154
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-authn-context-2.0.xsd
1155
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-authn-context-types-2.0.xsd
1156
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-metadata-2.0.xsd
1157
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-protocol-2.0.xsd
1158
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-metadata-attr.xsd
1159
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-saml-attribute-ext.xsd
1160
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-saml-metadata-algsupport-v1.0.xsd
1161
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-saml-metadata-ui-v1.0.xsd
1162
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/xenc-schema.xsd
1163
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/xml.xsd
1164
%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/xmldsig-core-schema.xsd
1165
%%WWWDIR%%/vendor/php-saml/src/Saml2/version.json
1166
%%WWWDIR%%/vendor/xmlseclibs/CHANGELOG.txt
1167
%%WWWDIR%%/vendor/xmlseclibs/LICENSE
1168
%%WWWDIR%%/vendor/xmlseclibs/README.md
1169
%%WWWDIR%%/vendor/xmlseclibs/composer.json
1170
%%WWWDIR%%/vendor/xmlseclibs/src/Utils/XPath.php
1171
%%WWWDIR%%/vendor/xmlseclibs/src/XMLSecEnc.php
1172
%%WWWDIR%%/vendor/xmlseclibs/src/XMLSecurityDSig.php
1173
%%WWWDIR%%/vendor/xmlseclibs/src/XMLSecurityKey.php
1174
%%WWWDIR%%/vendor/xmlseclibs/xmlseclibs.php
1175
%%WWWDIR%%/zabbix.php
1176
@dir %%WWWDIR%%/conf/certs
1177
@dir %%WWWDIR%%/local/app/controllers
1178
@dir %%WWWDIR%%/local/app/partials
1179
@dir %%WWWDIR%%/local/app/views
1180
@dir %%WWWDIR%%/local/conf
1181
@dir %%WWWDIR%%/modules
(-)b/net-mgmt/zabbix5-server/pkg-plist.java (+11 lines)
Added Link Here
1
sbin/zabbix_java/shutdown.sh
2
sbin/zabbix_java/lib/logback-console.xml
3
sbin/zabbix_java/lib/logback-core-0.9.27.jar
4
sbin/zabbix_java/lib/logback-classic-0.9.27.jar
5
sbin/zabbix_java/lib/logback.xml
6
sbin/zabbix_java/lib/slf4j-api-1.6.1.jar
7
sbin/zabbix_java/lib/android-json-4.3_r3.1.jar
8
@sample sbin/zabbix_java/settings.sh.sample
9
sbin/zabbix_java/startup.sh
10
sbin/zabbix_java/bin/zabbix-java-gateway-%%PORTVERSION%%.jar
11
@dir(zabbix,zabbix,755) /var/run/zabbix

Return to bug 246447