# $Id: Portfile 146517 2016-03-10 17:49:28Z raimue@macports.org $ PortSystem 1.0 name zabbix version 1.8.2 revision 1 categories net license GPL-2+ maintainers nomaintainer platforms darwin description An open source application and network monitor long_description ${description} homepage http://www.zabbix.com/ master_sites sourceforge checksums md5 fa4be4fa7ac20a33cc0aa5c27b827746 patchfiles patch-src-zabbix_server-poller-checks_snmp.c.diff depends_lib port:fping \ port:curl \ path:lib/libssl.dylib:openssl configure.args --enable-server \ --enable-agent \ --with-net-snmp \ --bindir=${prefix}/bin/zabbix \ --sbindir=${prefix}/sbin/zabbix \ --libexecdir=${prefix}/libexec/zabbix \ --datadir=${prefix}/share/zabbix \ --sysconfdir=${prefix}/etc/zabbix \ --localstatedir=${prefix}/var/zabbix configure.ldflags-append -lresolv if { [variant_isset agent_only] } { startupitem.create yes startupitem.start "${prefix}/share/zabbix/zabbix_agentd.init start" startupitem.stop "${prefix}/share/zabbix/zabbix_agentd.init stop" } else { startupitem.create yes startupitem.start "${prefix}/share/zabbix/zabbix_server.init start" startupitem.stop "${prefix}/share/zabbix/zabbix_server.init stop" } variant mysql5 conflicts pgsql81 pgsql82 pgsql83 pgsql84 sqlite3 \ description {Use MySQL 5.x for server database} { depends_lib-append path:bin/mysql_config5:mysql5 configure.args-append --with-mysql=${prefix}/lib/mysql5/bin/mysql_config } variant pgsql81 conflicts mysql5 pgsql82 pgsql83 pgsql84 sqlite3 \ description {Use PostgreSQL 8.1.x for server database} { depends_lib-append port:postgresql81 configure.args-append --with-pgsql=${prefix}/lib/postgresql81/bin/pg_config } variant pgsql82 conflicts mysql5 pgsql81 pgsql83 pgsql84 sqlite3 \ description {Use PostgreSQL 8.2.x for server database} { depends_lib-append port:postgresql82 configure.args-append --with-pgsql=${prefix}/lib/postgresql82/bin/pg_config } variant pgsql83 conflicts mysql5 pgsql81 pgsql82 pgsql84 sqlite3 \ description {Use PostgreSQL 8.3.x for server database} { depends_lib-append port:postgresql83 configure.args-append --with-pgsql=${prefix}/lib/postgresql83/bin/pg_config } variant pgsql84 conflicts mysql5 pgsql81 pgsql82 pgsql83 sqlite3 \ description {Use PostgreSQL 8.4.x for server database} { depends_lib-append port:postgresql84 configure.args-append --with-pgsql=${prefix}/lib/postgresql84/bin/pg_config } variant sqlite3 conflicts mysql5 pgsql81 pgsql82 pgsql83 pgsql84 \ description {Use SQLite 3.x for server database} { depends_lib-append port:sqlite3 configure.args-append --with-sqlite3=${prefix} } variant agent_only conflicts mysql5 pgsql81 pgsql82 pgsql83 pgsql84 sqlite3 \ description {Do not install the Zabbix server} { depends_lib-delete port:fping \ port:curl \ path:lib/libssl.dylib:openssl configure.args-delete --enable-server \ --with-net-snmp } if {![variant_isset pgsql81] && ![variant_isset pgsql82] && ![variant_isset pgsql83] && ![variant_isset pgsql84] && ![variant_isset sqlite3] && ![variant_isset agent_only]} { default_variants +mysql5 } post-patch { reinplace "s|#DBSocket=/tmp/mysql.sock|DBSocket=${prefix}/var/run/mysql5/mysqld.sock|g" \ ${worksrcpath}/misc/conf/zabbix_server.conf reinplace "s|#FpingLocation=/usr/sbin/fping|FpingLocation=${prefix}/sbin/fping|g" \ ${worksrcpath}/misc/conf/zabbix_server.conf } pre-destroot { adduser zabbix addgroup zabbix } post-destroot { if { [variant_isset agent_only] } { # Don't install MySQL data and frontend stuff for agent_only # Copy sample agent .conf files xinstall -d -m 755 -d ${destroot}${prefix}/etc/zabbix xinstall -m 755 ${worksrcpath}/misc/conf/zabbix_agent.conf \ ${destroot}${prefix}/etc/zabbix/zabbix_agent.conf.sample xinstall -m 755 ${worksrcpath}/misc/conf/zabbix_agentd.conf \ ${destroot}${prefix}/etc/zabbix/zabbix_agentd.conf.sample # Copy a startup script for the agent xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix xinstall -m 755 ${portpath}/${filesdir}/zabbix_agentd.init \ ${destroot}${prefix}/share/zabbix reinplace "s|__PREFIX__|${prefix}|g" \ ${destroot}${prefix}/share/zabbix/zabbix_agentd.init } else { # Copy sample server and agent .conf files xinstall -d -m 755 -d ${destroot}${prefix}/etc/zabbix xinstall -m 755 ${worksrcpath}/misc/conf/zabbix_agent.conf \ ${destroot}${prefix}/etc/zabbix/zabbix_agent.conf.sample xinstall -m 755 ${worksrcpath}/misc/conf/zabbix_agentd.conf \ ${destroot}${prefix}/etc/zabbix/zabbix_agentd.conf.sample xinstall -m 755 ${worksrcpath}/misc/conf/zabbix_server.conf \ ${destroot}${prefix}/etc/zabbix/zabbix_server.conf.sample # Copy database data and schemas xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix/data xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix/schema xinstall -m 755 {*}[glob ${worksrcpath}/create/data/*.*] \ ${destroot}${prefix}/share/zabbix/data xinstall -m 755 {*}[glob ${worksrcpath}/create/schema/*] \ ${destroot}${prefix}/share/zabbix/schema # Copy the front end files file mkdir ${destroot}${prefix}/share/zabbix/frontends/ file copy ${worksrcpath}/frontends/php/ \ ${destroot}${prefix}/share/zabbix/frontends/ # Create a startup script for the server xinstall -m 755 ${portpath}/${filesdir}/zabbix_server.init \ ${destroot}${prefix}/share/zabbix reinplace "s|__PREFIX__|${prefix}|g" \ ${destroot}${prefix}/share/zabbix/zabbix_server.init # Create a startup script for the agent xinstall -m 755 ${portpath}/${filesdir}/zabbix_agentd.init \ ${destroot}${prefix}/share/zabbix reinplace "s|__PREFIX__|${prefix}|g" \ ${destroot}${prefix}/share/zabbix/zabbix_agentd.init # Set permissions for etc (protect passwords) and the frontend system "chmod 660 ${destroot}${prefix}/etc/zabbix/*" system "chown zabbix:zabbix ${destroot}${prefix}/etc/zabbix/*" system "chown -R www:www ${destroot}${prefix}/share/zabbix/frontends/*" # End else clause - Done with server stuff } # Copy Win32 agent for normal and agent_only installs xinstall -d -m 755 -d ${destroot}${prefix}/share/zabbix/zabbix_agent_win32 xinstall -m 755 ${worksrcpath}/bin/win32/zabbix_agentd.exe \ ${destroot}${prefix}/share/zabbix/zabbix_agent_win32 } notes " #### ZABBIX agent installation section (steps 1 - 3 only) #### 1) Edit the sample .conf file ${prefix}/etc/zabbix/zabbix_agentd.conf (rename & omit .sample) Set the following variable to the ip address of your ZABBIX server to\ allow it access to the agent. Server=x.x.x.x 2) Set zabbix_agentd to run at system boot sudo launchctl load -w /Library/LaunchDaemons/org.macports.zabbix.plist To start Zabbix manually, use: ${prefix}/share/zabbix/zabbix_agentd.init start (stop|status) 3) A Win32 agent is in ${prefix}/share/zabbix/zabbix_agent_win32 for\ installation on Windows NT 4.0, Windows 2000, and Windows XP. #### End ZABBIX agent installation section #### #### #### #### #### #### Begin ZABBIX server installation section #### 1) Setup MySQL, i.e. via MacPorts: sudo port install mysql5-server 2) Setup the ZABBIX MySQL database -Create the ZABBIX database mysql5 -u root -p (enter password at prompt) mysql> create database zabbix character set utf8; mysql> quit; -Import the ZABBIX Schema cd ${prefix}/share/zabbix/schema cat mysql.sql | mysql5 -u root -p zabbix cd ${prefix}/share/zabbix/data cat data.sql | mysql5 -u root -p zabbix cat images_mysql.sql | mysql5 -u root -p zabbix -Create a MySQL 'zabbix' user and password mysql5 -u root -p mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ''; mysql> grant all privileges on zabbix.* to zabbix identified by ''; mysql> quit; 3) Edit the sample .conf file ${prefix}/etc/zabbix/zabbix_server.conf (rename & omit .sample) Modify these variables at the very least: DBName=zabbix DBUser=zabbix DBPassword= 4) Install PHP 5, i.e. via MacPorts: sudo port install php5 php5-gd php5-mbstring php5-mysql php5-sockets 5) Set a symbolic link in your Apache document root pointing to the PHP frontend files sudo ln -s ${prefix}/share/zabbix/frontends/php /zabbix 6) Set zabbix_server to run at system boot, then start it sudo launchctl load -w /Library/LaunchDaemons/org.macports.zabbix.plist To start Zabbix manually, use: ${prefix}/share/zabbix/zabbix_server.init start (stop|status) Note: Eventually your shared memory has to be increased (see http://www.zabbix.org/forum/showthread.php?p=64232)! 7) A Win32 agent is in ${prefix}/share/zabbix/zabbix_agent_win32 for\ installation on Windows NT 4.0, Windows 2000, and Windows XP. See\ the ReadMe.txt for instructions. 8) Open http://localhost/zabbix/ in your browser and walk through the setup, then login with default user 'Admin' and password 'zabbix'. 9) Read the fine manual at http://www.zabbix.com/documentation/ "