Mais recentes

Conteúdo técnico, ferramentas e experiências práticas da IceNex.

Mostrando postagens com marcador centos. Mostrar todas as postagens
Mostrando postagens com marcador centos. Mostrar todas as postagens

sábado, 19 de junho de 2021

Monitoração com Zabbix - Adição de host Linux


Olá pessoal, tudo bem? 

Espero que estejam todos bem e se cuidando!

Dando continuidade no assunto sobre Zabbix, hoje vamos ver como registrar os seus hosts Linux no Zabbix e assim passar a monitorá-los. Neste momento, pelo menos monitoração básica, ok?

Nosso host que iremos adicionar para monitorar no Zabbix:

IP: 192.168.100.112
SO: Debian 10.7
Hostname: debian-app-mon

Para instalar o Zabbix agent, execute o comando abaixo:
# apt-get install zabbix-agent

Terminando a instalação, devemos ter os arquivos dentro do diretório /etc/zabbix.


Iremos editar o arquivo zabbix_agentd.conf, localizando a linha Server e inserindo o IP do nosso Zabbix server:

Server=192.168.100.113

Feito isso,  vamos fazer o start do serviço e aproveitar para habilitar o serviço durante o boot.
# systemctl start zabbix-agent
# apt-get enable zabbix-agent
O serviço do agent estando OK, devemos ter uma saída parecida com a imagem abaixo:


Agora vamos a console de gerencia do Zabbix para fazer o cadastro do host na monitoração.

http://192.168.100.113/zabbix

No Menu do canto esquerdo, iremos clicar em Configuration:


Em seguida, vamos clicar em Hosts:


Vamos clicar agora em Creat host:


Na tela seguinte, iremos preencher as infos básicas do server que iremos adicionar e selecionar o tipo de registro/comunicação com este host:


Mediante então ao nosso lab, este é o exemplo de como ficaria o preenchimento. Ah, e muito importante é selecionar em Groups, os grupos de monitores que são correspondentes ao equipamento que está sendo adicionado. Como nosso server é Linux, devemos escolher "Linux servers". Ou seja, podemos criar grupos customizados de acordo com nossas aplicações, unidades de negócio, etc ... Você configura de acordo com o que faça sentido para sua organização ou seu cliente.
Em interfaces é onde vamos colocar o IP do host agent e a porta de comunicação. Caso você opte por monitorar via SNMP, IPMI, etc, é meste campo que você deve escolher.


Por fim, devemos clicar em Add assim que terminarmos de preencher tudo.

Automaticamente, você será redirecionado para tela anterior dos hosts que estão adicionados e nessa tela você já deve ver o que acabamos de adicionar.


Uma outra coisa que precisamos fazer é fornecer qual é o tipo de template que este host à ser monitorado faz parte.
Para isso vamos clicar no nome do host, Templates e selecionar os templates adequados:



Agora até que tudo seja coletado e a estrutura seja criada leva um tempo, que é o tempo de descoberta do agent, do que tem no server, do que tem pelo template que adicionamos lá para que ele possa construir toda estrutura para a view do Zabbix.


Passado um tempo, começamos a ter as visões de performance do host, parte de disco, network, etc:



Pelo menos o básico de monitoração para este host Linux já temos =)

Abs e até a próxima!
:wq!

sábado, 24 de abril de 2021

Monitoração com Zabbix - Instalação no Debian

Fala pessoal, tudo bem?
Espero que estejam todos bem!

Hoje vamos falar de monitoração, mais precisamente de monitoração com a ferramenta Zabbix.

Mas o que é o Zabbix?    
    - É uma ferramenta de monitoração de código aberto utilizada para monitoração de recursos de infraestrutura como Redes, Computação, Serviços e experiência de usuário.

Além disso é possível criar regras de relacionamento para análise de causa raiz para problemas que ocorram.

Sem contar a possibilidade de monitorar recursos por agente, sem agente, SNMP, IPMI e JMX. É realmente uma grande quantidade de opções.

Bem, vamos lá, para parte prática!

Nosso cenário será o seguinte:

  • Virtualização com VirtualBox;
  • Uma máquina virtual com Debian para ser nosso Zabbix Server
    • 1 vCPU
    • 2 GB Memory
    • 12 GB de Disco
    • Rede como Bridge Adapter
  • Uma máquina virtual com Debian para ser nosso cliente de monitoração
  • Uma máquina virtual com CentOS 7 para ser nosso cliente de monitoraçao
OBS.: Na parte dos clientes de monitoração, tanto faz o size da máquina que será criada, OK? O importante é estarem também como Bridge Adapter ou na mesma configuração de rede da máquina Zabbix Server para não termos problemas de comunicação.

1 - Instalando o Zabbix Server

O download pode ser feito pelo site ofical do Projeto Zabbix.

Os passos que devemos executar no server são:

a. Instalação do repositório
# wget https://repo.zabbix.com/zabbix/5.2/debian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb
# dpkg -i zabbix-release_5.2-1+debian10_all.deb
# apt-get update

b. Instalação do Zabbix Server, agent e frontend
# apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

2 - Instalação e configuração do MariaDB/MySQL
# apt-get install mariadb-common mariadb-server mariadb-client

a. Iniciando o serviço do MariaDB e criando o serviço para start automático
# systemctl start mariadb ; systemctl enable mariadb

b. Reset da senha de root do banco. Para isso precisamos subir o banco em modo de segurança
# mysql_secure_installation
Enter current password for root (enter for none): Pressione Enter
Set root password? [Y/n]: Y
New password: <Enter root DB password>
Re-enter new password: <Repeat root DB password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

c. Vamos agora criar o database e dar permissão para permitir conexão com a mesma, além disso vamos já aproveitar e fazer o import do schema e data e habilitar o strict mode. Lembrando que o import do schema pode levar alguns minutos
- Criando o database -
# mysql -uroot -p'Senha-do-Banco-de-Dados' -e "create database zabbix character set utf8 collate utf8_bin;"

- Permitindo conexão -
# mysql -uroot -p'Senha-do-Banco-de-Dados' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'Senha-do-usuario-zabbix';"

- Importando o schema e data-
# mysql -uroot -p'Senha-do-Banco-de-Dados' zabbix -e "set global innodb_strict_mode='OFF';"
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'Senha-do-usuario-zabbix' zabbix

- Habilitando o strict mode -
# mysql -uroot -p'Senha-do-Banco-de-Dados' zabbix -e "set global innodb_strict_mode='ON';"

d. Agora precisamos inserir a senha do usuário zabbix utilizado para conexão com o banco de dados no arquivo de configuração /etc/zabbix/zabbix_server.conf
Utilize um editor de texto de sua preferência e insira na respectiva linha a seguinte entrada (normalmente o arquivo já tem essa linha, é só descomentar e inserir a senha)

DBPassword=Senha-do-usuario-zabbix
Salve o arquivo e pode sair do editor de texto.

Uma ponto importante é se você utiliza firewall local. Caso a resposta seja sim, você deve liberar as respectivas portas:
  • 10050/tcp
  • 10051/tcp
  • 80/tcp

Até mesmo no ambiente produção (fora este lab que estamos fazendo) é bom já deixar anotado para solicitar ou fazer as liberações no firewall.

3 - Agora vamos fazer o start e enable do serviço Zabbix Server e Agent Processes

# systemctl restart zabbix-server zabbix-agent ; systemctl enable zabbix-server zabbix-agent

4 - Configuração do Zabbix frontend (interface gráfica)

a. Vamos editar o arquivo /etc/zabbix/apache.conf e novamente, para isso escolha um editor de texto de sua preferência.
Ao abrir o arquivo, descomente a linha php_value date.timezone Europe/Amsterdam e troque o timezone para o qual você utiliza (normalmente, no nosso caso é America/Sao_Paulo).
php_value date.timezone America/Sao_Paulo

b. Restart e habilitar o serviço do Apache
# systemctl restart apache2 ; systemctl enable apache2

Agora para concluir essa primeira parte, vamos acessar a interface web do Zabbix para finalizar a configuração incial.

Para isso, acesse http://ip-do-zabbix-server/zabbix e siga os passo-a-passo das seguintes telas:





Terá um passo também, o qual não tirei print, onde será possível definir o tema do Zabbix =)

Ao finalizar a configuração, você será redirecionado para tela de login (usuário Admin e senha default zabbix).

E pronto, você deve ter acesso a uma console semelhante à essa:


Prontinho!
Primeira parte finalizada com sucesso se você conseguiu chegar até aqui =)

Na parte II iremos adicionar alguns hosts para iniciarmos nossa monitoração básica.

Espero que tenham gostado e que seja útil para o dia-a-dia de vocês.

Até a próxima...
:wq!

sábado, 18 de julho de 2020

DHCP "Server" notebook Linux

Fala pessoal, tudo bem?

É muito comum falarmos de gambiarra no mundo de T.I, mas a verdade quanto à isso é que as vezes se não fizermos isso, não conseguimos sair do outro lado e entregar o que precisamos.

Bem, pensando nisso resolvi compartilhar uma solução que já precisei utilizar e inclusive já compartilhei com um colega de trabalho que estava no mesmo cenário. Que era a necessidade de termos um servidor DHCP!



  • Cenário
Quem nunca precisou seja no ambiete de trabalho ou em algum atendimento de cambo fazer um acesso remoto para dar um reset em um equipamento, verificar o status dele, configurar ou reconfigurar, etc?

Acontece que alguns desses equipamentos quando fazemos por exemplo um reset, a configuração default inicial dele é DHCP, ou seja, o IP que você utilizava antes não funciona mais, você as vezes sequer sabe o IP que ele deveria pegar por padrão, as vezes dado a ideal muito antiga ele nem pega mais IP, fica esperando um DHCP distribuir o IP.

Bem, nem sempre temos um servidor DHCP pronto para atender essa necessidade, as vezes ela nem faz sentido no cenário do cliente.

Foi em um destes cenários onde ao fazer o reset de uma PDU (régua de tomadas) que ficava em um data center, a mesma em sua configuração default espera uma atribuição IP de um servidor DHCP.

Acontece que no ambiente do cliente não havia um servidor DHCP e nós que estavamos fazendo a atividade no local, tínhamos apenas nosso notebook.

E agora, como resolver isso? Já que precisamos reconfigurar a PDU?
  • Solução
 No meu caso eu tenho um notebook com linux, então foi necessário apenas instalar o serviço de DHCP Server com o seguinte comando:

$ sudo apt install isc-dhcp-server

Terminando a instalação, precisamos editar o arquivo /etc/default/isc-dhcp-server

É neste arquivo que informaremos por qual interface de rede iremos prover a comunicação e distribuição dos IPs.

Edite o arquivo com o editor de sua preferência:

$ sudo vi /etc/default/isc-dhcp-server  

Localizar a linha INTERFACESv4=""

E adicionar a respectiva interface. No meu exemplo, ficou a interface INTERFACESv4="enp0s25"

Obs.: Como precisaremos utilizar um cabo de rede plugado em nosso notebook direto no equipamento que precisa receber o IP via DHCP, informar a interface física do notebook.

Agora precisamos configurar nosso escopo DHCP.
O escopo DHCP nada mais é do que o intervalo de IPs de um rede que será distribuído para os hosts cliente.

Para configurar, edite o arquivo /etc/dhcp/dhcpd.conf

$ sudo vi  /etc/dhcp/dhcpd.conf 

Não vou mostrar como configurar de forma mais ampla, pois aqui a ideia é apenas configurar de forma básica para resolver o problema proposto. OK?

Encontre o seguinte block de configuração:

# This is a very basic subnet declaration.
  #subnet 10.254.239.0 netmask 255.255.255.224 {
  #range 10.254.239.10 10.254.239.20;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
  #} 

O próprio comentário informa que esta é uma declaração básica de uma subnet para que já seja possível distribuir IPs dentro da rede 10.254.239.0/27. 
Este /27 nos disponibiliza 30 IPs. Mais que o suficiente para ajudar a resolver nosso problema!

  • Podemos mudar esse endereço para outro?
    • Sim, neste exemplo podemos.

Mas vou manter dessa forma para não complicar muito.

Descomente as linhas, menos a linha "# This is a very basic subnet declaration.", já que é apenas um comentário.

O trecho irá ficar dessa forma:


Agora, antes de mais nada, precisamos conectar o cabo de rede na interface do notebook e na interface do outro device.

Nas configurações da interface no notebook linux com o DHCP Server instalado, vamos configurar qualquer IP dentro do intervalo que deixamos reservado. Que vai de 10.254.239.1 até 10.254.239.9. Pois ele passará a ser o ponto de distribuição do range IP 10.254.239.10 até 10.254.239.20 (range configurado para ser do DHCP).


Salve a configuração!

Por último vamos fazer o start do serviço com o comando:

$ sudo /etc/init.d/isc-dhcp-server start

Para validar se o serviço iniciou sem nenhum problema e se o outro device já pegou IP e qual IP ele pegou vamos rodar o comando com o status:

$ sudo /etc/init.d/isc-dhcp-server status


Este trecho em vermelho:


Não atrapalha em nosso teste, pois não configuramos nenhum DNS server correto, então estes são apenas exemplos que já estavam na configuração padrão. Beleza?

Olhando mais abaixo no log, podemos ver que o equipamento que estava esperando o IP DHCP, recebeu o primeiro IP do nosso range:


É possível ver o IP entregue, o mac address do equipamento cliente, hostname e por qual interface foi feita a conexão.
Deve ser a mesma que informamos no arquivo /etc/default/isc-dhcp-server.

Agora é só acessar o equipamento.


Teste de PING - OK
Teste de SSH - OK

Se o outro device fornecer uma interface Web (o que é bem comum), basta acessar a respectiva URL no navegador e fazer a atividade.

Obs.: Após reconfigurar o equipamento com o IP fixo necessário e todos os demais ajustes, ao salvar você irá perder o acesso (Nossa, mas pra que falar isso? Não é óbvio?) ...  Sim! Mas só vale ressaltar que não precisa parar todo seviço DHCP ou desfazer tudo... é só reconfigurar a sua interface física do notebook removendo o IP "Gateway" e colocar um IP no mesmo range do que foi configurado no equipamento .... era para falar apenas isso rsrs =)

Dica:
  • Preciso fazer isso para mais de um equipamento ao mesmo tempo, é possível?
    • Sim, precisa ter apenas um HUB com uma quantidade legal de portas, conectar o cabo do notebook no HUB e os demais equipamentos no HUB também;
  • Posso usar esta solução em todo tipo de equipamento?
    • Normalmente sim. Equipamentos como Servidores, Storages, PDUs normalmente possuem alguma configuração default que permite uso de DHCP ou até mesmo com um endereço IP padrão (o que facilita muito mais e não precisa desse trampo todo de instalar um DHCP Server);
Ponto de atenção:
  • Caso alguma comunicação não funcione, pode ser necessário desabilitar o serviço de firewall do seu notebook;
Setup utilizado por mim para este post:
  • DHCP Server:
    • Notebook Lenovo ThinkPad T440
    • Ubuntu 20.04 LTS
    • Cabo de rede UTP "reto", mas pode ser cross também
  • Host Client:
    • Notebook Dell Inspiron 15
    • Ubuntu 18.04.4 LTS
Abs e até a próxima!
:wq!