Zabbix 3.0 agent on FreeBSD



As you may have noticed: the folk at this blog recently started to play around with FreeBSD (mainly as FreeNAS jails). And since I recently started to <3 Zabbix. Here is an explanation on how to compile and use the agent on such a jail. <span id="more-3685"></span>First you need to give the jail certain privileges. So log into the FreeNAS web admin-interface and add ```allow.sysvipc=1``` to the (comma separated) list of Sysctls under Jails > JAILNAME > Edit > Advanced Mode (if you make a mistake in that field, the jail won't start up anymore without any helpful log message afait). Then log into the jail via SSH and create a user and group for zabbix: ```bash pw groupadd zabbix pw useradd zabbix -c "Daemon user for Zabbix agent" -d /nonexistent -s /usr/sbin/nologin -w no -g zabbix ``` This is necessary, because all Zabbix daemon, that are started as a privileged user, will automaticcaly drop to a user account named ```zabbix```. Then <a href="http://www.zabbix.com/download">download the Zabbix Source code</a> (I used ```zabbix-3.0.5.tar.gz```), unpack it and compile it: ```bash ./configure --enable-agent --with-gnutls make install #grabacoffee ``` I'm using Zabbix authentication. If you don't want that, you don't need the switch ```--with-gnutls```. Finally, configure the Zabbix agent as normally (configuration file is located at ```/usr/local/etc/zabbix_agentd.conf```) and add ```zabbix_agentd_enable="YES"``` to ```/etc/rc.conf``` after creating a file ```/etc/rc.d/zabbix_agentd``` with the following content: ```bash #!/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="/usr/local/etc/zabbix_agentd.conf" # read configuration and set defaultsc load_rc_config "$name" : ${zabbix_agentd_enable="NO"} #: ${zabbix_agentd_pre:=/usr/local/etc/${name}.pre.sh} 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" ```

Leave a Reply

Your email address will not be published. Required fields are marked *