Zabbix: Instalando o banco de dados
Caso você tenha acabado de instalar o debian minimalista, faça os ajustes para ter as ferramentas de diagnóstico, edição e troubleshooting.
link
Instalação do banco de dados postgresql
vim instalaDBpostgresql.sh
#!/bin/bash
# ────────────────────────────────────────────────────────────────
# Script de instalação do postgreesql para o Zabbix 7 no Debian 13
# Talvez Inclui ajustes de segurança e performance
# ────────────────────────────────────────────────────────────────
SERVER_ADDRESS='192.168.100.121'
ZABBIX_DB_PASS="dinf0pmr0" # Troque por uma senha forte real
LOCAL_NET='192.168.100.0/24'
echo "[1/8] INSTALANDO O REPOSITORIO OFICIAL DA ZABBIX SIA..."
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.0+debian13_all.deb
dpkg -i zabbix-release_latest_7.0+debian13_all.deb
echo "[2/8] ATUALIZANDO O SISTEMA..."
apt update && apt upgrade -y
echo "[3/8] INSTALANDO O BANCO DE DADOS POSTGRESQL..."
apt install -y postgresql-17
echo "[4/8] INSTALANDO OS PACOTES PARA O SERVIDOR DE BANCO DE DADOS..."
apt install -y zabbix-sql-scripts zabbix-agent2
echo "[5/8] INICIALIZANDO O SERVIDOR DE BANCO DE DADOS..."
systemctl enable --now postgresql@17-main.service
echo "[6/8] Criando banco de dados para Zabbix..."
sudo -u postgres psql <<EOF
CREATE USER zabbix WITH PASSWORD '$ZABBIX_DB_PASS';
CREATE DATABASE zabbix OWNER zabbix;
EOF
echo "[7/8] FAZENDO UPLOAD DAS TABELAS PARA O BANCO DO ZABBIX..."
zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
echo "[8/8] CONFIGURANDO O POSTGRESQL PARA RECEBER O ZABBIX SERVER..."
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /etc/postgresql/17/main/postgresql.conf
echo "[8/8] Liberando toda a minha rede local..."
echo "" >> /etc/postgresql/17/main/pg_hba.conf
echo "# Permissions for access zabbix on lan" >> /etc/postgresql/17/main/pg_hba.conf
echo "host all all $LOCAL_NET md5" >> /etc/postgresql/17/main/pg_hba.conf
echo "[4/4] Configurando Zabbix Agent2..."
sed -i "s/Server=127.0.0.1/Server=$SERVER_ADDRESS/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=$SERVER_ADDRESS/g" /etc/zabbix/zabbix_agent2.conf
sed -i "s/Hostname=Zabbix server/Hostname=ZBXDB/g" /etc/zabbix/zabbix_agent2.conf
sed -i 's/^# DenyKey=system.run\[\*\]/AllowKey=system.run[*]/' /etc/zabbix/zabbix_agent2.conf
echo "🔁 Ajustando e Reiniciando serviços..."
systemctl restart postgresql@17-main zabbix-agent2
echo "✅ Instalação concluída."
Agora dê as pemissões e execute o script
chmod +x instalaDBpostgresql.sh
./instalaDBpostgresql.sh
Conferindo os logs do agent2
tail -f /var/log/zabbix/zabbix_agent2.log
Instalação timescale
Install the latest Postgres packages
apt install gnupg postgresql-common apt-transport-https lsb-release wget
Run the Postgres package setup script
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
Add the TimescaleDB package
echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | tee /etc/apt/sources.list.d/timescaledb.list
Install the TimescaleDB GPG key
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
Update your local repository list
apt update
Install TimescaleDB
apt install timescaledb-2-postgresql-17=2.21.4~debian13 timescaledb-2-loader-postgresql-17=2.21.4~debian13
Caso precise pesquisar quais versões estão disponíveis, faça
apt-cache madison timescaledb-2-postgresql-17 | awk '{print $3}'
Impedir que o apt atualize o timescaledb pra não dar conflito de versão
apt-mark hold timescaledb-2-postgresql-17 timescaledb-2-loader-postgresql-17
Como Verificar os Pacotes em "Hold":
Para listar todos os pacotes que estão atualmente "seguros", use o comando:
apt-mark showhold
Como Remover o "Hold" (para voltar a atualizar):
Quando você decidir que quer voltar a receber atualizações para esses pacotes no futuro, basta usar o comando unhold:
sudo apt-mark unhold timescaledb-2-postgresql-17 timescaledb-2-loader-postgresql-17
Ajustes finos do timescaledb
Será que precisa disso?
sudo sed -i "s/max_connections = 50/max_connections = 300/" /etc/postgresql/17/main/postgresql.conf
echo "timescaledb.license=timescale" | sudo tee -a /etc/postgresql/17/main/postgresql.conf
Tune your Postgres instance for TimescaleDB
timescaledb-tune --quiet --yes
Restart Postgres
systemctl restart postgresql@17-main
Adicione a extensão do TimeScaleDB ao seu banco de dados
Se essa parte funcionar, não precisa executar os passoa abaixo
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix 2>/dev/null
cat /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix
Acesse o banco Aparentemente não é mais necessário executar os passos abaixo. Mantido apenas pra referência
psql -d "postgres://zabbix:dinf0pmr0@127.0.0.1:5432/zabbix"
Inclua a extensão
CREATE EXTENSION IF NOT EXISTS timescaledb;
Verifique se a extesão foi instalada
\dx
Restart Postgres
systemctl restart postgresql@17-main