Ad Widget

Collapse

CentOS 5 (and RHEL) RPMs for Zabbix 1.8

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ericgearhart
    Senior Member
    • Jan 2009
    • 115

    #16
    I think both Andrew and I would be honored to have a package included in RPMforge... go ahead and ask if you like!

    Comment

    • Farley
      Junior Member
      • Sep 2009
      • 20

      #17
      Originally posted by tpoder
      Hi,
      thanks for yours RPM. Do you thinking about publishing you rpm through Dag Weirs RPMforge site (http://dag.wieers.com/rpm/)? It could be a nice to have zabbix in the repository like that. If you would agree with that I can ask for adding it.

      You have written in specfile that you are planning support for PgSQL an Oracle. Maybe you can overtake some ideas from the rpm placed on http://hawk.cis.vutbr.cz/~tpoder/SW/...5.0/cis/SRPMS/ or http://hawk.cis.vutbr.cz/~tpoder/SW/.../5.0/cis/i386/ (compiled version) where the support for PgSQL has been already done. I am using this rpm (originally taken from EPEL repository http://cvs.fedora.redhat.com/viewvc/rpms/zabbix/devel/), but the process of updating EPEL sources is too slow and I have to update it by myself witch each release of zabbix :-(.

      Thanks for nice piece of work.
      Sure, let me get it to a point where it's rock solid and everything is put in the right place. I have a mini todo list to solve all the little problems with the current package. The current RPMs work great, but with 1.8.1 I've decided to update one of my clients servers (small client) and I see a handful of things which are sub-par. For example, the logs and .pid files currently go to /tmp, and I want postgres and oracle support (I love postgres). Thanks for the links, I've seen some similar code from one of the 1.6 spec files which was quite messy so I really just started from scratch and built this up.

      So the short answer is yeah sure... but not yet. I do have my own repository, and I'll bet soon enough googling it will turn up a link to my site. But yeah it wouldn't hurt to have it in a popular repo like rpmforge.

      Thanks for the idea and feedback. I just posted my 1.8.1 RPMs, and announced it in another post. So check out my site, or just update your RPMs if you're using my repo.

      Cheers!

      Comment

      • kz282
        Junior Member
        • Sep 2009
        • 6

        #18
        I might be missing something, but my CentOS 5 repository has php 5.1.6-24.el5_4.5, and your zabbix-frontend-php-1.8.1-5.1.i386.rpm package wants php >= 5.2.0.

        [root@centos zabbixRPMs]# cat /etc/redhat-release
        CentOS release 5.4 (Final)

        According to the Zabbix 1.8 install guide Zabbix requires php 5.0 or later.

        Ok, I found the proper solution for this:

        Comment

        • Farley
          Junior Member
          • Sep 2009
          • 20

          #19
          Originally posted by kz282
          I might be missing something, but my CentOS 5 repository has php 5.1.6-24.el5_4.5, and your zabbix-frontend-php-1.8.1-5.1.i386.rpm package wants php >= 5.2.0.

          [root@centos zabbixRPMs]# cat /etc/redhat-release
          CentOS release 5.4 (Final)

          According to the Zabbix 1.8 install guide Zabbix requires php 5.0 or later.

          Ok, I found the proper solution for this:
          http://www.zabbix.com/forum/showpost...36&postcount=7
          No, you're not missing anything. CentOS is wildly out of date as far as packages go. Zabbix requires at least php 5.2 (documented in many places). So yea, you're in a weird place where you can't get zabbix-web installed with the default repositories. You need to go search for a updated PHP package. One repo/packager I suggest for up to date packages is "remi" (google it). He tends to have php/mysql/common LAMP stuff wildly more up to date than CentOS.

          It is, how it is, if you have problems with this take your complaints up with Zabbix (forcing > 5.2, which is not really unreasonable) or with CentOS. Glad to see you found a solution also. I'll include a link to that it in my main post.

          Cheers
          Last edited by Farley; 03-02-2010, 15:58.

          Comment

          • alubel
            Junior Member
            • Jan 2010
            • 13

            #20
            I've been using c5-testing repo, not sure if its any more sane than other repos though it works and implants into the default OS nicely.

            Add this data to "c5-testing.repo" in /etc/yum.repos.d/:
            Code:
            [c5-testing]
            name=CentOS-5 Testing
            baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
            enabled=0
            gpgcheck=1
            gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
            Then install goodies with yum:
            Code:
            yum install --enablerepo=c5-testing \
            httpd php php-bcmath php-cli \
            php-common php-gd php-ldap php-mbstring php-mysql \
            php-pdo php-xml mysql mysql-server perl-DBD-MySQL
            etc etc.

            I am working on modifying the spec to put httpd settings in /etc/httpd/conf.d/zabbix.conf and moving the php-frontend over to /var/www.

            Thanks for a great overall SPEC btw!

            Comment

            • Farley
              Junior Member
              • Sep 2009
              • 20

              #21
              Originally posted by alubel
              I've been using c5-testing repo, not sure if its any more sane than other repos though it works and implants into the default OS nicely.

              Add this data to "c5-testing.repo" in /etc/yum.repos.d/:
              Code:
              [c5-testing]
              name=CentOS-5 Testing
              baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
              enabled=0
              gpgcheck=1
              gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
              Then install goodies with yum:
              Code:
              yum install --enablerepo=c5-testing \
              httpd php php-bcmath php-cli \
              php-common php-gd php-ldap php-mbstring php-mysql \
              php-pdo php-xml mysql mysql-server perl-DBD-MySQL
              etc etc.

              I am working on modifying the spec to put httpd settings in /etc/httpd/conf.d/zabbix.conf and moving the php-frontend over to /var/www.

              Thanks for a great overall SPEC btw!
              You're welcome. I'd love it if you did that submit a patch to me so I can integrate it into my spec. I'm working on fixing the log locations and pid locations also in the next few days (right now they are all in /tmp). Collaboration rocks.

              Cheers!

              Comment

              • Arioch
                Junior Member
                • Dec 2009
                • 19

                #22
                Originally posted by Farley
                I have a mini todo list to solve all the little problems with the current package.
                Feel free to post the list. We might be able to help you squash those bugs.

                Comment

                • arosenau
                  Junior Member
                  • Feb 2010
                  • 3

                  #23
                  I'm just getting started playing around with Zabbix and have been making use of your repository Farley (Thanks for this). Anyways I was wondering if someone could give me a more detailed instruction on just how to setup zabbix properly from a vanilla centos 5 install, I want to make sure i have everything correct as I want to create a virtual appliance for Zabbix and using Farley's repository (with your permission of course.) This appliance would initially just be available as a xenserver template, but in the future I would also make it available to vmware and hyper-v. As zabbix and packages are upgrade I would update the appliance to try and keep it current, with what is currently in Farley's repository for zabbix updates.

                  I hope that all made sense, let me know if this would be beneficial, or if this has already been done, point me to that direction. I did find some virtual appliances on the net, but they were for zabbix version 1.4 and 1.6, nothing current.

                  Comment

                  • rajsand
                    Junior Member
                    • Dec 2009
                    • 6

                    #24
                    Zabbix Server Startup

                    Greetings,

                    I recently installed and configure Zabbix 1.8.1 on Centos 5.2. I don't remember which method I used -- Fawrly or Bren's script.

                    I observed that Zabbix server failed to start. The issue was that Zabbix needed mysql to be up when starting. I tweaked the /etc/init.d/zabbix_server script to ensure that zabbix started after mysql is up and shutdown before mysql does.

                    Just wanted record the information for posterity

                    Regards

                    Rajagopal

                    Comment

                    • jojo
                      Member
                      • Jul 2006
                      • 57

                      #25
                      This is my version i developed for our company's setup. We basicly modifed it so we could streamline it as much as possible. ie configuration options set, apache configured etc. The original spec file was made for an awesome starting point.

                      I know that most of this could be re-written. I do intend to do this eventually. I just need to convince the big bosses that we should switch back to zabbix first.

                      Code:
                      # Define the database information
                      %define         _database       postgresql-devel
                      %define         _phpdbpkg       php-pgsql
                      %define         _cfg_db         --with-pgsql
                      
                      Summary:                Zabbix - The Ultimate Open Source Monitoring Solution
                      Name:                   zabbix
                      Version:                1.8.1
                      Release:                1
                      License:                GPL v2+
                      Group:                  Networking/Admin
                      Source0:                http://dl.sourceforge.net/zabbix/%{name}-%{version}.tar.gz
                      URL:                    http://zabbix.sourceforge.net
                      BuildRequires:          %{_database}
                      BuildRequires:          net-snmp-devel
                      BuildRequires:          openssl-devel >= 0.9.7d
                      BuildRequires:          gcc
                      BuildRequires:          curl-devel
                      BuildRequires:          iksemel-devel
                      # BuildRequires:                libssh2-devel  # NOTE: ssh does not compile for 1.8.1
                      BuildRequires:          OpenIPMI-devel
                      Requires(postun):       %{_sbindir}/groupdel
                      Requires(postun):       %{_sbindir}/userdel
                      Requires(pre):          /usr/sbin/groupadd
                      Requires(pre):          /usr/sbin/useradd
                      Provides:               group(zabbix)
                      Provides:               user(zabbix)
                      BuildRoot:              %{_tmppath}/%{name}-%{version}-root
                      
                      # Our pre-defined config variables
                      
                      # default zabbix server address
                      %define         _svraddr             zabbix.mydomain.com
                      
                      # This is the maximum size of all log files before they're rotated
                      %define         _maxlogsize          100
                      
                      # This is the location where apache allows us to store custom configuration files
                      %define         _apachedir           /etc/httpd/conf.d
                      
                      # This is the zabbix directory prefix
                      %define         _prefix              /opt/%{name}
                      
                      # This is where our configuration files will go, generally /etc/zabbix
                      %define         _sysconfdir          %{_prefix}/etc
                      # This is where our logs will be stored
                      %define         _logdir              %{_prefix}/log
                      
                      # This is where binaries will be stored
                      %define         _bindir              %{_prefix}/bin
                      
                      # This is where zabbix scripts will be stored
                      %define         _extscriptsdir       %{_prefix}/scripts
                      
                      # This is where zabbix alert scripts will be stored
                      %define         _alertscriptsdir     %{_prefix}/alert_scripts
                      
                      # This is where our "shared" files should go, generally in /usr/share/zabbix
                      %define         _appdir              %{_prefix}/share
                      
                      # This is where we will install the front-end PHP gui
                      %define         _webrootdir          %{_prefix}/www/%{version}
                      
                      # This is where we will soft link the front-end PHP gui so we can run multiple front ends if neccessary
                      %define         _websoftdir          %{_prefix}/www/html
                      
                      # This is where our PID's will be stored
                      %define         _piddir              /var/run/%{name}
                      
                      %description
                      zabbix is software that monitors numerous parameters of a network and
                      the servers on that network. It is a useful tool for monitoring
                      the health and integrity of servers. zabbix uses a flexible
                      notification mechanism that allows users to configure email based
                      alerts for virtually any event. All monitored parameters are stored in
                      a database. zabbix offers excellent reporting and data visualisation
                      features based on the stored data. zabbix supports both polling and
                      trapping. All zabbix reports and statistics, as well as configuration
                      parameters, are accessed through a web-based front end.
                      
                      %package agent
                      Summary:        Standalone agent for zabbix
                      Group:          Networking/Admin
                      Requires:       %{name} = %{version}
                      Requires:       openssl-devel >= 0.9.7d
                      
                      %description agent
                      This package provides the zabbix agent
                      
                      %package frontend-php
                      Summary:        PHP frontend for zabbix
                      Group:          Networking/Admin
                      Requires:       php >= 5.1.6
                      Requires:       php-gd
                      Requires:       %{_phpdbpkg}
                      Requires:       webserver
                      Requires:       php-xml
                      Requires:       php-bcmath
                      Requires:       php-ldap
                      Requires:       php-mbstring
                      Requires:       php-pdo
                      Requires:       php-xml
                      
                      %description frontend-php
                      This package provides web based (PHP) frontend for zabbix.
                      
                      %package get
                      Summary:        Program retrieving data from the zabbix agentd daemon
                      Group:          Networking/Admin
                      
                      %description get
                      This package provides a program retrieving data from zabbix agentd daemon.
                      
                      %package sender
                      Summary:        Zabbix sender
                      Group:          Networking/Admin
                      
                      %description sender
                      This package provides the zabbix sender.
                      
                      %package server
                      Summary:        Zabbix server
                      Group:          Networking/Admin
                      Requires:       %{name} = %{version}
                      
                      %description server
                      This package provides the zabbix server.
                      
                      %package proxy
                      Summary:        Program used as a proxy between zabbix servers and agents
                      Group:          Networking/Admin
                      Requires:       %{name} = %{version}
                      
                      %description proxy
                      This package provides a program that acts as a proxy between zabbix servers
                      and agents, to assist in passing through firewalls and NAT
                      
                      %prep
                      %setup -q
                      
                      # Here is our zabbix-proxy init script, for CentOS
                      %{__cat} << 'EOF' > zabbix-proxy.initscript
                      #!/bin/sh
                      #
                      # chkconfig: - 86 14
                      # description: ZABBIX proxy
                      # processname: zabbix_proxy
                      # config: /opt/zabbix/etc/zabbix_proxy.conf
                      #
                      
                      ### BEGIN INIT INFO
                      # Provides: zabbix-proxy
                      # Required-Start: $local_fs $network
                      # Required-Stop: $local_fs $network
                      # Should-Start: zabbix
                      # Should-Stop: zabbix
                      # Default-Start:
                      # Default-Stop: 0 1 2 3 4 5 6
                      # Short-Description: Start and stop ZABBIX proxy
                      # Description: ZABBIX proxy
                      ### END INIT INFO
                      
                      # Source function library.
                      . /etc/rc.d/init.d/functions
                      
                      prog="%{_bindir}/zabbix_proxy"
                      params="-c %{_sysconfdir}/zabbix_proxy.conf"
                      lockfile=/var/lock/subsys/zabbix-agent
                      
                      start()
                      {
                          echo -n $"Starting ZABBIX proxy: "
                          daemon $prog $params
                          rv=$?
                          echo
                          [ $rv -eq 0 ] && touch $lockfile
                          return $rv
                      }
                      
                      stop()
                      {
                          echo -n $"Shutting down ZABBIX proxy: "
                          killproc $prog
                          rv=$?
                          echo
                          [ $rv -eq 0 ] && rm -f $lockfile
                          return $rv
                      }
                      
                      
                      restart()
                      {
                          stop
                          start
                      }
                      
                      case "$1" in
                          start|stop|restart)
                              $1
                              ;;
                          force-reload)
                              restart
                              ;;
                          status)
                              status $prog
                              ;;
                          try-restart|condrestart)
                              if status $prog >/dev/null ; then
                                  restart
                              fi
                              ;;
                          reload)
                              action $"Service ${0##*/} does not support the reload action: " /bin/false
                              exit 3
                              ;;
                          *)
                              echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
                              exit 2
                              ;;
                      esac
                      
                      EOF
                      
                      # Here is our zabbix-agent init script, for CentOS
                      %{__cat} <<'EOF' > zabbix-agentd.initscript
                      #!/bin/sh
                      #
                      # chkconfig: - 86 14
                      # description: ZABBIX agent daemon
                      # processname: zabbix_agentd
                      # config: /opt/zabbix/etc/zabbix_agentd.conf
                      #
                      
                      ### BEGIN INIT INFO
                      # Provides: zabbix-agent
                      # Required-Start: $local_fs $network
                      # Required-Stop: $local_fs $network
                      # Should-Start: zabbix zabbix-proxy
                      # Should-Stop: zabbix zabbix-proxy
                      # Default-Start:
                      # Default-Stop: 0 1 2 3 4 5 6
                      # Short-Description: Start and stop ZABBIX agent
                      # Description: ZABBIX agent
                      ### END INIT INFO
                      
                      # Source function library.
                      . /etc/rc.d/init.d/functions
                      
                      prog="%{_bindir}/zabbix_agentd"
                      params="-c %{_sysconfdir}/zabbix_agentd.conf"
                      lockfile=/var/lock/subsys/zabbix-agent
                      
                      start()
                      {
                          echo -n $"Starting ZABBIX agent: "
                          daemon $prog $params
                          rv=$?
                          echo
                          [ $rv -eq 0 ] && touch $lockfile
                          return $rv
                      }
                      
                      stop()
                      {
                          echo -n $"Shutting down ZABBIX agent: "
                          killproc $prog
                          rv=$?
                          echo
                          [ $rv -eq 0 ] && rm -f $lockfile
                          return $rv
                      }
                      
                      restart()
                      {
                          stop
                          start
                      }
                      
                      case "$1" in
                          start|stop|restart)
                              $1
                              ;;
                          force-reload)
                              restart
                              ;;
                          status)
                              status $prog
                              ;;
                          try-restart|condrestart)
                              if status $prog >/dev/null ; then
                                  restart
                              fi
                              ;;
                          reload)
                              action $"Service ${0##*/} does not support the reload action: " /bin/false
                              exit 3
                              ;;
                          *)
                              echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
                              exit 2
                              ;;
                      esac
                      
                      EOF
                      
                      # Here is our zabbix-server init script, for CentOS
                      %{__cat} <<'EOF' > zabbix-server.initscript
                      #!/bin/sh
                      #
                      # chkconfig: - 85 15
                      # description: ZABBIX server daemon
                      # config: /opt/zabbix/etc/zabbix_server.conf
                      #
                      
                      ### BEGIN INIT INFO
                      # Provides: zabbix
                      # Required-Start: $local_fs $network
                      # Required-Stop: $local_fs $network
                      # Default-Start:
                      # Default-Stop: 0 1 2 3 4 5 6
                      # Short-Description: Start and stop ZABBIX server
                      # Description: ZABBIX server
                      ### END INIT INFO
                      
                      # Source function library.
                      . /etc/rc.d/init.d/functions
                      
                      prog="%{_bindir}/zabbix_server"
                      params="-c %{_sysconfdir}/zabbix_server.conf"
                      lockfile=/var/lock/subsys/zabbix
                      
                      start()
                      {
                          echo -n $"Starting ZABBIX server: "
                          daemon $prog $params
                          rv=$?
                          echo
                          [ $rv -eq 0 ] && touch $lockfile
                          return $rv
                      }
                      
                      stop()
                      {
                          echo -n $"Shutting down ZABBIX server: "
                          killproc $prog
                          rv=$?
                          echo
                          [ $rv -eq 0 ] && rm -f $lockfile
                          return $rv
                      }
                      
                      restart()
                      {
                          stop
                          start
                      }
                      
                      case "$1" in
                          start|stop|restart)
                              $1
                              ;;
                          force-reload)
                              restart
                              ;;
                          status)
                              status $prog
                              ;;
                          try-restart|condrestart)
                              if status $prog >/dev/null ; then
                                  restart
                              fi
                              ;;
                          reload)
                              action $"Service ${0##*/} does not support the reload action: " /bin/false
                              exit 3
                              ;;
                          *)
                              echo $"Usage: $0 {start|stop|status|restart|try-restart|force-reload}"
                              exit 2
                              ;;
                      esac
                      
                      EOF
                      
                      # NOTE: ssh2 does not compile at this time for 1.8.1, so this is moved up here for now
                      #       --with-ssh2 \
                      %build
                      %configure \
                              --with-openipmi \
                              --with-jabber \
                              %{_cfg_db} \
                              --with-libcurl \
                              --enable-server \
                              --enable-proxy \
                              --enable-agent \
                              --with-net-snmp \
                              --prefix=%{_prefix} \
                              --exec-prefix=%{_prefix} \
                              --bindir=%{_bindir} \
                              --sbindir=%{_bindir} \
                              --mandir=%{_mandir} \
                              --libdir=%{_libdir} \
                              --sysconfdir=%{_sysconfdir} \
                      
                      %{__make}
                      
                      %install
                      # Clear the build area
                      rm -rf $RPM_BUILD_ROOT
                      
                      # Create the zabbix directories under the build area
                      install -d $RPM_BUILD_ROOT/%{_sysconfdir}
                      install -d $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd
                      install -d $RPM_BUILD_ROOT/%{_appdir}
                      install -d $RPM_BUILD_ROOT/%{_webrootdir}
                      
                      # add the init scripts
                      install -D -m0755 zabbix-proxy.initscript $RPM_BUILD_ROOT/etc/init.d/zabbix-proxy
                      install -D -m0755 zabbix-agentd.initscript $RPM_BUILD_ROOT/etc/init.d/zabbix-agentd
                      install -D -m0755 zabbix-server.initscript $RPM_BUILD_ROOT/etc/init.d/zabbix-server
                      
                      # Change the default locations for configuration files in all of the man files
                      sed -i -e 's|/etc/zabbix/|%{_sysconfdir}/|g' man/*.man
                      
                      # Change the alert scripts directory to where you want it to be
                      sed -i -e 's|/home/zabbix/bin|%{_alertscriptsdir}/|g' src/zabbix_server/server.c
                      sed -i -e 's|/home/zabbix/bin|%{_alertscriptsdir}/|g' src/zabbix_proxy/proxy.c
                      
                      # Change the external scripts directory to where you want it to be
                      sed -i -e 's|/etc/zabbix/externalscripts|%{_extscriptsdir}/|g' src/zabbix_proxy/proxy.c
                      sed -i -e 's|/etc/zabbix/externalscripts|%{_extscriptsdir}/|g' src/zabbix_server/server.c
                      
                      # Change the default locations for the configuration file
                      sed -i -e 's|/etc/zabbix/|%{_sysconfdir}/|g' src/zabbix_agent/zabbix_agentd.c
                      sed -i -e 's|/etc/zabbix/|%{_sysconfdir}/|g' src/zabbix_server/server.c
                      
                      %{__make} install \
                              DESTDIR=$RPM_BUILD_ROOT
                      
                      # Copy the zabbix configuration files to the build area
                      install misc/conf/zabbix_{a*,s*,p*} $RPM_BUILD_ROOT%{_sysconfdir}
                      
                      # copy the web front end to the build area
                      cp -r frontends/php/* $RPM_BUILD_ROOT%{_webrootdir}
                      
                      %clean
                      rm -rf $RPM_BUILD_ROOT
                      
                      %pre
                      # Add the zabbix user if it's not present
                      if [ -z "`grep zabbix /etc/group`" ]; then
                        /usr/sbin/groupadd zabbix >/dev/null 2>&1
                      fi
                      
                      # create ZABBIX user
                      if [ -z "`grep zabbix /etc/passwd`" ]; then
                        /usr/sbin/useradd -g zabbix -c "Zabbix User" -s /bin/false zabbix >/dev/null 2>&1
                      fi
                      
                      %postun
                      userdel --force zabbix
                      
                      %post
                      mkdir -p %{_bindir}
                      mkdir -p %{_logdir}
                      mkdir -p %{_extscriptsdir}
                      mkdir -p %{_piddir}
                      chown -R zabbix:zabbix %{_piddir}
                      chown -R zabbix:zabbix %{_bindir}
                      chown -R zabbix:zabbix %{_logdir}
                      chown -R zabbix:zabbix %{_extscriptsdir}
                      
                      %post proxy
                      # Configure the ZABBIX Proxy
                      mkdir -p %{_alertscriptsdir}
                      chown -R zabbix:zabbix %{_alertscriptsdir}
                      
                      sed -i -e "s|Server=127.0.0.1|Server=%{_svraddr}|g" \
                             -e "s|Hostname=Zabbix Server|Hostname=`uname -n`|g" \
                             -e "s|LogFile=/tmp/zabbix_proxy.log|LogFile=%{_logdir}/zabbix_proxy.log|g" \
                             -e "s|# LogFileSize=1|LogFileSize=%{_maxlogsize}|g" \
                             -e "s|# PidFile=/tmp/zabbix_proxy.pid|PidFile=%{_piddir}/zabbix_proxy.pid|g" \
                             -e "s|# ExternalScripts=/etc/zabbix/externalscripts|ExternalScripts=%{_extscriptsdir}|g" \
                              %{_sysconfdir}/zabbix_proxy.conf
                      
                      # Make sure we it runs at start up
                      chkconfig --add zabbix-proxy
                      chkconfig zabbix-proxy on
                      
                      %post agent
                      # Configure the ZABBIX agent daemon
                      sed -i -e "s|# PidFile=/tmp/zabbix_agentd.pid|PidFile=%{_piddir}/zabbix_agentd.pid|g" \
                             -e "s|# LogFileSize=1|LogFileSize=%{_maxlogsize}|g" \
                             -e "s|# EnableRemoteCommands=0|EnableRemoteCommands=1|g" \
                             -e "s|# LogRemoteCommands=0|LogRemoteCommands=1|g" \
                             -e "s|Server=127.0.0.1|Server=%{_svraddr}|g" \
                             -e "s|Hostname=Zabbix Server|Hostname=`uname -n`|g" \
                             -e "s|LogFile=/tmp/zabbix_agentd.log|LogFile=%{_logdir}/zabbix_agentd.log|g" \
                              %{_sysconfdir}/zabbix_agentd.conf
                      
                      # configure the standalone ZABBIX agent
                      sed -i -e "s|Server=127.0.0.1|Server=%{_svraddr}|g" %{_sysconfdir}/zabbix_agent.conf
                      
                      # configure the windows ZABBIX configuration file
                      sed -i -e "s|# LogFileSize=1|LogFileSize=%{_maxlogsize}|g" \
                             -e "s|# EnableRemoteCommands=0|EnableRemoteCommands=1|g" \
                             -e "s|# LogRemoteCommands=0|LogRemoteCommands=1|g" \
                             -e "s|Server=127.0.0.1|Server=%{_svraddr}|g" \
                              %{_sysconfdir}/zabbix_agentd.win.conf
                      
                      # Make sure we it runs at start up
                      chkconfig --add zabbix-agentd
                      chkconfig zabbix-agentd on
                      
                      %post server
                      # configure the ZABBIX server
                      mkdir -p %{_alertscriptsdir}
                      chown -R zabbix:zabbix %{_alertscriptsdir}
                      
                      sed -i -e "s|LogFile=/tmp/zabbix_server.log|LogFile=%{_logdir}/zabbix_server.log|g" \
                             -e "s|# LogFileSize=1|LogFileSize=%{_maxlogsize}|g" \
                             -e "s|# PidFile=/tmp/zabbix_server.pid|PidFile=%{_piddir}/zabbix_server.pid|g" \
                             -e "s|# ExternalScripts=/etc/zabbix/externalscripts|ExternalScripts=%{_extscriptsdir}|g" \
                             -e "s|# AlertScriptsPath=/home/zabbix/bin/|AlertScriptsPath=%{_alertscriptsdir}/|g" \
                              %{_sysconfdir}/zabbix_server.conf
                      # Make sure we it runs at start up
                      chkconfig --add zabbix-server
                      chkconfig zabbix-server on
                      
                      %post frontend-php
                      # replace the soft link so the web interface is using the correct
                      # interface
                      mkdir -p %{_prefix}/www
                      chown -R apache:apache %{_prefix}/www
                      ln -sf %{_webrootdir} %{_websoftdir}
                      
                      # add zabbix to apache
                      %{__cat} >%{_apachedir}/zabbix.conf <<EOF
                      <VirtualHost *:80>
                          DocumentRoot "%{_websoftdir}"
                          DirectoryIndex index.php
                      <Directory "%{_websoftdir}">
                          Options Indexes FollowSymLinks MultiViews
                          AllowOverride All
                          Order allow,deny
                          Allow from all
                      </Directory>
                      </VirtualHost>
                      EOF
                      
                      # Reload httpd so it recognizes the new config file
                      /sbin/service httpd reload
                      
                      # Make sure httpd is running at start up
                      chkconfig httpd on
                      
                      %postun frontend-php
                      rm -f %{_websoftdir}
                      rm -f %{_apachedir}/zabbix.conf
                      /sbin/service httpd reload
                      
                      %files
                      %defattr(644,root,root,755)
                      %doc AUTHORS FAQ NEWS README ChangeLog
                      %attr(750,zabbix,zabbix) %dir %{_sysconfdir}
                      
                      %files agent
                      %defattr(644,root,root,755)
                      #%attr(750,zabbix,zabbix) %dir %{_logdir}/zabbix-agent.log
                      %attr(640,zabbix,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.conf
                      %attr(640,zabbix,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agent.conf
                      %attr(640,zabbix,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_agentd.win.conf
                      %attr(755,root,root) /etc/init.d/zabbix-agentd
                      %attr(755,root,root) %{_bindir}/zabbix_agentd
                      %attr(755,root,root) %{_bindir}/zabbix_agent
                      %{_mandir}/man8/zabbix_agentd.8*
                      
                      %files frontend-php
                      %defattr(644,root,root,755)
                      %attr(775,apache,apache) %{_webrootdir}
                      
                      %files get
                      %defattr(644,root,root,755)
                      %attr(755,root,root) %{_bindir}/zabbix_get
                      %{_mandir}/man1/zabbix_get.1*
                      
                      %files sender
                      %defattr(644,root,root,755)
                      %attr(755,root,root) %{_bindir}/zabbix_sender
                      %{_mandir}/man1/zabbix_sender.1*
                      
                      %files server
                      %defattr(644,root,root,755)
                      %attr(644,root,root) %doc create upgrades
                      %attr(755,root,root) /etc/init.d/zabbix-server
                      %attr(640,zabbix,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_server.conf
                      %attr(755,root,root) %{_bindir}/zabbix_server
                      %{_mandir}/man8/zabbix_server.8*
                      
                      %files proxy
                      %defattr(644,root,root,755)
                      %attr(755,root,root) %{_bindir}/zabbix_proxy
                      %attr(755,root,root) /etc/init.d/zabbix-proxy
                      %attr(640,zabbix,zabbix) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zabbix_proxy.conf
                      %{_mandir}/man8/zabbix_proxy.8*
                      
                      %changelog
                      * Mon Mar 01 2010 Added greater configuration control for faster deployment
                      *  Sol Tutaki <[email protected]>
                      
                      * Fri Jan 08 2010 Added curl support, and proxy RPM support and patches from Tom below
                      *  Andrew Farley <andrewfarley.com>
                      
                      * Tue Jan 05 2010 Bugfix: release version bump triggered a bug causing upgrades to fail.
                      *  Tom De Vylder <[email protected]>
                      
                      * Mon Jan 04 2010 Added dependencies.
                      *  Tom De Vylder <[email protected]>
                      
                      * Thu Dec 24 2009 Initial Commit
                      *  Andrew Farley <andrewfarley.com>
                      
                      Revision 1.8   2009/12/24 00:00:00  Andrew Farley <andrewfarley.com>
                      - Simple RPM Spec file for Zabbix 1.8 (originally designed for CentOS 5.4)

                      Comment

                      • kz282
                        Junior Member
                        • Sep 2009
                        • 6

                        #26
                        Would anyone be so kind as to create a CentOS 5.x RPM of Zabbix 1.8.2?

                        Comment

                        • ericgearhart
                          Senior Member
                          • Jan 2009
                          • 115

                          #27
                          Originally posted by kz282
                          Would anyone be so kind as to create a CentOS 5.x RPM of Zabbix 1.8.2?
                          Here are Zabbix 1.8.2 RPMs for CentOS and RHEL:



                          You can point yum directly at this URL, by placing the following text in /etc/yum.repos.d/zabbix.repo

                          Code:
                          [home_ericgearhart_zabbix]
                          name=Zabbix (CentOS_5)
                          type=rpm-md
                          baseurl=http://download.opensuse.org/repositories/home:/ericgearhart:/zabbix/CentOS_5/
                          gpgcheck=1
                          gpgkey=http://download.opensuse.org/repositories/home:/ericgearhart:/zabbix/CentOS_5/repodata/repomd.xml.key
                          enabled=1
                          ... then you should be able to do 'yum install zabbix zabbix-server zabbix-frontend-php'

                          I've tested this on a CentOS box that had Zabbix 1.8.1 and the upgrade went perfectly... enjoy!
                          Last edited by ericgearhart; 08-04-2010, 00:52.

                          Comment

                          • kz282
                            Junior Member
                            • Sep 2009
                            • 6

                            #28
                            Thank you very much!

                            Comment

                            • alubel
                              Junior Member
                              • Jan 2010
                              • 13

                              #29
                              zabbix 1.8.2 rpm

                              Would you mind posting the spec file you used or perhaps building with IPMI support?

                              I updated perfectly with this also from my rpmbuilt 1.8.1 from modding farleys spec but I kinda lost my docs on how I did it.. its no big deal if not - I can probably mod the spec I have for the later version.

                              It's really strange to me, the big plus for us with zabbix is the ipmi out of band IP support, why wouldnt we want that by default!

                              Thanks,

                              Comment

                              • cepho
                                Junior Member
                                • Aug 2010
                                • 4

                                #30
                                can you show me step by step

                                Please can you show me step by step how the rpm installation goes.
                                now i am stack on this one.

                                Jabber library not found


                                Originally posted by Farley
                                The latest version of my RPMs have fixed the permissions. Feel free to check 'em out!



                                Raddy, the latest version of my RPMs have libcurl support. Check 'em up! Should just have to yum update and then yum upgrade and grab the latest revision of the package to fix this up for you!

                                I also added a patch from Tom which fixes some upgrade problems, fixed some permission problems, fixed 64-bit yum (was missing the repodata!), fixed build requirements, AND added a new RPM for zabbix proxy support. So, all in all it's looking great. Again, your feedback is always welcome!

                                Cheers guys!
                                Last edited by cepho; 02-09-2010, 12:39.

                                Comment

                                Working...