55nfra_configure_monitoring_zabbix_init() {
66 print_debug "Using Zabbix Backend"
77
8- if var_true "${DEBUG_MODE}" ; then
9- ZABBIX_DEBUGLEVEL=4
10- fi
11-
128 if var_true "${ZABBIX_USER_SUDO}" ; then
139 grant_sudo zabbix
1410 fi
122118 esac
123119
124120 if [ -n "${ZABBIX_REMOTECOMMANDS_DENY}" ]; then
125- echo "DenyKey=system.run[${ZABBIX_REMOTECOMMANDS_DENY}]" >> "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}"
121+ echo "DenyKey=system.run[${ZABBIX_REMOTECOMMANDS_DENY}]" | silent tee -a "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}"
126122 fi
127123
128124 print_debug "Zabbix Agent - Generating Collection Configuration"
@@ -136,10 +132,10 @@ EOF
136132 esac
137133
138134 mkdir -p "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}".d
139- cat <<EOF > "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}".d/nfrastack-container_agent.conf
135+ cat <<EOF | silent tee "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}".d/nfrastack-container_agent.conf
140136# Zabbix Container Agent Configuration - Automatically Generated based on Operating System
141137# Find Companion Zabbix Server Templates at https://github.com/nfrastack/docker-${os}
142- # Autoregister=toica
138+ # Autoregister=toica,nfraca
143139
144140## Report on Container OS
145141UserParameter=agent.os,grep "PRETTY_NAME" /etc/os-release | cut -d '"' -f2
152148 chown -R "${ZABBIX_USER}":root \
153149 "${ZABBIX_AGENT_LOG_PATH}" \
154150 "${ZABBIX_CONFIG_PATH}"
155- chmod 775 "${ZABBIX_CONFIG_PATH}"
151+ chmod -R 550 "${ZABBIX_CONFIG_PATH}"
156152 create_logrotate zabbix-agent "${ZABBIX_AGENT_LOG_PATH%/}"/"${ZABBIX_AGENT_LOG_FILE}" zabbix-agent-${logship_version} "${ZABBIX_USER}" root
157153 print_notice "Container configured for monitoring with '${CONTAINER_MONITORING_BACKEND} ${ZABBIX_AGENT_TYPE}'"
158154}
@@ -164,11 +160,13 @@ nfra_configure_monitoring_zabbix_run() {
164160 print_debug "Starting classic Zabbix Agent"
165161 zabbix_command="zabbix_agentd"
166162 zabbix_agent_type="classic"
163+ ZABBIX_VERSION=$(${zabbix_command} --version | head -n1 | awk '{print $4}')
167164 ;;
168165 "2" | "m" | "n" | "modern" | "new" )
169166 print_debug "Starting modern Zabbix agent"
170167 zabbix_command="zabbix_agent2"
171168 zabbix_agent_type="modern"
169+ ZABBIX_VERSION=$(${zabbix_command} -V | head -n1 | awk '{print $3}')
172170 ;;
173171 * )
174172 print_debug "No known Zabbix agent type selected"
@@ -187,13 +185,15 @@ nfra_configure_monitoring_zabbix_run() {
187185 else
188186 ZABBIX_AUTOREGISTER_DNS_NAME="${ZABBIX_HOSTNAME}${ZABBIX_AUTOREGISTER_SUFFIX}"
189187 fi
190- sed -i "/HostInterface=.*/d" "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}"
191- sed -i "/^Include=.*/i HostInterface=${ZABBIX_AUTOREGISTER_DNS_NAME}" "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}"
188+ sed -i \
189+ -e "/HostInterface=.*/d" \
190+ -e "/^Include=.*/i HostInterface=${ZABBIX_AUTOREGISTER_DNS_NAME}" \
191+ "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}"
192192 fi
193193 fi
194194
195195 chown -R "${ZABBIX_USER}":root "${ZABBIX_CONFIG_PATH}"
196- chmod -R 0755 "${ZABBIX_CONFIG_PATH}"
196+ chmod -R 550 "${ZABBIX_CONFIG_PATH}"
197197
198198 if var_true "${CONTAINER_ENABLE_FIREWALL}" && var_true "${CONTAINER_ENABLE_FAIL2BAN}" ; then
199199 while [ ! -S "/var/run/fail2ban/fail2ban.sock" ] ; do
@@ -202,7 +202,7 @@ nfra_configure_monitoring_zabbix_run() {
202202 setfacl -m g:fail2ban:rwx /var/run/fail2ban/fail2ban.sock
203203 fi
204204
205- print_start "Starting Zabbix Agent (${zabbix_agent_type}) ${ZABBIX_VERSION} "
205+ print_start "Starting Zabbix Agent ${ZABBIX_VERSION} (${zabbix_agent_type}) "
206206 output_on
207207 silent exec s6-setuidgid "${ZABBIX_USER}" ${zabbix_command} -c "${ZABBIX_CONFIG_PATH%/}"/"${ZABBIX_CONFIG_FILE}" -f
208208}
0 commit comments