IT Notebook

とあるエンジニアの備忘録

Zabbix - Zabbix Agentの旧バージョン(1.8)のソースからのインストール手順

Zabbix Agent1.8をインストールする必要があったのでその手順をまとめました

環境

Ubuntu 11.10
Zabbix Agent : 1.8.22

Zabbix Agentのインストール

wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.22.tar.gz
tar -zxf zabbix-1.8.22.tar.gz
cd zabbix-1.8.22
sudo ./configure --enable-agent
sudo make install

Zabbixユーザ作成

sudo groupadd zabbix -g sudo useradd -u -g zabbix -s /bin/false zabbix

Zabbix用ディレクトリ作成

mkdir -p /var/log/zabbix
mkdir -p /var/run/zabbix-agent
chowm zabbix:zabbix /var/log/zabbix /var/run/zabbix-agent

「/etc/init.d/zabbix-agent」ファイル設定

#! /bin/sh
### BEGIN INIT INFO
# Provides:          zabbix-agent
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start zabbix-agent daemon
### END INIT INFO

set -e

NAME=zabbix_agentd
DAEMON=/usr/local/sbin/$NAME
DESC="Zabbix agent"

test -x $DAEMON || exit 0

DIR=/var/run/zabbix-agent
PID=$DIR/$NAME.pid
RETRY=15

if test ! -d "$DIR"; then
  mkdir "$DIR"
  chown -R zabbix:zabbix "$DIR"
fi

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

# define LSB log_* functions.
. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Starting $DESC" "$NAME"
    start-stop-daemon --oknodo --start --pidfile $PID \
      --exec $DAEMON >/dev/null 2>&1
    case "$?" in
        0) log_end_msg 0 ;;
        *) log_end_msg 1; exit 1 ;;
    esac
    ;;
  stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    start-stop-daemon --oknodo --stop --exec $DAEMON --retry $RETRY
    case "$?" in
        0) log_end_msg 0 ;;
        *) log_end_msg 1; exit 1 ;;
    esac
    ;;
  status)
   ls -l /proc/`cat $PID`/exe > /dev/null 2>&1
   if [ $? -eq 0 ]; then
       echo "$DESC is running"
       exit 0
   else
       echo "$DESC is NOT running"
       exit 1
   fi
   ;;
  restart|force-reload)
    $0 stop
    $0 start
    ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0

「/etc/zabbix/zabbix_agentd.conf」ファイル設定

# This is a config file for Zabbix Agent (Unix)
# To get more information about Zabbix, visit http://www.zabbix.com

############ GENERAL PARAMETERS #################

### Option: PidFile
#   Name of PID file.
#
# Mandatory: no
# Default:
PidFile=/var/run/zabbix-agent/zabbix_agentd.pid

### Option: LogFile
#   Name of log file.
#   If not set, syslog is used.
#
# Mandatory: no
# Default:
# LogFile=
LogFile=/var/log/zabbix-agent/zabbix_agentd.log

### Option: LogFileSize
#   Maximum size of log file in MB.
#   0 - disable automatic log rotation.
#
# Mandatory: no
# Range: 0-1024
# Default:
# LogFileSize=1
LogFileSize=0

### Option: DebugLevel
#   Specifies debug level
#   0 - no debug
#   1 - critical information
#   2 - error information
#   3 - warnings
#   4 - for debugging (produces lots of information)
#
# Mandatory: no
# Range: 0-4
# Default:
# DebugLevel=3

### Option: SourceIP
#   Source IP address for outgoing connections.
#
# Mandatory: no
# Default:
# SourceIP=

### Option: EnableRemoteCommands
#   Whether remote commands from Zabbix server are allowed.
#   0 - not allowed
#   1 - allowed
#
# Mandatory: no
# Default:
# EnableRemoteCommands=0

### Option: LogRemoteCommands
#   Enable logging of executed shell commands as warnings.
#   0 - disabled
#   1 - enabled
#
# Mandatory: no
# Default:
# LogRemoteCommands=0

##### Passive checks related

### Option: Server
#   List of comma delimited IP addresses (or hostnames) of Zabbix servers.
#   No spaces allowed. First entry is used for receiving list of and sending active checks.
#   If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: yes
# Default:
# Server=
Server=<ZabbixServer>

### Option: Hostname
#   Unique, case sensitive hostname.
#   Required for active checks and must match hostname as configured on the server.
#   Value is acquired from HostnameItem if undefined.
#
# Mandatory: no
# Default:
Hostname=<Hostname>

### Option: HostnameItem
#   Item used for generating Hostname if it is undefined.
#   Ignored if Hostname is defined.
#
# Mandatory: no
# Default:
# HostnameItem=system.hostname

### Option: ListenPort
#   Agent will listen on this port for connections from the server.
#
# Mandatory: no
# Range: 1024-32767
# Default:
# ListenPort=10050

### Option: ListenIP
#   List of comma delimited IP addresses that the agent should listen on.
#
# Mandatory: no
# Default:
# ListenIP=0.0.0.0

### Option: DisablePassive
#   Disable passive checks. The agent will not listen on any TCP port.
#   Only active checks will be processed.
#   0 - do not disable
#   1 - disable
#
# Mandatory: no
# Default:
# DisablePassive=0

##### Active checks related

### Option: DisableActive
#   Disable active checks. The agent will work in passive mode listening for server.
#
# Mandatory: no
# Default:
DisableActive=0

### Option: ServerPort
#   Server port for retrieving list of and sending active checks.
#
# Mandatory: no
# Default:
# ServerPort=10051

### Option: RefreshActiveChecks
#   How often list of active checks is refreshed, in seconds.
#
# Mandatory: no
# Range: 60-3600
# Default:
# RefreshActiveChecks=120

### Option: BufferSend
#   Do not keep data longer than N seconds in buffer.
#
# Mandatory: no
# Range: 1-3600
# Default:
# BufferSend=5

### Option: BufferSize
#   Maximum number of values in a memory buffer. The agent will send
#   all collected data to Zabbix Server or Proxy if the buffer is full.
#
# Mandatory: no
# Range: 2-65535
# Default:
# BufferSize=100

### Option: MaxLinesPerSecond
#   Maximum number of new lines the agent will send per second to Zabbix Server
#   or Proxy processing 'log' and 'logrt' active checks.
#   The provided value will be overridden by the parameter 'maxlines',
#   provided in 'log' or 'logrt' item keys.
#
# Mandatory: no
# Range: 1-1000
# Default:
# MaxLinesPerSecond=100

### Option: AllowRoot
#   Allow the agent to run as 'root'. If disabled and the agent is started by 'root', the agent
#       will try to switch to user 'zabbix' instead. Has no effect if started under a regular user.
#   0 - do not allow
#   1 - allow
#
# Mandatory: no
# Default:
# AllowRoot=0

############ ADVANCED PARAMETERS #################

### Option: Alias
#   Sets an alias for parameter. It can be useful to substitute long and complex parameter name with a smaller and simpler one.
#
# Mandatory: no
# Range:
# Default:

### Option: StartAgents
#   Number of pre-forked instances of zabbix_agentd that process passive checks.
#
# Mandatory: no
# Range: 1-100
# Default:
# StartAgents=3

### Option: Timeout
#   Spend no more than Timeout seconds on processing
#
# Mandatory: no
# Range: 1-30
# Default:
# Timeout=3

### Option: Include
#   You may include individual files or all files in a directory in the configuration file.
#
# Mandatory: no
# Default:
# Include=

# Include=/etc/zabbix/zabbix_agentd.userparams.conf
# Include=/etc/zabbix/zabbix_agentd/
Include=/etc/zabbix/zabbix_agentd.conf.d/

####### USER-DEFINED MONITORED PARAMETERS #######

### Option: UnsafeUserParameters
#   Allow all characters to be passed in arguments to user-defined parameters.
#   0 - do not allow
#   1 - allow
#
# Mandatory: no
# Range: 0-1
# Default:
# UnsafeUserParameters=0

### Option: UserParameter
#   User-defined parameter to monitor. There can be several user-defined parameters.
#   Format: UserParameter=<key>,<shell command>
#   Note that shell command must not return empty string or EOL only.
#   See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=

起動スクリプト設定

update-rc.d zabbix-agent default

Zabbix1.8系の起動スクリプトは重宝しております