
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=

