Instalação do Zabbix Proxy e Agent 4.4.7 em S.O versão 9.x (Compilado)

Escrito por Hitfy


Instalação do Zabbix Proxy e Agent 4.4.7 em S.O versão 9.x (Compilado)



1. Instalação de dependências

dnf update -y


dnf groupinstall "Development Tools" -y


dnf install -y epel-release


dnf install -y openssl-devel libcurl-devel libxml2-devel net-snmp-devel sqlite-devel libssh2-devel pkgconf-pkg-config pcre-devel libevent-devel

2. Criação do usuário e grupo Zabbix

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

3. Download do código-fonte

wget https://cdn.zabbix.com/zabbix/sources/oldstable/4.4/zabbix-4.4.7.tar.gz
tar -zxvf zabbix-4.4.7.tar.gz
cd zabbix-4.4.7

4. Ajuste para SNMP no código-fonte

Editar o arquivo:

vim src/zabbix_server/poller/checks_snmp.c

Adicionar as linhas abaixo após os #includes:


/* Fallback para DES se usmDESPrivProtocol não estiver definido */
#ifndef usmDESPrivProtocol
#define usmDESPrivProtocol usmAESPrivProtocol
#endif


5. Configuração e compilação

dnf config-manager --enable ol9_codeready_builder
dnf clean all
dnf makecache
dnf install -y unixODBC unixODBC-devel


./configure \
  --prefix=/usr \
  --enable-proxy \
  --with-sqlite3 \
  --with-net-snmp \
  --with-libcurl \
  --with-libxml2 \
  --with-ssh2 \
  --with-openssl \
  --with-unixodbc


make install

6. Configuração do ambiente

mkdir -p /etc/zabbix
cp conf/zabbix_proxy.conf /etc/zabbix/
chown -R zabbix:zabbix /etc/zabbix


mkdir -p /var/lib/zabbix
mkdir -p /var/log/zabbix
chown -R zabbix:zabbix /var/lib/zabbix /var/log/zabbix


mkdir -p /run/zabbix
chown zabbix:zabbix /run/zabbix


mkdir -p /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix


7 - Editar


vim /etc/zabbix/zabbix_proxy.conf


Após abrir o arquivo zabbix_proxy.conf são necessárias as seguintes alterações:


  1. Server = 127.0.0.1. Alterar para o DNS do Server: hproxy.hitfy.io
  2. Hostname= Zabbix server. Alterar para a o código da organização.
  3. LogFileSize=0. Alterar para: LogFileSize=10
  4. EnableRemoteCommands=0. Alterar para: EnableRemoteCommands=1
  5. StartPollers=20
  6. StartPollersUnreachable=10
  7. StartPingers=20
  8. CacheSize=128M
  9. DataSenderFrequency=30
  10. Timeout=30
  11. DBName=zabbix_proxy. Alterar para /var/lib/zabbix/zabbix_proxy.db
  12. LogFile=/var/log/zabbix/zabbix_proxy.log
  13. Adicionar as linhas abaixo no fim do arquivo:

TLSConnect=psk

TLSPSKFile=/etc/zabbix/zabbix_proxy.psk

TLSPSKIdentity=CÓDIGO_DA_ORG


Criptografia Zabbix Proxy:

vim /etc/zabbix/zabbix_proxy.psk 

Colar a mesma chave encontrada no Zabbix Server na aba Proxies


Desabilite o SELINUX

vim /etc/selinux/config
SELINUX= de enforced para disabled 
:wq!


Setenforce 0

Desabilite o Firewall.D

service firewalld stop
systemctl disable firewalld

8. Criação de serviço systemd

cat << EOF > /etc/systemd/system/zabbix-proxy.service
[Unit]
Description=Zabbix Proxy
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf
User=zabbix
Restart=on-failure
RuntimeDirectory=zabbix
RuntimeDirectoryMode=0755
PIDFile=/run/zabbix/zabbix_proxy.pid
WorkingDirectory=/etc/zabbix
[Install]
WantedBy=multi-user.target
EOF


systemctl daemon-reexec
systemctl daemon-reload
systemctl enable --now zabbix-proxy
systemctl start zabbix-proxy

Verifique o status do serviço:

systemctl status zabbix-proxy


Se estiver running está Ok


9. Compilando o Zabbix Agent


Vá para a pasta zabbix-4.4.7

cd zabbix-4.4.7


Rode:

./configure --prefix=/usr --enable-agent --with-openssl --with-libcurl --with-net-snmp


make install

10. Configuração do ambiente do Agent

mkdir -p /etc/zabbix
cp conf/zabbix_agentd.conf /etc/zabbix/
chown -R zabbix:zabbix /etc/zabbix

Editar

vim /etc/zabbix/zabbix_agentd.conf
  1. Server=<IP_DO_SERVIDOR_ZABBIX>
  2. ServerActive=<IP_DO_SERVIDOR_ZABBIX>
  3. “EnableRemoteCommands=0”. Alterar para: EnableRemoteCommands=1
  4. “LogFileSize=0”. Alterar para: LogFileSize=10
  5. Hostname=<NOME_DO_AGENT>
  6. LogFile=/var/log/zabbix/zabbix_agentd.log
  7. Timeout=30

11. Criação de serviço systemd para o Agent

cat << EOF > /etc/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
User=zabbix
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF


systemctl daemon-reexec
systemctl daemon-reload
systemctl enable --now zabbix-agent
systemctl start zabbix-agent

12. Verificação do Agent

systemctl status zabbix-agent

Se estiver running está Ok


13. Instalação do Salt


Rode:

wget -P /tmp https://app.hitfy.io/automacao/saltinstallv2.sh --no-check-certificate && sudo chmod +x /tmp/saltinstallv2.sh


Instale o telnet:

yum install telnet -y


Depois:

sudo sh /tmp/saltinstallv2.sh


Valide com:

service salt-minion status


14. Instalação do Fping


Instalar dependências:

dnf install -y gcc make automake autoconf


Rode:

cd /usr/src
curl -LO https://fping.org/dist/fping-4.2.tar.gz
tar -zxvf fping-4.2.tar.gz
cd fping-4.2


Aplique o patch:

cd /usr/src/fping-4.2/src
sed -i 's/^int random_data_flag;/extern int random_data_flag;/' fping.h
grep -q "random_data_flag" fping.c || echo "int random_data_flag = 0;" >> fping.c


Recompile e instale:

cd /usr/src/fping-4.2
make clean
make
make install


Reinicie o proxy e valide:

systemctl restart zabbix-proxy
fping -v