Script de Monitoramento de Disco Rígido para Servidores Linux Headless

Índice:

Script de Monitoramento de Disco Rígido para Servidores Linux Headless
Script de Monitoramento de Disco Rígido para Servidores Linux Headless

Vídeo: Script de Monitoramento de Disco Rígido para Servidores Linux Headless

Vídeo: Script de Monitoramento de Disco Rígido para Servidores Linux Headless
Vídeo: (53) Como fazer e recuperar backup de save Wii - YouTube 2024, Novembro
Anonim
Os discos rígidos modernos têm um mecanismo interno chamado S.M.A.R.T. através do qual é possível saber quando um disco rígido está prestes a falhar. Não seria bom do servidor enviá-lo por e-mail antes de tal falha?
Os discos rígidos modernos têm um mecanismo interno chamado S.M.A.R.T. através do qual é possível saber quando um disco rígido está prestes a falhar. Não seria bom do servidor enviá-lo por e-mail antes de tal falha?

visão global

Programas como o “mdadm” (para gerenciamento de software RAID) e o “Palimpsest Disk Utility” (usado no Ubuntu LiveCD), usam as informações S.M.A.R.T para informar quando o disco está prestes a ou falhou. No entanto, em um servidor sem cabeçalho (sem GUI) não há serviço que irá informá-lo sobre a desgraça pendente antes que seja tarde demais. Além disso, como você saberia sobre isso sem fazer login manualmente no servidor?

Esse script, quando executado uma vez ao dia com o cron, alertará se alguma contagem de setores defeituosos das unidades de disco rígido do sistema atingiu um limite deliberadamente inferior ao limite "o disco está ruim" e envia o aviso por e-mail ao administrador da máquina.

Pré-requisitos e suposições

  • Você já configurou o suporte por e-mail para o servidor usando o guia "Como configurar e-mail de alertas no Linux".
  • Você está usando um sistema baseado no Debian.
  • Você não está usando um controlador RAID de hardware *.
  • Você vai me ver usando o VIM como programa de edição, isso é porque eu estou acostumado … você pode usar qualquer outro editor que você queira.

* Porque é muito possível que o controlador RAID de hardware bloqueie o acesso do sistema a essas informações.

Configuração

Instale o pacote “smartmontools” que lê as informações do S.M.A.R.T do controlador do disco rígido e as apresenta para nós.

sudo aptitude install smartmontools

Crie o script do monitor:

sudo vim /root/smart-monitor.sh

Faça disso o conteúdo:

#!/bin/bash ########Email function######## email_admin_func() { echo 'To: [email protected]' > $temp_email_file echo 'From: [email protected]' >> $temp_email_file echo 'Subject: S.M.A.R.T monitor Threshold breached' >> $temp_email_file echo '' >> $temp_email_file echo -e $1 >> $temp_email_file /usr/sbin/ssmtp -t < $temp_email_file echo 'Sent an Email to the Admin' }

smartc_func() { /usr/sbin/smartctl -A /dev/$1 | grep Reallocated_Sector_Ct |tr -s ' '|cut -d' ' -f11 }

########End of Functions########

########Set working parameter######## temp_email_file=/tmp/smart_monitor.txt allowed_threshold=5 #set the amount of bad sectors your willing to live with, recommended 5.

########Engine######## for i in sda sdb; do # Add or subtract disk names from this list as appropriate for your setup. if [ '`smartc_func $i`' -ge $allowed_threshold ]; then echo Emailing the Administrator email_admin_func 'One of the HDs on '`hostname`', has reached the upper threshold limit!!! nThe threshold was set to:$allowed_threshold and the $i disk status was: '`smartc_func $i`'' fi done

Os principais pontos a serem observados são:

  • Função de e-mail - Defina as informações apropriadas, como o nome da máquina e o e-mail do administrador.
  • Limite permitido - Defina este parâmetro para o que você acha apropriado, usei 5 porque o limite definido para os discos rígidos “grau de servidor” usados era 10. (encontrei o limite para unidades de “consumo” para ser tão alto quanto 140).
  • Defina os dispositivos que você deseja monitorar, ajustando a enumeração de nomes de disco no loop "for". Atualmente dois discos (sda e sdb) estão incluídos, então ajuste para a sua configuração. Você pode incluir todos os seus discos ou apenas alguns, se você precisar * excluir um disco por algum motivo.

* Na minha configuração original, o primeiro disco era uma unidade flash, portanto, a leitura de suas informações, se possível, não é muito útil.

Torne o script executável:

sudo chmod +x /root/smart-monitor.sh

A configuração está concluída.

Programe o script para ser executado automaticamente

Queremos que o script seja executado automaticamente, então criaremos um novo trabalho Cron para ele. Como indicado no guia "Como configurar alertas por e-mail no Linux", o resultado disso é que, se o próprio script encontrar um erro, o cron nos informará automaticamente por e-mail assim que isso acontecer.

Abra o agendador de tarefas cron:

sudo crontab -e

Adicione isto ao seu conteúdo:

0 7 * * * /root/smart-monitor.sh > /tmp/last_smart_monitor_run.log

Isso irá definir o script para ser executado todas as manhãs às 7 da manhã.

Todo o seu setor pertence a nós:)

Recomendado: