There is no official Zabbix Agent binary for FreeNAS, so it has to be compiled from source on another machine.
There are several options to do so, I decided to just spin up a FreeBSD Vagrant VM to build the binary.
This post is based on the post from [1] with some enhancements
For more recent howto see here
Vagrant VM
Setup VM & Build Environment
- Create
Vagrantfile
:Vagrant.configure("2") do |config| config.vm.box = "freebsd/FreeBSD-11.1-STABLE" config.vm.base_mac = "000000123456" end
- Start VM:
vagrant up
- Enter VM:
vagrant ssh
- Install dependecies:
sudo pkg install -y curl autoconf automake gettext gcc pcre
Compile Zabbix Agent
- Download source: https://www.zabbix.com/download_sources#tab:40LTS
curl -fsSL "https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.14/zabbix-3.4.14.tar.gz/download" | tar zxvf - cd zabbix-3.4.14
curl -fsSL "
https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz/download" | tar zxvf -
cd zabbix-4.0.9
- Build with TLS support for encryption:
./configure --enable-agent --with-openssl
--enable-ipv6 sudo make install
- Transfer compiled binary to FreeNAS system:
scp /usr/local/sbin/zabbix_agentd root@$FREENAS_IP:/usr/local/sbin/
- Leave VM:
exit
- Destroy VM (optional):
vagrant destroy
FreeNAS
After the zabbix_agentd binary is transferred to the FreeNAS system, it’s time to SSH into it to configure the agent.Zabbix Agent Configuration
Add user:pw groupadd zabbix pw useradd zabbix -c "Daemon user for Zabbix agent" -d /nonexistent -s /usr/sbin/nologin -w no -g zabbixCreate zabbix user and group via WebUI, otherwise they won't suvive a reboot
- Create
/etc/zabbix_agentd.conf
:Server=$ZABBIX_SERVER_IP ServerActive=$ZABBIX_SERVER_IP Hostname=$ZABBIX_AGENT_HOSTNAME LogFile=/tmp/zabbix_agentd.log
Daemon Configuration
- Enable daemon:
echo 'zabbix_agentd_enable="YES"' >> /etc/rc.conf
- Create
/etc/rc.d/zabbix_agentd
:#!/bin/sh # PROVIDE: zabbix_agentd # REQUIRE: DAEMON # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf to # enable zabbix_agentd: # # zabbix_agentd_enable (bool): Set to NO by default. Set it to YES to # enable zabbix_agentd. # . /etc/rc.subr name="zabbix_agentd" rcvar=zabbix_agentd_enable start_precmd="zabbix_precmd" required_files="/etc/zabbix_agentd.conf" # read configuration and set defaultsc load_rc_config "$name" : ${zabbix_agentd_enable="NO"} #: ${zabbix_agentd_pre:=/etc/${name}.pre.sh} zabbix_agentd_conf="/etc/zabbix_agentd.conf" if [ ! -z "$zabbix_agentd_conf" ] ; then zabbix_agentd_flags="${zabbix_agentd_flags} -c ${zabbix_agentd_conf}" required_files=${zabbix_agentd_conf} fi zabbix_precmd() { if [ ! -z "$zabbix_agentd_pre" ] ; then if [ -e $zabbix_agentd_pre ] ; then . $zabbix_agentd_pre fi fi } command="/usr/local/sbin/${name}" run_rc_command "$1" run_rc_command "$1"
- Make executable:
chmod +x /etc/rc.d/zabbix_agentd
- Start daemon:
/etc/rc.d/zabbix_agentd start
- Make config files persistent and survive reboots:
cp /etc/rc.conf /conf/base/etc/ cp /etc/rc.d/zabbix_agentd /conf/base/etc/rc.d/ cp /etc/zabbix_agentd.* /conf/base/etc/
Exit vagrant
in the ssh sesion type: exit
vagrant destroy
Zabbix configuration
Use the template from the zabbix wiki for the host monitoring
http://zabbix.org/wiki/File:Template_OS_FreeNAS.xml
Obrigado!
ReplyDelete