Monitorando servidores Microsoft SQL Server - It`s free! - Parte 01

Olá pessoal!

Neste post iniciarei uma série sobre como monitorar seu Microsoft SQL Server. Uma necessidade atual de todo setor de TI é saber exatamente qual a carga atual de seus servidores e principalmente se algo não está como deveria. Existem muitas soluções ótimas no mercado, como por exemplo a plataforma System Center da Microsoft.

Porém, muitas vezes não conseguimos encaixar estas soluções em nosso budget ou infra estrutura. É muito comum vermos empresas que, apesar de terem servidores com Microsoft SQL Server, tem enormes restrições no âmbito de licenciamento ou hardware. Diante deste cenário, o mundo open source pode ser uma opção muito interessante para quem está disposto a deixar de lado o seu paternalismo por uma tecnologia específica.

Nesta série demonstrarei como implantar, de forma simples, o Zabbix, uma plataforma de monitoramento baseada em Linux, MySQL e PHP. Todas as tecnologias utilizadas serão open source, ou seja, sua empresa terá apenas o custo de hardware, que pode ser uma máquina virtual ou uma máquina que esteja parada por ter um poder de processamento limitado, mas que pode ser suficiente para o Zabbix.

O ambiente que montarei de exemplo aqui, contará com as seguintes versões das tecnologias:
  • Microsoft Hyper-V Server 2008 R2 - Porém com poucas adaptações pode implantar em VMware, Oracle VirtualBox ou em uma máquina real.
  • Linux CentOS - Distribuição Linux baseada em Red Hat, gratuita. No caso utilizarei a versão 6.3 que é a que consta como homologada para o Microsoft Hyper-V Server. Este link direto da versão aponta para o download através de torrent, que é amplamente utilizado no mundo Linux para download de ISOs, é necessário o download somente do cd 1.
Os demais itens serão baixados diretamente por dentro da máquina com o CentOS e explicarei melhor posteriormente. Iniciando os trabalhos, abaixo temos as configurações da VM, chamada C3PO, criada para hospedar esta solução. Reforçando que deve haver um equilíbrio entre a quantidade de servidores monitorados e o hardware do Zabbix server.

  • VM C3PO
    • 1 processador
    • 1024 GB de RAM
    • 1 VHD de 120 GB de espaço na controladora 0 para o sistema operacional
    • 1 VHD de 2 GB de espaço na controladora 0 para swap
    • 1 unidade de CD na controladora 1
Configurações de hardware da C3PO no Microsft Hyper-V Server
Mais alguns prints das configurações que utilizei:

Configuração de ações da C3PO do Microsoft Hyper-V Server

Configurações de Integrations Services da C3PO no Microsoft Hyper-V Server
Neste momento não existe placa de rede na VM. Com a ISO do CentOS vinculada na unidade de CD e a máquina ligada, daremos início a instalação do CentOS na seguinte tela:


Selecione a primeira opção 'Install or upgrade an existing system.'


Esta opção serve para verificar se a mídia de instalação está íntegra, caso queira verificar, selecione 'OK', caso não, selecione 'Skip'


Nesta tela se configura o idioma do SO a ser instalado, eu sempre prefiro a instalação em Inglês para evitar problemas de tradução.


Nesta tela se configura o layout do teclado, que no meu caso será o Brazilian (ABNT2).


Como para VM os arquivos VHD são discos físicos, selecione opção 'Basic Storage Devices'.


Esta tela pode não aparecer caso a VM esteja em outro virtualizador ou seja máquina real, de qualquer forma, caso apareça, pressione 'Yes, discard any data'.


O nome da VM, como mencionado acima, será C3PO.


No mapa se indica o GMT, no caso, São Paulo.


O root é o usuário com permissões máximas dentro do SO, neste momento se define uma senha para ele.


Caso se insira uma senha muito fraca, ou simples, esta mensagem pode ser apresentada. Por ser em laboratório, utilizei a senha clássica 'P@$$w0rd'. Para prosseguir, pressione 'Use Anyway'.


Nas configurações de disco, selecione 'Create Custom Layout' e avance.


Aqui serão apresentados os dois discos da VM, 'sda' contém o disco de sistema e 'sdb' o disco de swap. Swap no Linux é similar ao arquivo de paginação no Windows, porém, no Linux se cria uma partição para este fim. O swap tem 2 GB devido à uma recomendação na documentação do Oracle, que diz que esta área deve ter o dobro do tamanho da memória e não ultrapassar 16 GB. Selecione o 'Free' abaixo de sda e pressione 'Create'.


Selecione 'Standard Partition' e pressione 'Create'.


Esta tela deve ser configurada desta forma, este disco receberá nossa partição raiz, o '/' indicado no campo 'Mount Point'. O 'File System Type' será sugerido e deve ser mantido, como será utilizado somente o disco vinculado a 'sda', este deve ser o único item marcado em 'Allowable Drives'. Não haverá mais partições, então selecione 'Fill to maximum allowable size' e marque 'Force to be a primary partition'.


Para o swap fica da seguinte forma.


Esta mensagem pode não aparecer caso esteja em outro virtualizador ou maquina real, de qualquer forma é somente pressionar 'Format'.


Último aviso, pressione 'Write changes to disk'.


Nada a alterar aqui, apenas avance.


Selecione as opções 'Basic Server' e 'Customize now' e avance.


A  opção 'Basic Server' já traz alguns componentes selecionados, porém é interessante ter pelo menos uma interface gráfica instalada, uma vez que não sou um profundo conhecedor de Linux, então na opção 'Desktops' ative o componente 'X Window System'.


Ative o componente 'Desktop' e pressione 'Optional packages', na tela que abrir desative todos os componentes.


Ative o componente 'Graphical Administration Tools' e pressione 'Optional packages', na tela que abrir ative os componentes conforme a imagem acima.


Na opção Server, ative o componente 'FTP server'.


Depois de todas as customizações, avance e aguarde a instalação.


Após instalado, reinicie. No primeiro boot será apresentado um wizard para algumas configurações iniciais uma delas é a criação de um usuário além do root.


Eu normalmente crio um usuário chamado admin e mais uma vez irei utilizar a senha 'P@$$w0rd', conforme tela acima.


Mais uma vez, um alerta sobre a questão da senha, apenas pressione 'Yes'.


Ajuste a data e hora do servidor e avance.


Esta mensagem pode aparecer dependendo da quantidade de memória que a VM tiver.


Se a mensagem anterior aparecer, nesta tela não haverá a opção de ativar a feature, sendo assim, 'Finish'.



Neste ponto é só logar com o usuário admin que havíamos criado e o desktop irá iniciar, até aqui tudo bem. O próximo passo é instalar o Integration Services, para quem está acostumado com virtualização, o Integration Services é o equivalente ao VMware Tools e o VirtualBox Additions. Vincule a ISO do Integration Services 3.5 no CD da VM. Após alguns instantes ela aparecerá dentro da VM e será criado um atalho para o CD, neste momento entre em 'Applications / System Tools / Terminal'. Será nesta tela ou similar aonde a maior parte das atividades será realizada.

O primeiro passo é instalarmos o Integration Services, mas para isso precisamos estar com privilégios elevados, sendo assim execute no terminal:

su -

Será solicitada a senha que você definiu para o root no momento da instalação, após isso estaremos logados neste terminal como root e com privilégios administrativos. É muito importante lembrar de sempre que você precisar elevar os privilégios nesta máquina escrever o hífen após o comando su, sem ele, apesar de adquirirmos os privilégios, as variáveis de ambiente do usuário root não são carregadas, com isso muitos comandos vão a retornar 'comando não encontrado',  apesar de estarem corretos.

Como root, entre na pasta do CD que contem o arquivo de instalação pertinente, no caso:

cd /media/RHEL63

Execute a instalação propriamente dita, este processo demora um pouco:

./install.sh

Após a instalação desligue a VM, para isso utilize o seguinte comando:

halt

A tela deve ter ficado próxima a esta:


Com a VM desligada é hora de adicionar a placa de rede, edite as configurações da VM e adicione uma placa de rede, ligue novamente a VM, logue nela como admin, abra um Teminal e logue como root, como feito anteriormente. Após isto execute os seguintes comandos em sequência:

cd /etc/sysconfig/network-scripts
cp ifcfg-lo ifcfg-eth0
vi ifcfg-eth0

Explicando, o arquivo ifcfg-lo guarda as configurações da rede de loopback, foi criada uma cópia dele ('cp') para servir de modelo para a eth0, que é a placa recém adicionada na VM. O vi é um editor de arquivos de modo texto do Linux, amplamente utilizado em máquinas sem interface gráfica. Ele possui algumas peculiaridades, como por exemplo, para escrever em um arquivo é necessário pressionar a tecla Insert do teclado, para salvar um arquivo, é preciso pressionar Esc e depois digitar :wq (Write and Quit), abaixo segue uma tabela de comandos:

/Expressão : Procura Expressão (que pode ser qualquer palavra) no texto
n : Procura próxima ocorrência de Expressão no texto
N : Procura ocorrência anterior de Expressão no texto
yy : Copia linha atual do texto para memória
p : Cola conteúdo da memória no texto
dd : Apaga linha atual (e coloca na memória)
n comando : Um número n (1, 2, ...) seguido de qualquer comando executa o comando n vezes
u : Desfaz última ação executada
. : Refaz última ação executada
:n : Pula para linha de número n
:w : Salva o arquivo atual
:wq : Salva o arquivo atual e sai do Vi
:x : Salva o arquivo atual e sai do Vi (equivalente) a :wq
:q : Sai do Vi
:q! : Sai do Vi , independe de salvar o conteúdo atual
:w arquivo : Salva o arquivo atual com o nome arquivo

Os mais importantes são os comandos :wq, :q!, :q e logicamente a tecla Insert. Ao editar o arquivo ifcfg-eth0, deve-se inserir as configurações de rede, o que o deixará parecido com o exemplo abaixo, variando somente nos valores de IPs. Lembrando que caso o modelo não tenha todos os parâmetros, como por exemplo o item GATEWAY, este parâmetro deve ser adicionado.


O arquivo estando similar, pressione Esc uma vez, digite :wq e de enter, o arquivo será salvo e fechado. Agora será criado o arquivo network, que guarda o nome da máquina e o gateway, para isso execute:

vi /etc/sysconfig/network

Será aberto um arquivo de texto em branco, no qual deve-se inserir alguns parâmetros e valores, conforme modelo abaixo:



Após editado, novamente pressione Esc uma vez, digite :wq e de enter. Com as devidas configurações, ative a placa de rede eth0, execute o comando:

ifup eth0

Caso tenha inserido um DNS no arquivo ifcfg-eth0, podem aparecer algumas mensagens de erro, mas isto é normal. No fim a tela deve ter ficado parecida com a abaixo (note as mensagens de erro), caso tudo OK, desligue novamente a VM com o comando Halt.


Este passo não é realmente obrigatório, mas, por via das dúvidas vou mencionar. No Hyper-V, na configuração de placa de rede, podemos deixar o MAC Address dinâmico (Default) ou estático. Quando dinâmico, somente após o primeiro boot da máquina o número é gerado. Como disse, não sou um profundo conhecedor de Linux, mas até onde sei, existem algumas amarrações de placa de rede que são feitas por MAC, sendo assim, este seria o momento para modificar a configuração da placa de rede para estático. Isso pode evitar problemas caso precise migrar esta VM para um host diferente do original.


Religue a máquina, logue no desktop como admin, abra um terminal e log como root. Para ter certeza que a rede está OK, execute testes de ping. Agora a VM será customizada para que ela suba totalmente em  modo texto, para isso digite o seguinte:

vim /etc/inittab

O vim é praticamente a mesma coisa que o vi, com a diferença que ele interpreta o arquivo e adiciona cores dependendo do que está escrito, com isso melhora a visualização. Neste arquivo, devemos mudar o número 5 para 3. Caso digite algo errado, simplesmente aperte Esc e depois digite :q!, para sair sem gravar nenhuma alteração. No final, o arquivo inittab vai ficar da seguinte forma:


Após editar este arquivo, digite:

vim /boot/grub/grub.conf

Este é um pouco mais complexo para editar. No parâmetro 'default', deve-se alterar o valor para 1, em 'timeout' para 2 e o parâmetro 'hiddenmenu' deve ser comentado adicionando um '#' no inicio da linha. Deve-se editar o parâmetro 'kernel' removendo os itens 'rhgb' e 'quiet' do final. O arquivo deve ficar desta forma:


Agora execute a seguinte ordem de comandos, pode demorar um pouco:

plymouth-set-default-theme details
/usr/libexec/plymouth/plymouth-update-initrd

Existe um serviço que a opção 'Basic Server' adiciona desnecessariamente, desative ele e reboot a VM na sequência com os comandos:

chkconfig auditd off
reboot

Ao ligar, verifique que agora a VM está totalmente em modo texto, culminando na tela abaixo:


Pronto, temos um servidor em modo texto \o/! Caso precise acessar a parte gráfica é necessário somente logar com o user admin e após logado executar:

startx

O desktop será iniciado logado com o user que executou o comando. Por questões de segurança, recomendo sempre logar como admin e depois logar como root no terminal, mas esta decisão é pessoal.

Neste momento a VM Linux modo texto está totalmente funcional para receber a instalação do Zabbix, aguardem a parte 02 em breve.

Até mais e obrigado pelos peixes!

Comentários

Postagens mais visitadas deste blog

Como restaurar apenas alguns objetos de um backup do SQL Server

Monitorando servidores Microsoft SQL Server - It`s free! - Parte 04 - Season Finale

Atualizando estatísticas em paralelo - usp_update_statistics_v1