Soluciones para monitorear el uso del disco

Descripción: hay servidores de 100 centos que se comunican entre sí a través de intranet ssh, se conocen el nombre de usuario y la contraseña, y se conoce la lista de IP del servidor. Diseñe una solución técnica para el servidor con una tasa de uso del disco de salida superior al 90%. Es necesario escribir una solución técnica detallada, escriba el código de los comandos y scripts involucrados, y presente las instrucciones de instalación para las bibliotecas de terceros.

Esquema

Ideas de programa:

  • Prueba si el buzón está disponible

  • Establezca una tarea programada para ejecutar el siguiente script cada cinco minutos para ver la ocupación

  • Envíe un correo electrónico de alarma cuando se descubra que el índice de ocupación supera el 90%

  • Instale el servicio ansible, compile el archivo yml para ejecutar tareas en lote

Correo de prueba

# Aquí usamos el buzón qq como destinatario 
vim / etc / mail.rc 
set bsdcompat 
set from = [email protected] # Nombre del receptor 
set smtp = smtp.qq.com #smtp address 
set smtp -auth-user = xx @ qq.com # destinatario dirección de   
la SET, el SMTP -auth-password = xxxxxxx #smtp verificación de códigos, en la operación qq-mail, mensajes de enviar a través de teléfono móvil para obtener los códigos de 
la SET, el SMTP -auth = la sesión 


# prueba 
de eco  " prueba de correo (contenido de la prueba) ." | mail -s " Resultados de la prueba (Asunto) " [email protected]

Contenido del script

vim / server / scripts / df . sh 
# ! / bin / bash                                                                             
 > / tmp / disk.log # Aquí 
está el umbral de prueba 
D_Value = 90 
#Retire el 
porcentaje de disco D_Use = ` df -h | grep  ' ^ / dev ' | awk  ' {print $ 5} ' | sed  ' s #% ## ' ' 
#Quite la 
dirección IP privada del host IP_Addr = `/ sbin / ifconfig eth1 | grep inet | grep -v 127.0 .0,1 | grep -v inet6 | awk  ' {print $ 2} ' | tr -d " addr: " `
 para i en $ D_Use
 do 
    if [$ i -ge $ D_Value]; entonces 
        D_Name = ` df -h | sed -n ' / ' " $ i " ' / p ' | awk  ' {print $ 1} ' ' 
        D_Part = ` df -h | sed -n ' / ' "$ i "' / p ' | awk  ' {print $ 6} ' '
         fecha >> / tmp / disk.log
         echo  " $ La tasa de uso de $ IP_Addr server $ D_Name (partición $ D_Part) excede $ D_Value%, la tasa de uso actual es $ i%. " >> / tmp / disk.log
     fi 
hecho 
si [-s /tmp/disk.log]; luego 
    cat /tmp/disk.log|mail -s " DISCO usado en advertencia "  1354586675 @
 qq.com fi

Tareas programadas

crontab- e
 #Ejecute el 
script cada cinco minutos * / 5 * * * * / server / scripts / df . sh

Implementar ansible

yum  install epel-release- y
 yum  install ansible- y 
ansible - versión 
# Establezca la 
lista de hosts y use el método de coincidencia de secuencias 
vim / etc / ansible / hosts 
[ubantu_server] 
172.16 . 1. [ 41 : 100 ] 


#distribuya la 
clave a 100 anfitrión ssh-keygen 
ansibles ubantu_server -m -a Copiar " src = / root .ssh / id_rsa.pub dest = / root.ssh " 


mkdir   / etc / ansibles / palybook 

archivos yml # escritura 
vim df .yml
 - anfitriones: ubantu_server
  raíz: REMOTE_USER 
  Tareas:
  - Nombre: Crear un directorio de los scripts
     de archivos : 
      ruta: / server / guiones 
      Estado: Directorio 
      del MODO: 0755  
  - Nombre: La escritura de empuje 
    de copia: 
      src: / Server / scripts / df . SH 
      dest: / scripts / / Servidor 
  - Nombre: configuración push mail 
    Copia de archivo : 
      src: / etc / mail.rc 
      dest: / etc / 
      force: yes
   - name: crea una tarea programada 
    cron: 
      nombre: " Comprobación de porcentaje de disco "
      minuto: trabajo " * / 5" 
      trabajo: " sh /server/scripts/df.sh " 
  #Ejecutar 
      
      
  script ansible -playbook ubantu.yml

 

Supongo que te gusta

Origin www.cnblogs.com/Mercury-linux/p/12695005.html
Recomendado
Clasificación