summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-03-14 14:55:37 +0000
committersasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2008-03-14 14:55:37 +0000
commitebec5b63bb5dad1eb3d2badb32e55a319ebca147 (patch)
treeccd9a674a2c9f013369973d221b50cb057bda766
parent9909bafb823b9231e33e569744e2ddb0baa3a294 (diff)
downloadzabbix-ebec5b63bb5dad1eb3d2badb32e55a319ebca147.tar.gz
zabbix-ebec5b63bb5dad1eb3d2badb32e55a319ebca147.tar.xz
zabbix-ebec5b63bb5dad1eb3d2badb32e55a319ebca147.zip
- [DEV-110] Heartbeat messages
git-svn-id: svn://svn.zabbix.com/trunk@5488 97f52cf1-0a1b-0410-bd0e-c28be96e8082
-rw-r--r--configure.in1
-rw-r--r--include/zbxjson.h1
-rw-r--r--misc/conf/zabbix_proxy.conf7
-rw-r--r--src/zabbix_proxy/Makefile.am2
-rw-r--r--src/zabbix_proxy/heart/Makefile.am5
-rw-r--r--src/zabbix_proxy/heart/heart.c116
-rw-r--r--src/zabbix_proxy/heart/heart.h27
-rw-r--r--src/zabbix_proxy/proxy.c100
8 files changed, 218 insertions, 41 deletions
diff --git a/configure.in b/configure.in
index cf884b08..e5741b0e 100644
--- a/configure.in
+++ b/configure.in
@@ -1072,6 +1072,7 @@ AC_OUTPUT([
src/zabbix_server/utils/Makefile
src/zabbix_server/watchdog/Makefile
src/zabbix_proxy/Makefile
+ src/zabbix_proxy/heart/Makefile
src/zabbix_proxy/housekeeper/Makefile
src/zabbix_proxy/proxyconfig/Makefile
src/zabbix_proxy/datasender/Makefile
diff --git a/include/zbxjson.h b/include/zbxjson.h
index 820b6b1a..f0d702ce 100644
--- a/include/zbxjson.h
+++ b/include/zbxjson.h
@@ -47,6 +47,7 @@
#define ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS "active checks"
#define ZBX_PROTO_VALUE_PROXY_CONFIG "proxy config"
+#define ZBX_PROTO_VALUE_PROXY_HEARTBEAT "proxy heartbeat"
#define ZBX_PROTO_VALUE_DISCOVERY_DATA "discovery data"
#define ZBX_PROTO_VALUE_HISTORY_DATA "history data"
#define ZBX_PROTO_VALUE_SENDER_DATA "sender data"
diff --git a/misc/conf/zabbix_proxy.conf b/misc/conf/zabbix_proxy.conf
index 1db9d08e..637b1c22 100644
--- a/misc/conf/zabbix_proxy.conf
+++ b/misc/conf/zabbix_proxy.conf
@@ -54,6 +54,13 @@ Hostname=proxy
# if this parameter is missing.
#ListenIP=127.0.0.1
+# How often ZABBIX will perform sending hearbeat message
+# (in seconds)
+# Default value is 60 seconds
+# Set to 0 to disable heartbeat messages
+# This parameter must be between 0 and 3600
+#HeartbeatFrequency=60
+
# How often ZABBIX will perform housekeeping procedure
# (in hours)
# Default value is 1 hour
diff --git a/src/zabbix_proxy/Makefile.am b/src/zabbix_proxy/Makefile.am
index 27dfd878..57b72d6d 100644
--- a/src/zabbix_proxy/Makefile.am
+++ b/src/zabbix_proxy/Makefile.am
@@ -1,6 +1,7 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = \
+ heart \
../zabbix_server/dbsyncer \
../zabbix_server/discoverer \
housekeeper \
@@ -21,6 +22,7 @@ zabbix_proxy_SOURCES = \
proxy.c
zabbix_proxy_LDADD = \
+ heart/libzbxheart.a \
$(top_srcdir)/src/zabbix_server/dbsyncer/libzbxdbsyncer.a \
$(top_srcdir)/src/zabbix_server/discoverer/libzbxdiscoverer.a \
housekeeper/libzbxhousekeeper.a \
diff --git a/src/zabbix_proxy/heart/Makefile.am b/src/zabbix_proxy/heart/Makefile.am
new file mode 100644
index 00000000..ff70f185
--- /dev/null
+++ b/src/zabbix_proxy/heart/Makefile.am
@@ -0,0 +1,5 @@
+## Process this file with automake to produce Makefile.in
+
+noinst_LIBRARIES = libzbxheart.a
+
+libzbxheart_a_SOURCES = heart.c heart.h
diff --git a/src/zabbix_proxy/heart/heart.c b/src/zabbix_proxy/heart/heart.c
new file mode 100644
index 00000000..e7bc690a
--- /dev/null
+++ b/src/zabbix_proxy/heart/heart.c
@@ -0,0 +1,116 @@
+/*
+** ZABBIX
+** Copyright (C) 2000-2005 SIA Zabbix
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**/
+
+#include "common.h"
+#include "daemon.h"
+#include "log.h"
+#include "zbxjson.h"
+
+#include "heart.h"
+#include "../servercomms.h"
+
+/******************************************************************************
+ * *
+ * Function: process_nodes *
+ * *
+ * Purpose: calculates checks sum of config data *
+ * *
+ * Parameters: *
+ * *
+ * Return value: *
+ * *
+ * Author: Aleksander Vladishev *
+ * *
+ * Comments: never returns *
+ * *
+ ******************************************************************************/
+static void send_heartbeat()
+{
+ zbx_sock_t sock;
+ struct zbx_json j;
+ int res;
+
+ zabbix_log(LOG_LEVEL_DEBUG, "In process_configuration_sync()");
+
+ zbx_json_init(&j, 128);
+ zbx_json_addstring(&j, "request", ZBX_PROTO_VALUE_PROXY_HEARTBEAT, ZBX_JSON_TYPE_STRING);
+ zbx_json_addstring(&j, "host", CONFIG_HOSTNAME, ZBX_JSON_TYPE_STRING);
+
+ if (FAIL == connect_to_server(&sock, CONFIG_HEARTBEAT_FREQUENCY)) /* alarm */
+ return;
+
+ if (FAIL == (res = put_data_to_server(&sock, &j)))
+ zabbix_log(LOG_LEVEL_WARNING, "Heartbeat message sendig failed");
+
+ disconnect_server(&sock);
+}
+
+/******************************************************************************
+ * *
+ * Function: main_watchdog_loop *
+ * *
+ * Purpose: periodically send heartbeat message to the server *
+ * *
+ * Parameters: *
+ * *
+ * Return value: *
+ * *
+ * Author: Alexei Vladishev *
+ * *
+ * Comments: check database availability every 60 seconds (hardcoded) *
+ * *
+ ******************************************************************************/
+void main_heart_loop()
+{
+ struct sigaction phan;
+ int start, sleeptime;
+
+ zabbix_log(LOG_LEVEL_WARNING, "In main_heart_loop()");
+
+ phan.sa_handler = child_signal_handler;
+ sigemptyset(&phan.sa_mask);
+ phan.sa_flags = 0;
+ sigaction(SIGALRM, &phan, NULL);
+
+ if (CONFIG_HEARTBEAT_FREQUENCY == 0) {
+ zbx_setproctitle("heartbeat sender [do nothing]");
+
+ for (;;) /* Do nothing */
+ sleep(3600);
+ }
+
+
+ for (;;) {
+ start = time(NULL);
+
+ zbx_setproctitle("heartbeat sender [sending heartbeat message]");
+
+ send_heartbeat();
+
+ sleeptime = CONFIG_HEARTBEAT_FREQUENCY - (time(NULL) - start);
+
+ if (sleeptime > 0) {
+ zbx_setproctitle("heartbeat sender [sleeping for %d seconds]",
+ sleeptime);
+ zabbix_log(LOG_LEVEL_DEBUG, "Sleeping for %d seconds",
+ sleeptime);
+ sleep(sleeptime);
+ }
+ }
+}
diff --git a/src/zabbix_proxy/heart/heart.h b/src/zabbix_proxy/heart/heart.h
new file mode 100644
index 00000000..6f4e565a
--- /dev/null
+++ b/src/zabbix_proxy/heart/heart.h
@@ -0,0 +1,27 @@
+/*
+** ZABBIX
+** Copyright (C) 2000-2005 SIA Zabbix
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**/
+
+#ifndef ZABBIX_HEART_H
+#define ZABBIX_HEART_H
+
+extern int CONFIG_HEARTBEAT_FREQUENCY;
+
+void main_heart_loop();
+
+#endif
diff --git a/src/zabbix_proxy/proxy.c b/src/zabbix_proxy/proxy.c
index c3341b2f..63127342 100644
--- a/src/zabbix_proxy/proxy.c
+++ b/src/zabbix_proxy/proxy.c
@@ -49,6 +49,7 @@
#include "../zabbix_server/trapper/trapper.h"
#include "proxyconfig/proxyconfig.h"
#include "datasender/datasender.h"
+#include "heart/heart.h"
/*
#define LISTENQ 1024
@@ -111,6 +112,7 @@ static char shortopts[] =
pid_t *threads=NULL;
+int CONFIG_CONFSYNCER_FORKS = 1;
int CONFIG_DATASENDER_FORKS = 1;
int CONFIG_DBSYNCER_FORKS = 0;//1;
int CONFIG_DISCOVERER_FORKS = 1;
@@ -131,6 +133,8 @@ int CONFIG_HOUSEKEEPING_FREQUENCY = 1; /* h */
int CONFIG_PROXY_LOCAL_BUFFER = 0; /* 24h */
int CONFIG_PROXY_OFFLINE_BUFFER = 1; /* 720h */
+int CONFIG_HEARTBEAT_FREQUENCY = 60;
+
int CONFIG_PROXYCONFIG_FREQUENCY = 120;
int CONFIG_DATASENDER_FREQUENCY = 10;
@@ -213,6 +217,7 @@ void init_config(void)
{"ProxyLocalBuffer",&CONFIG_PROXY_LOCAL_BUFFER,0,TYPE_INT,PARM_OPT,0,720},
{"ProxyOfflineBuffer",&CONFIG_PROXY_OFFLINE_BUFFER,0,TYPE_INT,PARM_OPT,1,720},
+ {"HeartbeatFrequency",&CONFIG_HEARTBEAT_FREQUENCY,0,TYPE_INT,PARM_OPT,0,3600},
{"DataSenderFrequency",&CONFIG_DATASENDER_FREQUENCY,0,TYPE_INT,PARM_OPT,1,3600},
/* {"SenderFrequency",&CONFIG_SENDER_FREQUENCY,0,TYPE_INT,PARM_OPT,5,3600},*/
@@ -490,10 +495,10 @@ int MAIN_ZABBIX_ENTRY(void)
}*/
DBinit();
- threads = calloc(1 + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS
- + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS,
- sizeof(pid_t));
+ threads = calloc(1 + CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS
+ + CONFIG_DBSYNCER_FORKS, sizeof(pid_t));
if (CONFIG_TRAPPERD_FORKS > 0) {
if (FAIL == zbx_tcp_listen(&listen_sock, CONFIG_LISTEN_IP, (unsigned short)CONFIG_LISTEN_PORT)) {
@@ -503,9 +508,10 @@ int MAIN_ZABBIX_ENTRY(void)
}
for ( i = 1;
- i <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS
- + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS
- + CONFIG_DISCOVERER_FORKS + CONFIG_DBSYNCER_FORKS;
+ i <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS
+ + CONFIG_DBSYNCER_FORKS;
i++)
{
if ((pid = zbx_fork()) == 0) {
@@ -519,24 +525,30 @@ int MAIN_ZABBIX_ENTRY(void)
if (server_num == 0) {
init_main_process();
- zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Configuration syncer]",
+ zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Heartbeat sender]",
server_num);
- main_proxyconfig_loop(server_num);
-
+ main_heart_loop();
+
for (;;)
zbx_sleep(3600);
}
+ if (server_num <= CONFIG_CONFSYNCER_FORKS)
+ {
+ zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Configuration syncer]",
+ server_num);
- if (server_num <= CONFIG_DATASENDER_FORKS)
+ main_proxyconfig_loop(server_num);
+ }
+ else if (server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS)
{
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Datasender]",
server_num);
main_datasender_loop();
}
- else if (server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS)
+ else if (server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS)
{
#ifdef HAVE_SNMP
init_snmp("zabbix_server");
@@ -545,34 +557,37 @@ int MAIN_ZABBIX_ENTRY(void)
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Poller. SNMP:"SNMP_FEATURE_STATUS"]",
server_num);
- main_poller_loop(ZBX_PROCESS_PROXY, ZBX_POLLER_TYPE_NORMAL, server_num - CONFIG_DATASENDER_FORKS);
+ main_poller_loop(ZBX_PROCESS_PROXY, ZBX_POLLER_TYPE_NORMAL, server_num - (CONFIG_CONFSYNCER_FORKS
+ + CONFIG_DATASENDER_FORKS));
}
- else if (server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS)
+ else if (server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS)
{
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Trapper]",
server_num);
child_trapper_main(ZBX_PROCESS_PROXY, &listen_sock);
}
- else if(server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS)
+ else if(server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS)
{
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [ICMP pinger]",
server_num);
- main_pinger_loop(ZBX_PROCESS_PROXY, server_num - (CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
- + CONFIG_TRAPPERD_FORKS));
+ main_pinger_loop(ZBX_PROCESS_PROXY, server_num - (CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS
+ + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS));
}
- else if(server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS)
+ else if(server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS)
{
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Housekeeper]",
server_num);
main_housekeeper_loop();
}
- else if(server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS)
+ else if(server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS)
{
#ifdef HAVE_SNMP
init_snmp("zabbix_server");
@@ -582,23 +597,24 @@ int MAIN_ZABBIX_ENTRY(void)
server_num);
main_poller_loop(ZBX_PROCESS_PROXY, ZBX_POLLER_TYPE_UNREACHABLE, server_num
- - (CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS));
+ - (CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS));
}
- else if (server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS
- + CONFIG_HTTPPOLLER_FORKS)
+ else if (server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS)
{
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [HTTP Poller]",
server_num);
- main_httppoller_loop(ZBX_PROCESS_PROXY, server_num - (CONFIG_DATASENDER_FORKS
- + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS
- + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS));
+ main_httppoller_loop(ZBX_PROCESS_PROXY, server_num - (CONFIG_CONFSYNCER_FORKS
+ + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
+ + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS));
}
- else if (server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS
- + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS)
+ else if (server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS)
{
#ifdef HAVE_SNMP
init_snmp("zabbix_server");
@@ -607,14 +623,15 @@ int MAIN_ZABBIX_ENTRY(void)
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [Discoverer. SNMP:"SNMP_FEATURE_STATUS"]",
server_num);
- main_discoverer_loop(ZBX_PROCESS_PROXY, server_num - (CONFIG_DATASENDER_FORKS
- + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS
- + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS
+ main_discoverer_loop(ZBX_PROCESS_PROXY, server_num - (CONFIG_CONFSYNCER_FORKS
+ + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
+ + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS
+ CONFIG_HTTPPOLLER_FORKS));
}
- else if (server_num <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS
- + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS
- + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS + CONFIG_DBSYNCER_FORKS)
+ else if (server_num <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS + CONFIG_DISCOVERER_FORKS
+ + CONFIG_DBSYNCER_FORKS)
{
zabbix_log(LOG_LEVEL_WARNING, "server #%d started [DB Syncer]",
server_num);
@@ -633,8 +650,9 @@ void zbx_on_exit()
if (threads != NULL) {
for ( i = 1;
- i <= CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS
- + CONFIG_HOUSEKEEPER_FORKS + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS
+ i <= CONFIG_CONFSYNCER_FORKS + CONFIG_DATASENDER_FORKS + CONFIG_POLLER_FORKS
+ + CONFIG_TRAPPERD_FORKS + CONFIG_PINGER_FORKS + CONFIG_HOUSEKEEPER_FORKS
+ + CONFIG_UNREACHABLE_POLLER_FORKS + CONFIG_HTTPPOLLER_FORKS
+ CONFIG_DISCOVERER_FORKS + CONFIG_DBSYNCER_FORKS; i ++)
{
if (threads[i]) {