Commit 1da3c3ae authored by Vladimir Bashkirtsev's avatar Vladimir Bashkirtsev

Merge branch 'master' of https://git.iszf.irk.ru/certo/zabbix

parents d9bd9336 0b1ebcf7
......@@ -52,6 +52,7 @@ define ZABBIX_AGENT_CONFIG
config zabbix 'agent'
option server ''
option serveractive ''
endef
export ZABBIX_AGENT_CONFIG
......@@ -138,3 +139,59 @@ define HTTPD_CONF
#
endef
export HTTPD_CONF
proxy: zabbix-proxy-service zabbix-proxy-config
tar xf zabbix-3.4.14.tar.gz
cd zabbix-3.4.14 && ./configure --prefix=/usr --sysconfdir=/etc --enable-proxy --with-openssl --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
$(MAKE) -C zabbix-3.4.14
$(MAKE) -C zabbix-3.4.14 install
install -v -Dm755 zabbix_proxy-configure /usr/sbin/zabbix_proxy-configure
sed -e 's|^Server=.*|# Server=|' -i /etc/zabbix_proxy.conf
sed -e 's|^Hostname=.*|# Hostname=|' -i /etc/zabbix_proxy.conf
sed -e 's|.*LogType=.*|LogType=system|' -i /etc/zabbix_proxy.conf
sed -e 's|^LogFile=.*|# LogFile=|' -i /etc/zabbix_proxy.conf
sed -e 's|^# EnableRemoteCommands=.*|EnableRemoteCommands=1|' -i /etc/zabbix_proxy.conf
sed -e 's|.*PidFile=.*|PidFile=/run/zabbix/zabbix_proxy.pid|' -i /etc/zabbix_proxy.conf
sed -e 's|^DBName=.*|# DBName=|' -i /etc/zabbix_proxy.conf
sed -e 's|^DBUser=.*|# DBUser=|' -i /etc/zabbix_proxy.conf
sed -e 's|^# Include=/usr/local/etc/zabbix_proxy\.conf\.d/\*\.conf|Include=/etc/zabbix_proxy.conf.d/*.conf|' -i /etc/zabbix_proxy.conf
@echo "d /run/zabbix 755 zabbix zabbix -" > /usr/lib/tmpfiles.d/zabbix.conf
chmod u+s /bin/ping
@echo "$$ZABBIX_PROXY_SERVICE" > /lib/systemd/system/zabbix-proxy.service
systemctl enable zabbix-proxy.service
@echo "$$ZABBIX_PROXY_CONFIG" >> /etc/config/zabbix
install -v -Dm755 zabbix_proxy /usr/share/easycwmp/functions/zabbix
echo "Defaults !requiretty" >> /etc/sudoers
echo "ALL ALL=(ALL) NOPASSWD: /usr/bin/nmap" >> /etc/sudoers
rm -rf zabbix-3.4.14
zabbix-proxy-service:
define ZABBIX_PROXY_SERVICE
[Unit]
Description=Zabbix Proxy
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/usr/sbin/zabbix_proxy-configure
ExecStart=/usr/sbin/zabbix_proxy
ExecReload=/usr/sbin/zabbix_proxy -R config_cache_reload
ExecStartPost=sleep 3
PIDFile=/run/zabbix/zabbix_proxy.pid
Restart=always
RestartSec=100
[Install]
WantedBy=multi-user.target
endef
export ZABBIX_PROXY_SERVICE
zabbix-proxy-config:
define ZABBIX_PROXY_CONFIG
config zabbix 'proxy'
option server ''
option startpollers '5'
option cachesize '32M'
endef
export ZABBIX_PROXY_CONFIG
......@@ -17,6 +17,7 @@ entry_execute_method_root_Zabbix() {
common_execute_method_obj "$DMROOT.Zabbix." "0"
common_execute_method_obj "$DMROOT.Zabbix.Agent." "0"
common_execute_method_param "$DMROOT.Zabbix.Agent.Server" "1" "zabbix_get_agent_server" "zabbix_set_agent_server"
common_execute_method_param "$DMROOT.Zabbix.Agent.ServerActive" "1" "zabbix_get_agent_serveractive" "zabbix_set_agent_serveractive"
return 0;
;;
esac
......@@ -39,3 +40,17 @@ zabbix_set_agent_server() {
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_agent_serveractive() {
echo `$UCI_GET zabbix.agent.serveractive`
}
zabbix_set_agent_serveractive() {
local serveractive=`$UCI_GET zabbix.agent.serveractive`
if [ "$serveractive" != "$1" ]; then
$UCI_SET zabbix.agent.serveractive="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
#!/bin/sh
SERVER=`/sbin/uci -q get zabbix.agent.server`
SERVERACTIVE=`/sbin/uci -q get zabbix.agent.serveractive`
if [ ! -z "$SERVER" ]; then
echo "Server=$SERVER" > /etc/zabbix_agentd.conf.d/zabbix_agent.conf
echo "ServerActive=$SERVER" >> /etc/zabbix_agentd.conf.d/zabbix_agent.conf
else
exit 1
fi
if [ ! -z "$SERVERACTIVE" ]; then
echo "ServerActive=$SERVERACTIVE" >> /etc/zabbix_agentd.conf.d/zabbix_agent.conf
fi
#!/bin/sh
#common_execute_method_param "$parameter" "$permission" "$get_cmd" "$set_cmd" "xsd:$type" "$forcedinform"
# $forcedinform should be set to 1 if the parameter is included in the inform message otherwise empty
# Default of $type = string
#############################
# Entry point functuons #
#############################
prefix_list="$prefix_list $DMROOT.Zabbix."
entry_execute_method_list="$entry_execute_method_list entry_execute_method_root_Zabbix"
entry_execute_method_list_forcedinform="$entry_execute_method_list_forcedinform entry_execute_method_root_Zabbix"
entry_execute_method_root_Zabbix() {
case "$1" in ""|"$DMROOT."|"$DMROOT.Zabbix."*)
common_execute_method_obj "$DMROOT.Zabbix." "0"
common_execute_method_obj "$DMROOT.Zabbix.Agent." "0"
common_execute_method_param "$DMROOT.Zabbix.Agent.Server" "1" "zabbix_get_agent_server" "zabbix_set_agent_server"
common_execute_method_param "$DMROOT.Zabbix.Agent.ServerActive" "1" "zabbix_get_agent_serveractive" "zabbix_set_agent_serveractive"
common_execute_method_obj "$DMROOT.Zabbix.Proxy." "0"
common_execute_method_param "$DMROOT.Zabbix.Proxy.Server" "1" "zabbix_get_proxy_server" "zabbix_set_proxy_server"
common_execute_method_param "$DMROOT.Zabbix.Proxy.StartPollers" "1" "zabbix_get_start_pollers" "zabbix_set_start_pollers"
common_execute_method_param "$DMROOT.Zabbix.Proxy.StartPingers" "1" "zabbix_get_start_pingers" "zabbix_set_start_pingers"
common_execute_method_param "$DMROOT.Zabbix.Proxy.CacheSize" "1" "zabbix_get_cache_size" "zabbix_set_cache_size"
return 0;
;;
esac
return $E_INVALID_PARAMETER_NAME;
}
#######################################
# Data model parameters functions #
#######################################
zabbix_get_agent_server() {
echo `$UCI_GET zabbix.agent.server`
}
zabbix_set_agent_server() {
local server=`$UCI_GET zabbix.agent.server`
if [ "$server" != "$1" ]; then
$UCI_SET zabbix.agent.server="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_agent_serveractive() {
echo `$UCI_GET zabbix.agent.serveractive`
}
zabbix_set_agent_serveractive() {
local serveractive=`$UCI_GET zabbix.agent.serveractive`
if [ "$serveractive" != "$1" ]; then
$UCI_SET zabbix.agent.serveractive="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_proxy_server() {
echo `$UCI_GET zabbix.proxy.server`
}
zabbix_set_proxy_server() {
local server=`$UCI_GET zabbix.proxy.server`
if [ "$server" != "$1" ]; then
$UCI_SET zabbix.proxy.server="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_start_pollers() {
echo `$UCI_GET zabbix.proxy.startpollers`
}
zabbix_set_start_pollers() {
local startpollers=`$UCI_GET zabbix.proxy.startpollers`
if [ "$startpollers" != "$1" ]; then
$UCI_SET zabbix.proxy.startpollers="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_start_pingers() {
echo `$UCI_GET zabbix.proxy.startpingers`
}
zabbix_set_start_pingers() {
local startpingers=`$UCI_GET zabbix.proxy.startpingers`
if [ "$startpingers" != "$1" ]; then
$UCI_SET zabbix.proxy.startpingers="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_cache_size() {
echo `$UCI_GET zabbix.proxy.cachesize`
}
zabbix_set_cache_size() {
local cachesize=`$UCI_GET zabbix.proxy.cachesize`
if [ "$cachesize" != "$1" ]; then
$UCI_SET zabbix.proxy.cachesize="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
#!/bin/sh
DBSERVER=`/sbin/uci -q get mysql.credentials.hostname`
DATABASE=`/sbin/uci -q get mysql.credentials.database`
USER=`/sbin/uci -q get mysql.credentials.username`
PASSWORD=`/sbin/uci -q get mysql.credentials.password`
SERVER=`/sbin/uci -q get zabbix.proxy.server`
START_POLLERS=`/sbin/uci -q get zabbix.proxy.startpollers`
START_PINGERS=`/sbin/uci -q get zabbix.proxy.startpingers`
CACHE_SIZE=`/sbin/uci -q get zabbix.proxy.cachesize`
if [ ! -z "$DBSERVER" ] && [ ! -z "$DATABASE" ] && [ ! -z "$USER" ] && [ ! -z "$PASSWORD" ] && [ ! -z "$SERVER" ]; then
echo "DBHost=$DBSERVER" > /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
echo "DBName=$DATABASE" >> /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
echo "DBUser=$USER" >> /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
echo "DBPassword=$PASSWORD" >> /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
echo "Server=$SERVER" >> /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
if [ ! -z "$START_POLLERS" ]; then
echo "StartPollers=$START_POLLERS" >> /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
fi
if [ ! -z "$START_PINGERS" ]; then
echo "StartPingers=$START_PINGERS" >> /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
fi
if [ ! -z "$CACHE_SIZE" ]; then
echo "CacheSize=$CACHE_SIZE" >> /etc/zabbix_proxy.conf.d/zabbix_proxy.conf
fi
else
exit 1
fi
......@@ -17,10 +17,12 @@ entry_execute_method_root_Zabbix() {
common_execute_method_obj "$DMROOT.Zabbix." "0"
common_execute_method_obj "$DMROOT.Zabbix.Agent." "0"
common_execute_method_param "$DMROOT.Zabbix.Agent.Server" "1" "zabbix_get_agent_server" "zabbix_set_agent_server"
common_execute_method_param "$DMROOT.Zabbix.Agent.ServerActive" "1" "zabbix_get_agent_serveractive" "zabbix_set_agent_serveractive"
common_execute_method_obj "$DMROOT.Zabbix.Server." "0"
common_execute_method_param "$DMROOT.Zabbix.Server.Server" "1" "zabbix_get_server_server" "zabbix_set_server_server"
common_execute_method_param "$DMROOT.Zabbix.Server.Name" "1" "zabbix_get_server_name" "zabbix_set_server_name"
common_execute_method_param "$DMROOT.Zabbix.Server.StartPollers" "1" "zabbix_get_start_pollers" "zabbix_set_start_pollers"
common_execute_method_param "$DMROOT.Zabbix.Server.StartPingers" "1" "zabbix_get_start_pingers" "zabbix_set_start_pingers"
common_execute_method_param "$DMROOT.Zabbix.Server.CacheSize" "1" "zabbix_get_cache_size" "zabbix_set_cache_size"
return 0;
;;
......@@ -45,6 +47,19 @@ zabbix_set_agent_server() {
fi
}
zabbix_get_agent_serveractive() {
echo `$UCI_GET zabbix.agent.serveractive`
}
zabbix_set_agent_serveractive() {
local serveractive=`$UCI_GET zabbix.agent.serveractive`
if [ "$serveractive" != "$1" ]; then
$UCI_SET zabbix.agent.serveractive="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_server_server() {
echo `$UCI_GET zabbix.server.hostname`
}
......@@ -84,6 +99,19 @@ zabbix_set_start_pollers() {
fi
}
zabbix_get_start_pingers() {
echo `$UCI_GET zabbix.server.startpingers`
}
zabbix_set_start_pingers() {
local startpingers=`$UCI_GET zabbix.server.startpingers`
if [ "$startpingers" != "$1" ]; then
$UCI_SET zabbix.server.startpingers="$1"
$UCI_COMMIT
chmod a+r /etc/config/zabbix
fi
}
zabbix_get_cache_size() {
echo `$UCI_GET zabbix.server.cachesize`
}
......
......@@ -5,6 +5,7 @@ DATABASE=`/sbin/uci -q get mysql.credentials.database`
USER=`/sbin/uci -q get mysql.credentials.username`
PASSWORD=`/sbin/uci -q get mysql.credentials.password`
START_POLLERS=`/sbin/uci -q get zabbix.server.startpollers`
START_PINGERS=`/sbin/uci -q get zabbix.server.startpingers`
CACHE_SIZE=`/sbin/uci -q get zabbix.server.cachesize`
if [ ! -z "$SERVER" ] && [ ! -z "$DATABASE" ] && [ ! -z "$USER" ] && [ ! -z "$PASSWORD" ]; then
......@@ -15,6 +16,9 @@ if [ ! -z "$SERVER" ] && [ ! -z "$DATABASE" ] && [ ! -z "$USER" ] && [ ! -z "$PA
if [ ! -z "$START_POLLERS" ]; then
echo "StartPollers=$START_POLLERS" >> /etc/zabbix_server.conf.d/zabbix_server.conf
fi
if [ ! -z "$START_PINGERS" ]; then
echo "StartPingers=$START_PINGERS" >> /etc/zabbix_server.conf.d/zabbix_server.conf
fi
if [ ! -z "$CACHE_SIZE" ]; then
echo "CacheSize=$CACHE_SIZE" >> /etc/zabbix_server.conf.d/zabbix_server.conf
fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment