Está en la página 1de 10

UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos

Creación de registros y alertas

Actividad registro de eventos


Juan Fernández-Herrerín Alvarez

1
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

Índice
Tarea 1 Script de monitorización con evento (6 puntos)......................................................................3
Tarea 2 Eventos en Linux (4 puntos)...................................................................................................6

1
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

Descripción

• Para cada tarea lee los detalles y los elementos a entregar antes de ejecutar la
tarea.
• Existen tareas opcionales, que no es obligatorio realizar. Realízalas si has acabado
las anteriores y te queda tiempo. Las puedes identificar porque comienzan por
OPCIONAL.
• Debes incluir las evidencias en las casillas marcadas con color naranja.
• Utiliza este documento como plantilla, pero debes entregar todos los pasos que
hayas podido realizar en un único documento con formato PDF.

2
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

Tarea 1 Script de monitorización con evento (6 puntos)


Trabajarás en la máquina Windows 10 Professional. Para ello utilizarás el script de
monitorización de CPU que se proponía en la tarea 4 de la actividad de servicios:
#En esta línea fijamos el fichero de log en el que se registrarán las trazas
$logfile = "C:\Tests\fichero_log.txt"

#Esta función nos permite convertir de tiempo consumido a porcentaje de uso


$CPUPercent = @{
Name = 'CPUPercent'
Expression = {
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round( ($_.CPU * 100 / $TotalSec), 2)
}
}

#Ejecutamos de forma indefinida


while ($true) {

#Obtenemos aquellos procesos con un consumo de CPU superior al 5%


$procesos = Get-Process | Select-Object -Property Name, $CPUPercent, Description |
Where-Object {$_.CPUPercent -ge 5}

#Para cada proceso encontrado imprimimos una línea informando


$procesos | ForEach-Object {
$fecha = Get-Date
echo "$env:computername $fecha : $($_.Name) consumiendo un $($_.CPUPercent)%" >> $logfile
}

#Esperamos 30 segundos
Start-Sleep -s 30

Este script chequea cada 30 segundos si hay procesos que consuman más de un 5%. Si
existe alguno, vuelca en el fichero C:\Tests\fichero_log.txt una línea indicando el nombre
de la máquina, la fecha y el porcentaje de CPU consumida.
Antes de comenzar, si no lo tienes, crea una carpeta llamada “C:\Tests”, y dentro crea un
fichero PowerShell (extensión .ps1) que contenga el script anterior. Puedes ejecutarlo y
ver la información que genera.
En concreto, la línea que realiza esta operación es:
echo "$env:computername $fecha : $($_.Name) consumiendo un $($_.CPUPercent)%" >> $logfile

Nombre del proceso CPU consumida


Modifica el script para que, adicionalmente al volcado de la línea al fichero, genere un

3
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

evento en el registro de Aplicación. Este evento debe generarse con la siguiente


información:
• Nivel del evento: Advertencia

• Origen: Monitorizacion

• Id del evento: 6789

• Mensaje: “Atención!, el proceso <nombre_proceso> está consumiendo un


<porcentaje_consumida>%”
dónde <nombre_proceso> será el proceso que consume la CPU ( $($_.Name)) y
<porcentaje_consumida> la CPU que está consumiendo ( $($_.CPUPercent)).
En el script debes añadir una línea que generará el evento justo debajo de la línea del
script que comienza por:
echo "$env:computername

Además, antes de poder ejecutar el script debes crear el Origen solicitado.

Detalle y entregas:
1. Indica el comando ejecutado para crear el origen

Cmdlet ejecutado (completo)

New-EventLog -LogName servicio1 -Source C:\Tests\servicio1 modificado.exe

2. Incluye el script modificado


Script completo con tus modificaciones
# Creamos el origen del evento en el registro de aplicación
if (![System.Diagnostics.EventLog]::SourceExists("Monitorizacion")) {
New-EventLog -LogName Application -Source Monitorizacion
}

# Fijamos el fichero de log en el que se registrarán las trazas


$logfile = "C:\Tests\fichero_log.txt"

4
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

# Esta función nos permite convertir de tiempo consumido a porcentaje de uso


$CPUPercent = @{
Name = 'CPUPercent'
Expression = {
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round(($_.CPU * 100 / $TotalSec), 2)
}
}

# Ejecutamos de forma indefinida


while ($true) {

# Obtenemos aquellos procesos con un consumo de CPU superior al 5%


$procesos = Get-Process | Select-Object -Property Name, $CPUPercent, Description |
Where-Object {$_.CPUPercent -ge 5}

# Para cada proceso encontrado imprimimos una línea informando


$procesos | ForEach-Object {
$fecha = Get-Date
$mensaje = "Atención!, el proceso $($_.Name) está consumiendo un $
($_.CPUPercent)%"
echo "$env:computername $fecha : $mensaje" >> $logfile
Write-EventLog -LogName Application -Source Monitorizacion -EventId 6789 -
EntryType Warning -Message $mensaje
}

# Esperamos 30 segundos
Start-Sleep -s 30

*EXPLICACIÓN:
Este script primero comprueba si el origen "Monitorizacion" ya existe en el registro de aplicación
y, si no existe, lo crea. Luego, el script ejecuta un bucle infinito que comprueba si hay procesos
que consumen más del 5% de la CPU cada 30 segundos. Para cada proceso que se encuentra, el
script registra una línea en el archivo de registro y genera un evento de advertencia en el registro
de aplicación con el mensaje que incluye el nombre del proceso y el porcentaje de CPU
consumido.

5
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

2. Adjunta una captura de pantalla con un filtro aplicado sobre el registro de aplicación
en el que se vean solo los eventos generados por el script.
Si no tienes en el sistema ningún proceso que consuma más del 5% de CPU,
puedes ejecutar el ProcesoCarga.exe proporcionado anteriormente para generarla.
Captura de pantalla de eventos con el filtro aplicado

6
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

Tarea 2 Eventos en Linux (4 puntos)


Esta tarea la debes realizar sobre el equipo con Ubuntu Desktop.
Modifica los logs del sistema, para que guarde los siguientes logs relativos a cron:
• Todos los eventos generados por el cron se almacenen en /var/log/cron.log
• Todos los eventos de tipo error, critical, alert y emergency generados por el cron se
almacenen en /var/log/cron.err

1. Detalla la configuración realizada


Configuración
1. Editar el archivo de configuración de:
sudo nano /etc/rsyslog.d/50-default.conf

editar la línea que comienza con #cron.* /var/log/cron.log y descomentarla quitando el


símbolo "#" al principio de la línea. Debe quedar así:
cron.* /var/log/cron.log

Justo debajo de lo que se acaba de descomentar agregamos una nueva línea para filtrar
los mensajes de error, critical, alert y emergency:
cron.=err,cron.=crit,cron.=alert,cron.=emerg /var/log/cron.err

Una vez modificado guardamos.

2. Reiniciar el servicio de rsyslog para que la configuración tenga efecto:

sudo service rsyslog restart

Con estos cambios, todos los eventos generados por el cron se almacenarán en el
archivo /var/log/cron.log, y los eventos de error, critical, alert y emergency se
almacenarán en el archivo /var/log/cron.err.

7
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

2. Planifica en el cron de tu usuario el proceso


echo Hola > resp.txt
de forma que se ejecute cada minuto.
Espera dos minutos y adjunta las evidencias de que se ha ejecutado utilizando los
ficheros de log anteriores

8
UD7 – Rendimiento en sistemas operativos ASIR – Implantación de sistemas operativos
Creación de registros y alertas

Al terminar, acuérdate de eliminar la planificación.

También podría gustarte