How-to,  XCP-ng

Instalando o zabbix-agent no XCP-ng

Zabbix é uma ferramenta poderosíssima de monitoramento de rede, para tirar o máximo proveito de suas features é necessário um agente instalado na maquina. O agente tem por finalidade coletar métricas e enviar a um servidor que as processa e transforma em metadados para posterior ou imediata análise do administrador.

Faremos a instalação do zabbix-agent na versão release 6.0 em um XCP-NG 8 , caso deseje instalar outra versão navegue pelo diretório abaixo e e substitua o link do primeiro passo, o restante do procedimento se mantém o mesmo.

Link do diretório de versões

http://repo.zabbix.com/zabbix/

Vale lembrar que o XCP-NG 8 roda sobre um CentOs-7 (el7) e que a instalação do zabbix-agent é feita diretamente no sistema operacional e não no hypervisor. Também é preciso lembrar que, ao se fazer um upgrade de versão do XCP-NG via midia o zabbix-agent será apagado e será necessário repetir sua instalação.

O primeiro passo é instalar o repositório Zabbix, como dito acima, altere o link para a versão que deseja instalar. Verifique portanto a versão do seu Zabbix antes de prosseguir.

rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

Vamos instalar uma dependência necessária

rpm -Uvh http://mirror.centos.org/centos/7/os/x86_64/Packages/pcre2-10.23-2.el7.x86_64.rpm

Atualizando os repositórios

yum repolist all

Instale o zabbix-agent pelo repositório

yum install zabbix-agent -y

Configure zabbix-agent editando o arquivo abaixo, utilize o editor de sua preferência. No final do post há um arquivo exemplo, use como referência.

Inicie o serviço

service zabbix-agent start

Verifique no status se o serviço iniciou normalmente, se tudo estiver certo a linha aparecerá Active: active (running)

service zabbix-agent status

Edite o arquivo abaixo com as configurações necessárias para seu server, é recomendável fazer uma cópia do original para backup. No final do post temos um arquivo de exemplo.

vi /etc/zabbix/zabbix_agentd.conf

Após alterar, salve e reinicie o serviço, se o serviço não subir, provavelmente exitem erros no arquivo conf, revise.

service zabbix-agent restart

Coloque o zabbix-agent para iniciar com o sistema operacional

chkconfig zabbix-agent on

Libere a conexão no firewall do CentOs-7 editando o arquivo /etc/sysconfig/iptables

vi /etc/sysconfig/iptables

Insira as linas abaixo antes das linhas com REJECT, caso hajam, e antes da linha final COMMIT

-A RH-Firewall-1-INPUT -p udp -m udp --dport 10050 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 10051 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 10051 -j ACCEPT

Edite o arquivo /etc/services

vi /etc/services

Verifique se as linhas abaixo foram inseridas automaticamente no arquivo, caso não foram você deve inserí-las seguindo a ordem das portas, no caso 10050, provavelmente próximo ao final do arquivo. Use as teclas Page Up e Page Down para facilitar a localização

zabbix-agent    10050/tcp                       # Zabbix Agent
zabbix-agent    10050/udp                       # Zabbix Agent
zabbix-trapper  10051/tcp                       # Zabbix Trapper
zabbix-trapper  10051/udp                       # Zabbix Trapper

Salve o arquivo e reinicie o iptables

service iptables restart

Se tudo correu dentro do esperado o agente já está habilitado e funcional.

Nosso grupo no Telegram: https://t.me/xcpng

Exemplo de configuração do arquivo /etc/zabbix/zabbix_agent.conf no XCP-ng

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 

PidFile=/run/zabbix/zabbix_agentd.pid

### Option: LogFile
#       Name of log file.
#       If not set, syslog is used.
#
# Mandatory: no
# Default:
# LogFile= 

LogFile=/var/log/zabbix/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=1

### 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.
#	Incoming connections will be accepted only from the hosts listed here.
#	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= 

#Ip do servidor Zabbix
Server=192.168.0.10 

### 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:port (or hostname:port) 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=

#Ip do servidor Zabbix
ServerActive=192.168.0.10
### 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=Zabbix server

### Option: HostnameItem
#	Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
#	Does not support UserParameters or aliases.
#
# Mandatory: no
# Default:

# O Parâmetro system.hostname indica que o hostname configurado 
# na maquina será usado pelo agent como Hostname no Zabbix
HostnameItem=system.hostname
### Option: HostMetadata
#	Optional parameter that defines host metadata.
#	Host metadata is used at host auto-registration process. 
#	An agent will issue an error and not start if the value is over limit of 255 characters.
#	If not defined, value will be acquired from HostMetadataItem.
#
# Mandatory: no
# Range: 0-255 characters
# Default:
# HostMetadata=

### Option: HostMetadataItem
#	Optional parameter that defines an item used for getting host metadata.
#	Host metadata is used at host auto-registration process.
#	During an auto-registration request an agent will log a warning message if
#	the value returned by specified item is over limit of 255 characters.
#	This option is only used when HostMetadata is not defined.
#
# Mandatory: no
# Default:
# HostMetadataItem=

### 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

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

### Option: Alias
#	Sets an alias for an item key. It can be used to substitute long and complex item key with a smaller and simpler one.
#	Multiple Alias parameters may be present. Multiple parameters with the same Alias key are not allowed.
#	Different Alias keys may reference the same item key.
#	For example, to retrieve the ID of user 'zabbix':
#	Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,^zabbix:.:([0-9]+),,,,\1]
#	Now shorthand key zabbix.userid may be used to retrieve data.
#	Aliases can be used in HostMetadataItem but not in HostnameItem parameters.
#
# Mandatory: no
# Range:
# Default:

### Option: Timeout
#	Spend no more than Timeout seconds on processing
#
# Mandatory: no
# Range: 1-30
# Default:
Timeout=30
### 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

### 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=/etc/zabbix/zabbix_agentd.d/*.conf

# 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=

####### LOADABLE MODULES #######

### Option: LoadModulePath
#	Full path to location of agent modules.
#	Default depends on compilation options.
#
# Mandatory: no
# Default:
# LoadModulePath=${libdir}/modules 

### Option: LoadModule
#	Module to load at agent startup. Modules are used to extend functionality of the agent.
#	Format: LoadModule=<module.so>
#	The modules must be located in directory specified by LoadModulePath.
#	It is allowed to include multiple LoadModule parameters.
#
# Mandatory: no
# Default:
# LoadModule=
Compartilhe este conhecimento:

Graduado em TI pela FATEC, Pós Graduado em Segurança da Informação pela UNISUL, CISCO CCNA4, Gerente de TI, Atuo na área Governamental desde 2009