Kit de Primeiro socorros!
Zabbix
O Zabbix é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível de notificação que permite configurar alertas por e-mail entre outros como Telegram, para praticamente qualquer evento. As notificações permitem que se reaja rapidamente à problemas no ambiente. O Zabbix oferece excelentes recursos de relatórios e visualização de dados armazenados. Isso faz com que o Zabbix seja a ferramenta ideal para planejamento de capacidade.
O Grafana é um software livre que permite a visualização de formato de dados métricos. Ele permite criar painéis e gráficos a partir de várias fontes, mas aqui iremos vamos aprender a integra-lo com o Zabbix.
Requisitos:
* Debian 11 (Buster) -> Instalação Limpa
* Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster “LAMP” (Opcional phpMyAdmin)
Para instalação do Zabbix vamos incluir o repositório do oficial do Zabbix.
Debian 11
wget https://repo.zabbix.com/zabbix/5.0/debian/pool/main/z/zabbix-release/zabbix-release_5.0-1+bullseye_all.deb dpkg -i zabbix-release_5.0-1+bullseye_all.deb
Atualize o repositório e realize a instalação
apt update ; apt upgrade apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
Vamos criar uma base de dados chamada zabbix e um usuário também chamado de zabbix no MariaDB.
Não esqueça de alterar a senha: Use o gerador de senha: https://senhasegura.remontti.com.br/
mariadb -u root -p
Senha
create database zabbix character set utf8 collate utf8_bin; create user zabbix@localhost identified by 'SUA_SENHA'; grant all privileges on zabbix.* to zabbix@localhost; quit;
Importe o esquema de tabelas e dados padrões. (Demora um pouco!)
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mariadb -uzabbix -p zabbix
Digite a senha de seu usuário zabbix criada no passo anterior para importar as tabelas.
Edite o arquivo zabbix_server.conf para informar os dados para conexão com o MySQL.
nano /etc/zabbix/zabbix_server.conf
Procure por # DBPassword= descomente e sete sua senha.
#... DBPassword=SUA_SENHA #...
Ajuste o timezone pela sua região.
nano /etc/zabbix/apache.conf
Este é modelo padrão, altere então para sua região, também irei alterar alguns valores padrões, se quiser pode remover ou comentar as conf do mod_php5.c
# Define /zabbix alias, this is the default <IfModule mod_alias.c> Alias /zabbix /usr/share/zabbix </IfModule> <Directory "/usr/share/zabbix"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all # <IfModule mod_php5.c> # php_value max_execution_time 300 # php_value memory_limit 128M # php_value post_max_size 16M # php_value upload_max_filesize 2M # php_value max_input_time 300 # php_value max_input_vars 10000 # php_value always_populate_raw_post_data -1 # # php_value date.timezone Europe/Rig # </IfModule> <IfModule mod_php7.c> php_value max_execution_time 300 php_value memory_limit 512M php_value post_max_size 48M php_value upload_max_filesize 24M php_value max_input_time 300 php_value max_input_vars 10000 php_value always_populate_raw_post_data -1 php_value date.timezone America/Sao_Paulo </IfModule> </Directory> <Directory "/usr/share/zabbix/conf"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/app"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/include"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/local"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory>
Se você quiser um modelo para acessa-lo por ex: zabbix.tomich.com.br, vou deixar um, em seguida como proceder, bem como fechar o acesso apenas a determinado IP ou bloco.
Caso você queira o modelo abaixo, então mova o /etc/zabbix/apache.conf para /etc/zabbix/apache.conf.old. Faça uma apontamento em seu DNS do subdomínio zabbix para o IP do seu servidor. Agora crie um novo arquivo:
mv /etc/zabbix/apache.conf /etc/zabbix/apache.conf.default nano /etc/zabbix/apache.conf
Altere em Require ip para os ips que terão acesso.
<VirtualHost *:80> ServerName zabbix.tomich.com.br ServerAlias localhost ServerAdmin noc@tomich.com.br DocumentRoot /usr/share/zabbix ErrorDocument 403 http://www.tomich.com.br <Directory "/usr/share/zabbix"> Options FollowSymLinks AllowOverride all Require ip 127.0.0.1 ::1 200.200.200.0/26 2001:db8::/32 192.168.0.0/16 <IfModule mod_php7.c> php_value max_execution_time 300 php_value memory_limit 512M php_value post_max_size 48M php_value upload_max_filesize 24M php_value max_input_time 300 php_value max_input_vars 10000 php_value always_populate_raw_post_data -1 php_value date.timezone America/Sao_Paulo </IfModule> </Directory> <Directory "/usr/share/zabbix/conf"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/app"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/include"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> <Directory "/usr/share/zabbix/local"> Order deny,allow Deny from all <files *.php> Order deny,allow Deny from all </files> </Directory> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/zabbix_error.log CustomLog ${APACHE_LOG_DIR}/zabbix_access.log combined </VirtualHost>
Por segurança recomendo remover a assinatura do servidor, evitando os “espertinhos”
sed -i 's/ServerTokens OS/ServerTokens Prod/' /etc/apache2/conf-available/security.conf sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf-available/security.conf
Ative o serviço junto com a inicialização do sistema, e restarte os mesmos.
systemctl enable zabbix-server zabbix-agent systemctl restart zabbix-server zabbix-agent apache2
Acesse em seu navegador http://seu_ip/zabbix ou http://zabbix.seudominio.com.br
Next Step
Se tudo estiver ok: Next step
Informe a senha do banco de dados criada anteriormente para o zabbix, e clique em Next step.
Next step
Finish
Entre com Usuário Admin e senha zabbix
Bingo!
Para dexa-lo em Português / Tema escuro:
Possível bug na instalação
Caso se deparar com essa tela não se assuste, faça o seguinte:
touch /etc/zabbix/web/zabbix.conf.php chown www-data. /etc/zabbix/web/zabbix.conf.php
De um [Back] depois [Next] q é sucesso!
Grafana 7
Pacotes necessários:
apt install gnupg2 apt-transport-https software-properties-common
Vamos baixar a key do repositório e adiciona-lo
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add - echo "deb https://packages.grafana.com/oss/deb stable main" | tee -a /etc/apt/sources.list.d/grafana.list
Atualize o repositório e instale o grafana
apt update apt install grafana
OBS Julho/2021:
O grafana que está sendo instalado é a versão 8, o mesmo ate essa data está passando por um bug com o plugin do Zabbix, caso ainda tenha bug:
Solução fazer downgrade para última versão 7:
nano /etc/apt/sources.list.d/grafana.list
Comente a linha do repositório (quando o bug for corrigido você pode descomenta-la para fazer o upgrade para versão 8).
deb https://packages.grafana.com/oss/deb stable main
apt update cd /tmp/ wget https://dl.grafana.com/oss/release/grafana_7.5.9_amd64.deb apt install ./grafana_7.5.9_amd64.deb grafana-cli plugins update-all systemctl restart grafana-server
Continue aqui!
Antes de iniciar o grafana, se deseja alterar a porta padrão 3000 (recomendo) edite:
nano /etc/grafana/grafana.ini
Localize http_port e defina a porta de sua escolha.
# The http port to use ;http_port = 3000
Exemplo:
http_port = 53000
Localize em [plugins] ;allow_loading_unsigned_plugins descomente removendo o “;” e adicionando:
allow_loading_unsigned_plugins = alexanderzobnin-zabbix-datasource
Caso contrário o plugin de integração com o zabbix não irá funcionar.
Já instalamos também o plugin Zabbix com ferramenta grafana-cli:
grafana-cli plugins install alexanderzobnin-zabbix-app
Agora sim colocamos o Grafana para iniciar junto com a inicialização, ativamos e inicializamos o serviço:
systemctl daemon-reload systemctl enable grafana-server systemctl start grafana-server
Acesse em seu navegador http://IP_URL:3000 ou pela porta que você alterou. O nome de usuário padrão é admin e a senha padrão é admin.
Ao fazer login pela primeira vez, você será solicitado a alterar sua senha.
Uhull
Integração do grafana com o Zabbix
Acesse o Configuration –> Plugins:
Localize o Zabbix e clique no mesmo
Agora ative clicando em Enable.
Volte em Configuration –> Data Sources
Uma nova tela com varias fontes, localize Zabbix e clique em Select
Nas opções HTTP em URL informe o endereço do seu servidor Zabbix
http://IP_URL/zabbix/api_jsonrpc.php.
OU
http://zabbix.tomich.com.br/api_jsonrpc.php
Em Access selecione Browser. Em Zabbix API details informe seu usuário e senha do Zabbix e selecione a versão correspondente.
Role até o final e e clique em Save & Test Se tudo ocorreu bem uma altera positivo com“Zabbix API version: 5.x.x” aparecerá.
Você pode também fazer uma conexão MySQL (MariaDB) com o banco de dados do zabbix, para tornar as coisas mais rápidas. Para isso basta “Add data source” pesquisar por mysql, e informar os dados de conexões, provavelmente seu grafana esteja junto com seu zabbix, então basta informa nome do banco, usuário e senha.
Vá para as configurações do data source do zabbix, localize Direct DB Connection, ative-o e selecione MySQL.
Agora vem a parte mais “chata/legal” que é você montar seus gráficos, como isso é algo bem peculiar de cada um, o intuito aqui era ensinar instalar. Recomendo a leitura de Introdução ao Grafana-Zabbix do autor do plugin.
Simples né? Gostou e quer me ajudar?
Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.
Abraço!
Bônus – Proxy grafana
Vou no DNS Autoritativo e vou apontar um nome para o IP do Grafana
nano /var/cache/bind/master-aut/tomich.com.br/tomich.com.br.hosts
grafana A 179.48.68.98
Depois volto no servidor e adiciono esses comandos
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo