Pour installer agent zabbix manuellement sur un serveur linux il faut :
(en tant que root)
récupérer la version de linux :
commande "uname -a"
--> pour le proxy 2.6.18 x64
créer un répertoire zabbix dans /opt :
commande "mkdir /opt/zabbix"
télécharger la version de l'agent correspondant : (Linux 2.6.23 Agents 2.0.4 i386 )
commande "wget http://www.zabbix.com/downloads/2.0.4/zabbix_agents_2.0.4.linux2_6_23.i386.tar.gz"
décompresser l'archive :
commande "tar -xzvf zabbix_agents_2.0.4.linux2_6_23.i386.tar.gz"
supprimer ou déplacer l'archive téléchargée pour éviter les erreurs
commande "mv zabbix_agents_2.0.4.linux2_6_23.i386.tar.gz /root"
créer groupe zabbix
commande : groupadd zabbix
créer utilisateur zabbix :
useradd -g zabbix zabbix
donner tous les droits à l’utilisateur zabbix sur le répertoire /opt/zabbix
commande « chown zabbix:zabbix -R /opt/zabbix »
editer le fichier de configuration dans /opt/zabbix/conf/zabbix_agentd.conf
Remplacer le contenu par le contenu ci-dessous et remplacer les adresses ip présentes par celle de votre serveur zabbix
# This is a config file for the Zabbix agent daemon (Unix)
# To get more information about Zabbix, visit http://www.zabbix.com
############ GENERAL PARAMETERS #################
### Option: PidFile
# Name of PID file.
#
# Mandatory: no
# Default:
# PidFile=/tmp/zabbix_agentd.pid
### Option: LogFile
# Name of log file.
# If not set, syslog is used.
#
# Mandatory: no
# Default:
# LogFile=
LogFile=/var/log/zabbix-agentd.log
### Option: LogFileSize
# Maximum size of log file in MB.
# 0 - disable automatic log rotation.
#
# Mandatory: no
# Range: 0-1024
# Default:
LogFileSize=100
### 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=1
### Option: LogRemoteCommands
# Enable logging of executed shell commands as warnings.
# 0 - disabled
# 1 - enabled
#
# Mandatory: no
# Default:
LogRemoteCommands=1
##### Passive checks related
### Option: Server
# List of comma delimited IP addresses (or hostnames) of Zabbix servers.
# Incoming connections will be accepted only from the hosts listed here.
# No spaces allowed.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=
Server=10.56.144.116
### 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.
# First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
#
# Mandatory: no
# Default:
# ListenIP=0.0.0.0
### Option: StartAgents
# Number of pre-forked instances of zabbix_agentd that process passive checks.
# If set to 0, disables passive checks and the agent will not listen on any TCP port.
#
# Mandatory: no
# Range: 0-100
# Default:
StartAgents=3
##### Active checks related
### Option: ServerActive
# List of comma delimited IP
ort (or hostname
ort) pairs of Zabbix servers for active checks.
# If port is not specified, default port is used.
# IPv6 addresses must be enclosed in square brackets if port for that host is specified.
# If port is not specified, square brackets for IPv6 addresses are optional.
# If this parameter is not specified, active checks are disabled.
# Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
#
# Mandatory: no
# Default:
# ServerActive=
ServerActive=10.56.144.116
### 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=zabbix2.in.ghsa.fr
### Option: HostnameItem
# Item used for generating Hostname if it is undefined.
# Ignored if Hostname is defined.
#
# Mandatory: no
# Default:
# HostnameItem=system.hostname
### 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: 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.
# Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=
# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/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>
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
créer le fichier de log /var/log/zabbix-agentd.log
commande « touch /var/log/zabbix-agentd.log »
attribuer les droits à l’utilisateur zabbix sur ce fichier
commande « chown zabbix:zabbix /var/log/zabbix-agentd.log »
créer le fichier de lancement dans /etc/init.d/zabbix_agentd
Injecter le contenu ci-dessous
#!/bin/bash
progdir="/opt/zabbix/sbin"
counter=0
utilisateur=$(whoami)
zabbix_counter=0
zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | grep -v init.d | wc -l)
start(){
echo "-------------------------------------------------------------------"
echo " LAUNCHING ZABBIX AGENT"
if [ $zabbix_counter -gt 0 ]; then
echo " * Script lance en tant que : $utilisateur"
echo " * Zabbix agent was previously running"
echo " * Number of Zabbix agentd instances= $zabbix_counter"
echo "-----------------------------------------------------------------"
fi
# Checking if the user is able to start the agent.... if the user is not able to, script performs su to
# the user zabbix and starts the agent
if [ $(whoami) != "zabbix" ]; then
sudo -u zabbix /opt/zabbix/sbin/zabbix_agentd
else
# Script is acting as the zabbix user, so it can start the agent.
$progdir/zabbix_agentd
fi
sleep 5
zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | grep -v init.d | wc -l)
if [ $zabbix_counter -gt 0 ]; then
echo " * Zabbix agent succesfully started"
echo " * Number of zabbix agentd instances= $zabbix_counter"
echo "-------------------------------------------------------------------"
else
echo " * Zabbix agent couldn't be started, check Zabbix logs"
echo "-------------------------------------------------------------------"
fi
}
stop(){
# Checking if the user is able to stop the agent.... if the user is not able to, script performs su to
# the user zabbix and kills the agent. Also script tries to kill zabbix-agent processes 5 times using a counter, if at
# the fith try the agent is still there, script outputs a message to the console.
echo "-------------------------------------------------------------------"
echo " STOPPING ZABBIX AGENT"
if [ $zabbix_counter -eq 0 ]; then
echo " * Zabbix agent was not running on this machine"
echo "-------------------------------------------------------------------"
fi
while [ $zabbix_counter -gt 0 ] && [ $counter -lt 5 ] ; do
let counter=counter+1
echo " * Number of Attempts (Max 5)=$counter"
echo " * Stopping zabbix.."
echo " * Number of zabbix agentd instances= $zabbix_counter"
if [ $(whoami) != "zabbix" ];then
sudo -u zabbix killall zabbix_agentd > /dev/null &
else
killall zabbix_agentd > /dev/null &
fi
sleep 5
# Script has a 5 second delay to avoid attempting to kill a process that is still shutting down. If the script
# can't kill the processes, an error will appear.
# After 5 seconds script checks again the number of zabbix_agentd processes running,
# if it's 0, script will exit the loop and continue on
zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | grep -v init.d | wc -l)
done
if [ $zabbix_counter -gt 0 ]; then
echo " * Zabbix agent couldn't be stopped, check Zabbix logs"
echo "-------------------------------------------------------------------"
fi
if [ $zabbix_counter -eq 0 ]; then
echo " * Zabbix agent successfully stopped"
echo "-------------------------------------------------------------------"
fi
}
restart(){
stop
# Gives system some time to stop processes before script restarts service
sleep 5
# Now script can start the agent again
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: zabbix {start|stop|restart}"
exit 1
esac
exit 0
Attribuer les droits de lancement à ce fichier pour tous les utilisateurs
Commandes « chmod o+x /etc/init.d/zabbix_agentd » et « chmod u+x /etc/init.d/zabbix_agentd »
Essayer de lancer manuellement l’agent zabbix pour voir les erreurs
Commandes : « su – zabbix » et « /opt/zabbix/sbin/zabbix_agentd »
En fonction du linux, un message peut apparaître réclamant le fichier de conf dans le répertoire /usr/local/etc/zabbix_agentd.conf , dans ce cas, il suffit de créer un lien symbolique vers le fichier de conf édité ci-dessus (attention, il faut repasser en root pour cette opération):
Commandes : « exit » et « ln -s /opt/zabbix/conf/zabbix_agentd.conf /usr/local/etc/zabbix_agentd.conf »
Et réitérer le test :
Commandes : « su – zabbix » et « /opt/zabbix/sbin/zabbix_agentd »
Si aucun message, vérifier que les processus tournent :
Commande : « ps -edf | grep zabbix_agentd »
Quitter le test pour revenir avec l’utilisateur root et vérifier fonctionnement du lancement automatique :
Commandes : « exit » et « /etc/init.d/zabbix_agentd stop » et « /etc/init.d/zabbix_agentd start »
Ajouter votre machine dans la console WEB de votre serveur zabbix en renseignant son adresse ip et le port 10050
(en tant que root)
récupérer la version de linux :
commande "uname -a"
--> pour le proxy 2.6.18 x64
créer un répertoire zabbix dans /opt :
commande "mkdir /opt/zabbix"
télécharger la version de l'agent correspondant : (Linux 2.6.23 Agents 2.0.4 i386 )
commande "wget http://www.zabbix.com/downloads/2.0.4/zabbix_agents_2.0.4.linux2_6_23.i386.tar.gz"
décompresser l'archive :
commande "tar -xzvf zabbix_agents_2.0.4.linux2_6_23.i386.tar.gz"
supprimer ou déplacer l'archive téléchargée pour éviter les erreurs
commande "mv zabbix_agents_2.0.4.linux2_6_23.i386.tar.gz /root"
créer groupe zabbix
commande : groupadd zabbix
créer utilisateur zabbix :
useradd -g zabbix zabbix
donner tous les droits à l’utilisateur zabbix sur le répertoire /opt/zabbix
commande « chown zabbix:zabbix -R /opt/zabbix »
editer le fichier de configuration dans /opt/zabbix/conf/zabbix_agentd.conf
Remplacer le contenu par le contenu ci-dessous et remplacer les adresses ip présentes par celle de votre serveur zabbix
# This is a config file for the Zabbix agent daemon (Unix)
# To get more information about Zabbix, visit http://www.zabbix.com
############ GENERAL PARAMETERS #################
### Option: PidFile
# Name of PID file.
#
# Mandatory: no
# Default:
# PidFile=/tmp/zabbix_agentd.pid
### Option: LogFile
# Name of log file.
# If not set, syslog is used.
#
# Mandatory: no
# Default:
# LogFile=
LogFile=/var/log/zabbix-agentd.log
### Option: LogFileSize
# Maximum size of log file in MB.
# 0 - disable automatic log rotation.
#
# Mandatory: no
# Range: 0-1024
# Default:
LogFileSize=100
### 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=1
### Option: LogRemoteCommands
# Enable logging of executed shell commands as warnings.
# 0 - disabled
# 1 - enabled
#
# Mandatory: no
# Default:
LogRemoteCommands=1
##### Passive checks related
### Option: Server
# List of comma delimited IP addresses (or hostnames) of Zabbix servers.
# Incoming connections will be accepted only from the hosts listed here.
# No spaces allowed.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=
Server=10.56.144.116
### 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.
# First IP address is sent to Zabbix server if connecting to it to retrieve list of active checks.
#
# Mandatory: no
# Default:
# ListenIP=0.0.0.0
### Option: StartAgents
# Number of pre-forked instances of zabbix_agentd that process passive checks.
# If set to 0, disables passive checks and the agent will not listen on any TCP port.
#
# Mandatory: no
# Range: 0-100
# Default:
StartAgents=3
##### Active checks related
### Option: ServerActive
# List of comma delimited IP
ort (or hostname
ort) pairs of Zabbix servers for active checks.# If port is not specified, default port is used.
# IPv6 addresses must be enclosed in square brackets if port for that host is specified.
# If port is not specified, square brackets for IPv6 addresses are optional.
# If this parameter is not specified, active checks are disabled.
# Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
#
# Mandatory: no
# Default:
# ServerActive=
ServerActive=10.56.144.116
### 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=zabbix2.in.ghsa.fr
### Option: HostnameItem
# Item used for generating Hostname if it is undefined.
# Ignored if Hostname is defined.
#
# Mandatory: no
# Default:
# HostnameItem=system.hostname
### 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: 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.
# Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=
# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/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>
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
créer le fichier de log /var/log/zabbix-agentd.log
commande « touch /var/log/zabbix-agentd.log »
attribuer les droits à l’utilisateur zabbix sur ce fichier
commande « chown zabbix:zabbix /var/log/zabbix-agentd.log »
créer le fichier de lancement dans /etc/init.d/zabbix_agentd
Injecter le contenu ci-dessous
#!/bin/bash
progdir="/opt/zabbix/sbin"
counter=0
utilisateur=$(whoami)
zabbix_counter=0
zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | grep -v init.d | wc -l)
start(){
echo "-------------------------------------------------------------------"
echo " LAUNCHING ZABBIX AGENT"
if [ $zabbix_counter -gt 0 ]; then
echo " * Script lance en tant que : $utilisateur"
echo " * Zabbix agent was previously running"
echo " * Number of Zabbix agentd instances= $zabbix_counter"
echo "-----------------------------------------------------------------"
fi
# Checking if the user is able to start the agent.... if the user is not able to, script performs su to
# the user zabbix and starts the agent
if [ $(whoami) != "zabbix" ]; then
sudo -u zabbix /opt/zabbix/sbin/zabbix_agentd
else
# Script is acting as the zabbix user, so it can start the agent.
$progdir/zabbix_agentd
fi
sleep 5
zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | grep -v init.d | wc -l)
if [ $zabbix_counter -gt 0 ]; then
echo " * Zabbix agent succesfully started"
echo " * Number of zabbix agentd instances= $zabbix_counter"
echo "-------------------------------------------------------------------"
else
echo " * Zabbix agent couldn't be started, check Zabbix logs"
echo "-------------------------------------------------------------------"
fi
}
stop(){
# Checking if the user is able to stop the agent.... if the user is not able to, script performs su to
# the user zabbix and kills the agent. Also script tries to kill zabbix-agent processes 5 times using a counter, if at
# the fith try the agent is still there, script outputs a message to the console.
echo "-------------------------------------------------------------------"
echo " STOPPING ZABBIX AGENT"
if [ $zabbix_counter -eq 0 ]; then
echo " * Zabbix agent was not running on this machine"
echo "-------------------------------------------------------------------"
fi
while [ $zabbix_counter -gt 0 ] && [ $counter -lt 5 ] ; do
let counter=counter+1
echo " * Number of Attempts (Max 5)=$counter"
echo " * Stopping zabbix.."
echo " * Number of zabbix agentd instances= $zabbix_counter"
if [ $(whoami) != "zabbix" ];then
sudo -u zabbix killall zabbix_agentd > /dev/null &
else
killall zabbix_agentd > /dev/null &
fi
sleep 5
# Script has a 5 second delay to avoid attempting to kill a process that is still shutting down. If the script
# can't kill the processes, an error will appear.
# After 5 seconds script checks again the number of zabbix_agentd processes running,
# if it's 0, script will exit the loop and continue on
zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | grep -v init.d | wc -l)
done
if [ $zabbix_counter -gt 0 ]; then
echo " * Zabbix agent couldn't be stopped, check Zabbix logs"
echo "-------------------------------------------------------------------"
fi
if [ $zabbix_counter -eq 0 ]; then
echo " * Zabbix agent successfully stopped"
echo "-------------------------------------------------------------------"
fi
}
restart(){
stop
# Gives system some time to stop processes before script restarts service
sleep 5
# Now script can start the agent again
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: zabbix {start|stop|restart}"
exit 1
esac
exit 0
Attribuer les droits de lancement à ce fichier pour tous les utilisateurs
Commandes « chmod o+x /etc/init.d/zabbix_agentd » et « chmod u+x /etc/init.d/zabbix_agentd »
Essayer de lancer manuellement l’agent zabbix pour voir les erreurs
Commandes : « su – zabbix » et « /opt/zabbix/sbin/zabbix_agentd »
En fonction du linux, un message peut apparaître réclamant le fichier de conf dans le répertoire /usr/local/etc/zabbix_agentd.conf , dans ce cas, il suffit de créer un lien symbolique vers le fichier de conf édité ci-dessus (attention, il faut repasser en root pour cette opération):
Commandes : « exit » et « ln -s /opt/zabbix/conf/zabbix_agentd.conf /usr/local/etc/zabbix_agentd.conf »
Et réitérer le test :
Commandes : « su – zabbix » et « /opt/zabbix/sbin/zabbix_agentd »
Si aucun message, vérifier que les processus tournent :
Commande : « ps -edf | grep zabbix_agentd »
Quitter le test pour revenir avec l’utilisateur root et vérifier fonctionnement du lancement automatique :
Commandes : « exit » et « /etc/init.d/zabbix_agentd stop » et « /etc/init.d/zabbix_agentd start »
Ajouter votre machine dans la console WEB de votre serveur zabbix en renseignant son adresse ip et le port 10050
Comment