--- Portfile-1.8.2 2011-08-31 09:35:35.000000000 +0800 +++ Portfile-1.8.6 2011-08-31 09:35:47.000000000 +0800 @@ -1,45 +1,46 @@ # $Id: Portfile 71305 2010-09-08 01:38:10Z markd@macports.org $ -PortSystem 1.0 +PortSystem 1.0 -name zabbix -version 1.8.2 -categories net -maintainers markd openmaintainer -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 \ - port: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" +name zabbix +version 1.8.6 +categories net +maintainers markd openmaintainer +platforms darwin + +description An open source application and network monitor (Server or proxy module) + +long_description ${description} + +homepage http://www.zabbix.com/ +master_sites sourceforge +checksums md5 4642fd263167211a73a02fe7f3bcd998 +patchfiles patch-src-zabbix_server-poller-checks_snmp.c.diff +depends_lib port:fping \ + port:curl \ + port:openssl + +configure.args --enable-server \ + --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 proxy] } { + startupitem.create yes + startupitem.name zabbix_proxy + startupitem.start "${prefix}/share/zabbix/zabbix_proxy.init start" + startupitem.stop "${prefix}/share/zabbix/zabbix_proxy.init stop" } else { - startupitem.create yes - startupitem.start "${prefix}/share/zabbix/zabbix_server.init start" - startupitem.stop "${prefix}/share/zabbix/zabbix_server.init stop" + startupitem.create yes + startupitem.name zabbix_server + 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 \ @@ -55,9 +56,9 @@ } 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 + 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 \ @@ -78,26 +79,39 @@ 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 \ - port:openssl - - configure.args-delete --enable-server \ - --with-net-snmp +variant proxy \ + description {Do not install the Zabbix server but install the proxy} { + configure.args-delete --enable-server + configure.args-append --enable-proxy } -if {![variant_isset pgsql81] && ![variant_isset pgsql82] && ![variant_isset pgsql83] && ![variant_isset pgsql84] && ![variant_isset sqlite3] && ![variant_isset agent_only]} { +if {![variant_isset pgsql81] && ![variant_isset pgsql82] && ![variant_isset pgsql83] && ![variant_isset pgsql84] && ![variant_isset sqlite3]} { 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 + if { [variant_isset proxy] } { + if {![variant_isset pgsql81] && ![variant_isset pgsql82] && ![variant_isset pgsql83] && ![variant_isset pgsql84] && ![variant_isset sqlite3]} { - reinplace "s|#FpingLocation=/usr/sbin/fping|FpingLocation=${prefix}/sbin/fping|g" \ - ${worksrcpath}/misc/conf/zabbix_server.conf + reinplace "s|# DBSocket=/tmp/mysql.sock|DBSocket=${prefix}/var/run/mysql5/mysqld.sock|g" \ + ${worksrcpath}/misc/conf/zabbix_proxy.conf + } + + reinplace "s|# FpingLocation=/usr/sbin/fping|FpingLocation=${prefix}/sbin/fping|g" \ + ${worksrcpath}/misc/conf/zabbix_proxy.conf + reinplace "s|# Fping6Location=/usr/sbin/fping6|Fping6Location=${prefix}/sbin/fping6|g" \ + ${worksrcpath}/misc/conf/zabbix_proxy.conf + } else { + if {![variant_isset pgsql81] && ![variant_isset pgsql82] && ![variant_isset pgsql83] && ![variant_isset pgsql84] && ![variant_isset sqlite3]} { + 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 + reinplace "s|# Fping6Location=/usr/sbin/fping6|Fping6Location=${prefix}/sbin/fping6|g" \ + ${worksrcpath}/misc/conf/zabbix_server.conf + } } pre-destroot { @@ -107,165 +121,202 @@ post-destroot { -if { [variant_isset agent_only] } { -# Don't install MySQL data and frontend stuff for agent_only +if { [variant_isset proxy] } { +# Copy sample server .conf files + xinstall -d -m 755 -d ${destroot}${prefix}/etc/zabbix + xinstall -m 755 ${worksrcpath}/misc/conf/zabbix_proxy.conf \ + ${destroot}${prefix}/etc/zabbix/zabbix_proxy.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 + + eval xinstall -m 755 [glob ${worksrcpath}/create/data/*.*] \ + ${destroot}${prefix}/share/zabbix/data + eval xinstall -m 755 [glob ${worksrcpath}/create/schema/*] \ + ${destroot}${prefix}/share/zabbix/schema + +# Create a startup script for the proxy + xinstall -m 755 ${portpath}/${filesdir}/zabbix_proxy.init \ + ${destroot}${prefix}/share/zabbix + reinplace "s|__PREFIX__|${prefix}|g" \ + ${destroot}${prefix}/share/zabbix/zabbix_proxy.init + +# Set permissions for etc (protect passwords) + system "chmod 660 ${destroot}${prefix}/etc/zabbix/*" + system "chown zabbix:zabbix ${destroot}${prefix}/etc/zabbix/*" -# 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 +# Copy sample server .conf files + xinstall -d -m 755 -d ${destroot}${prefix}/etc/zabbix 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 - + eval xinstall -m 755 [glob ${worksrcpath}/create/data/*.*] \ ${destroot}${prefix}/share/zabbix/data eval 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 - + xinstall -m 755 ${portpath}/${filesdir}/zabbix_server.init \ + ${destroot}${prefix}/share/zabbix + reinplace "s|__PREFIX__|${prefix}|g" \ + ${destroot}${prefix}/share/zabbix/zabbix_server.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/*" - + 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 } +if { [variant_isset proxy] } { notes \ -"#### ZABBIX agent installation section (steps 1 - 3 only) #### +"#### #### +#### Begin ZABBIX proxy installation section #### + + +1) Setup MySQL, i.e. via MacPorts: + + sudo port install mysql5-server -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. +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 - Server=x.x.x.x +-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_proxy.conf (rename & omit .sample) + + Modify these variables at the very least: + DBName=zabbix + DBUser=zabbix + DBPassword= -2) Set zabbix_agentd to run at system boot - sudo launchctl load -w /Library/LaunchDaemons/org.macports.zabbix.plist +4) Set zabbix_proxy to run at system boot, then start it - To start Zabbix manually, use: ${prefix}/share/zabbix/zabbix_agentd.init start (stop|status) + sudo launchctl load -w /Library/LaunchDaemons/org.macports.zabbix_proxy.plist + To start Zabbix manually, use: ${prefix}/share/zabbix/zabbix_proxy.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. + Note: Eventually your shared memory has to be increased (see http://www.zabbix.org/forum/showthread.php?p=64232)! -#### End ZABBIX agent installation section #### -#### #### +5) Install zabbix_agent via MacPorts: + sudo port install zabbix_agentd -#### #### + +6) Open http://localhost/zabbix/ in your browser and walk through the setup, then login with default user 'Admin' and password 'zabbix'. + + +7) Read the fine manual at http://www.zabbix.com/documentation/ +#### End ZABBIX proxy installation section #### +#### ####" + +} else { +notes \ +"#### #### #### Begin ZABBIX server installation section #### 1) Setup MySQL, i.e. via MacPorts: - sudo port install mysql5-server + 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; + 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 + 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; + 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= + 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 + 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 + 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 + sudo launchctl load -w /Library/LaunchDaemons/org.macports.zabbix_server.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)! + Note: Eventually your shared memory has to be increased (see http://www.zabbix.org/forum/showthread.php?p=64232)! + +7) Install zabbix_agent via MacPorts: -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. + sudo port install zabbix_agentd 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/" +9) Read the fine manual at http://www.zabbix.com/documentation/ + + +#### End ZABBIX server installation section #### +#### ####" +}