======Zabbix Configuration======= =====App Server===== ==== Install and configure Zabbix Agent:==== === Install from RPM (preferred method) === cd /tmp wget --user=expbbbu --password= ftp://qacollab01.exphosted.com/softrepo/app/installed-software/zabbix/agent/*.rpm yum localinstall *.rpm #Replace with IP address of the Zabbix Server / Proxy sed 's/Server=127.0.0.1/Server=/' /etc/zabbix/zabbix_agentd.default >> /etc/zabbix/zabbix_agentd.conf === Install from Source === Download Zabbix source corresponding to the server version. useradd zabbix tar -zxvf zabbix-2.2.0.tar.gz ./configure --enable-agent --prefix=/usr/ --sysconfdir=/etc/zabbix/ make install #Replace with IP address of the Zabbix Server / Proxy mv /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.default sed 's/Server=127.0.0.1/Server=/' /etc/zabbix/zabbix_agentd.default >> /etc/zabbix/zabbix_agentd.conf ====Additional configuration for App server:==== echo "ListenPort=10051" >> /etc/zabbix/zabbix_agentd.conf echo "UserParameter=passenger.status[*],/usr/local/bin/zab_passenger-status $1" >> /etc/zabbix/zabbix_agentd.conf ====Install Munin==== yum install munin-common munin-node -y If YUM does not find munin, install DAG repository. Install DAG's GPG key: rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt Download & Install DAG's YUM repository RPM: wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm rpm -i rpmforge-release-0.5.3-1.el5.rf.*.rpm You should be able to install munin with the command above. Munin-common package is soon to be merged within munin-node. ==== Configure Munin ==== Append the following to /etc/munin/plugin-conf.d/munin-node [passenger_*] user munin command /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby %c Create /usr/share/munin/plugins/passenger_memory_stats #!/usr/bin/env /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby # put in /etc/munin/plugins and restart munin-node # by Dan Manges, http://www.dcmanges.com/blog/rails-application-visualization-with-munin # NOTE: you might need to add munin to allow passwordless sudo for passenger-memory-stats ENV['HTTPD'] = '/opt/apache2/bin/httpd' def output_config puts <<-END graph_category App graph_title Passenger memory stats graph_vlabel count memory.label memory END exit 0 end def output_values status = `sudo /opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-memory-stats | tail -1` unless $?.success? $stderr.puts "failed executing passenger-memory-stats" exit 1 end status =~ /(\d+\.\d+)/ puts "memory.value #{$1}" end if ARGV[0] == "config" output_config else output_values end Create /usr/share/munin/plugins/passenger_status #!/bin/env /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby def output_config puts <<-END graph_category App graph_title passenger status graph_vlabel count sessions.label sessions max.label max processes running.label running processes active.label active processes END exit 0 end def output_values status = `sudo /opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-status` unless $?.success? $stderr.puts "failed executing passenger-status" exit 1 end status =~ /max\s+=\s+(\d+)/ puts "max.value #{$1}" status =~ /count\s+=\s+(\d+)/ puts "running.value #{$1}" status =~ /active\s+=\s+(\d+)/ puts "active.value #{$1}" total_sessions = 0 status.scan(/Sessions: (\d+)/).flatten.each { |count| total_sessions += count.to_i } puts "sessions.value #{total_sessions}" end if ARGV[0] == "config" output_config else output_values end Create symbolic links to activate them cd /etc/munin/plugins ln -nfs /usr/share/munin/plugins/passenger_memory_stats passenger_memory_stats ln -nfs /usr/share/munin/plugins/passenger_status passenger_status Append to the sudoers file munin ALL=(ALL) NOPASSWD:/opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-status, /opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-memory-stats zabbix ALL=(ALL) NOPASSWD:/opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-status, /opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-memory-stats Finally, installed initialization script under /etc/init.d/zabbix-agent. An example is available on software repository. ===== BBB Server Configuration ===== Install Zabbix Agent using the guide above for app servers. Additional configuration for BBB server: echo "ListenPort=10050" > /etc/zabbix/zabbix_agentd.conf Install upstart script /etc/init/zabbix-agent.conf # zabbix-agent - Start zabbix agent description "Zabbix Agent" start on runlevel [2345] stop on runlevel [016] respawn expect daemon exec /usr/sbin/zabbix_agentd