Tareas #6169

Tareas #6159: Diseño de la solución tecnológica

Tareas #6167: Diseño de los servicios

Monitoreo y NTP

Added by Victor Alem about 1 year ago. Updated 11 months ago.

Status:CerradaStart date:04/04/2019
Priority:NormalDue date:
Assignee:TLecom% Done:

100%

Category:-Estimated time:9.00 hours
Target version:-Spent time:-

Description

Investigar como implementar estos servicios en linux

Introducción.png (16.5 KB) Edison Terra, 04/10/2019 11:40 AM

Polls y Traps.png (14.8 KB) Edison Terra, 04/10/2019 11:40 AM

monitorizacion-snmp-1.png (73 KB) Edison Terra, 04/10/2019 12:29 PM

img_2_arbol_mib_representando_oid.png (124 KB) Edison Terra, 04/10/2019 12:46 PM

b.png (15.2 KB) Edison Terra, 04/10/2019 02:03 PM

IMAGEN 1.jpg (64.6 KB) Alexander Rivero, 04/11/2019 03:47 PM

Imagen2.jpg (29.8 KB) Alexander Rivero, 04/11/2019 03:51 PM

Check-Chrony-Synchronization-in-Linux.png (2.18 KB) Alexander Rivero, 05/01/2019 11:54 AM

Check-Chrony-Sources.png (3.12 KB) Alexander Rivero, 05/01/2019 12:18 PM

oid.png (188 KB) Edison Terra, 05/05/2019 11:58 AM

zabbix-website-v4_orig.png (62.7 KB) Edison Terra, 05/30/2019 09:52 AM

4076
4077
4078
4079
4080
4089
4090
4144
4145
4198
4242

Related issues

Related to 2019 - TLecom - Tareas #6213: Implementación de NTP y Monitoreo Cerrada 06/19/2019

History

#1 Updated by Edison Terra about 1 year ago

Monitoreo y NTP

¿Que es el Monitoreo de una Red?

La monitorización en las redes, en términos generales, consiste en emplear los protocolos de comunicaciones que hay disponibles para obtener información sobre el estado de nuestros sistemas de comunicaciones, los cuales van desde routers hasta teléfonos fijos o móviles.

Protocolo Simple de Administración de Red: SNMP

Introducción y Objetivos:

El “Simple Network Management Protocol” es un protocolo de la capa de aplicación de red, el cuál fue creado con la idea de administrar la red de una manera en común. La monitorización por SNMP es una de las más utilizadas en este momento para obtener información, el cuál se encarga de facilitar el intercambio de información de configuración de red independientemente del tipo de dispositivo que se encuentre en la misma. Este es un componente de la suite de protocolo de Internet como se define por el IETF (Internet Engineering Task Force) el cuál es es una organización internacional abierta de normalización, que tiene como objetivos el contribuir a la ingeniería de Internet.
SNMP se compone de un conjunto de normas para la gestión de la red, incluyendo una base de datos de esquema denominada MIB's, también se compone de una estación de Gestión y un Agente de Gestión, además de un conjunto de objetos de datos.

Los objetivos que se tuvieron en cuenta a la hora de diseñar dicho protocolo fueron:
- La universalidad lo que permitiría que sea implementable desde los equipos mas pequeños a los mas grandes
- Sencillez y accesibilidad lo cual implica que sea implementable en pocas líneas de código
- El agregado de extensiones debería ser posible (nuevas MIBs)
- Gestión debería ser lo mas robusta posible

Implementación:

SNMP permite intercambiar dicha información, por medio de mensajes SNMP, relevantes sobre la configuración del dispositivo, se da entre el Gestor o controlador y el Agente o controlado además de permitir realizar tareas de gestión de activos, tales como la modificación y la aplicación de una nueva configuración a través de la modificación remota de variables. El Gestor posee una interfaz a través de la cual el administrador de la red puede monitorear y controlar el estado de la red además de aplicaciones para recuperar fallas, configuración de sistemas, y análisis de la información obtenida de los agentes. También puede trasladar los requerimientos del administrador en requerimientos a los agentes y elementos de monitoreo, a su vez cuenta con una base de datos con la información obtenida de todos los agentes presentes en la red.
Las MIB's (Management Information Base) son las bases de datos recién nombradas, estas se encuentran establecidas por un conjunto de deficiones basicas establecidas por SMI (Structure of Management Information) en la que se define el marco general bajo el cual las MIBs van a ser construidas para contener informaciòn de gestiòn.

Estas lo que hacen es gestionar todo aquel recurso de red que sea posible de ser gestionado y los representa a través de un objeto el cuál es una variable que contiene la información del recurso, esta variable varia según el tipo de de recurso que se almacena y el conjunto de todas estas variables que son conocidas por un agente es la MIB de este agente.
El Gestor debe implementar su funcionalidad accediendo a los objetos presentes en la MIB de cada agente a gestionar, lo que se puede hacer con cada agente depende de la MIB implementada por este.

¿Que es una OID?

Las OID también llamadas objetos identificadores sirven para identificar de manera exclusiva objetos gestionados en una jerarquía MIB. Puede ser representado como un árbol cuyos nodos son asignados por diferentes organizaciones. Generalmente, un OID es una larga secuencia de números, codificando los nodos, separado por puntos. Los OID de objetos MIB de nivel superior pertenecen a diferentes organizaciones estándar.
Los proveedores definen sucursales privadas que incluyen objetos gestionados para sus propios productos.
SNMP básicamente funciona con el principio de que los sistemas de gestión de red envían una solicitud y los dispositivos gestionados devuelven una respuesta.
Las OID's estan definidas por ASN.1, es una norma para representar datos independientemente de la máquina que se esté usando y sus formas de representación internas y los tipos de datos pueden variar en el número de bits empleados para su codificación (ejemplo Integer, OctecString, etc).

Ejemplo de Sintaxis de una MIB:

Lab DEFINITIONS::=BEGIN
IMPORTS
      OBJECT-TYPE,MODULE-IDENITY,TimeTicks, ipAddress, enterprises FROM SNMPv2-SMI;

Lab MODULE-IDENTITY 
    LAST-UPDATED "201809292648" 
    ORGANIZATION "Taller De Gestion Redes" 
    CONTACT-INFO "0154405524" 
    DESCRIPTION "Descripcion del modulo, que va a llevar a cabo esta MIB" 
    REVISION "201809292648" 
::={ enterprises 673 }

Nombre OBJECT TYPE
    SYNTAX Octectstring
    MAX-ACCESS read-only
    STATUS mandatory
    DESCRIPTION "Leera el nombre de los equipos del laboratorio" 
::= { Lab 2 }

EquipoTabla OBJECT-TYPE
    SYNTAX SEQUENCE OF DateEquip
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION "Esta tabla contendra el resto de los valores de cada equipo." 
::= { Lab 1 }

DateEquip OBJECT-TYPE
    SYNTAX DateEquip
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION "Datos de la computadora" 
    INDEX
    { sysNombreEquipo }
::= { EquipoTabla 1 }

DateEquip::=
SEQUENCE{
sysNombreEquipo octectstring
Direccion ipAddress
SO octectstring
Activos INTEGER
}

sysNombreEquipo OBJECT TYPE
    SYNTAX Octectstring
    MAX-ACCESS read-only
    STATUS mandatory
    DESCRIPTION "Leera el nombre de los equipos de este servidor" 
::= { DateEquip 1 }

Direccion OBJECT TYPE
    SYNTAX ipAddress
    MAX-ACCESS read-only
    STATUS mandatory
    DESCRIPTION "Leera la direccion IP de los equipos de este servidor" 
::= { DateEquip 2 }

SO OBJECT TYPE
    SYNTAX octectstring
    MAX-ACCESS read-only
    STATUS mandatory
    DESCRIPTION "Brindara informacion del sistema operativo de los equipos de este servidor" 
::= { DateEquip 3 }

Activos OBJECT TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS mandatory
    DESCRIPTION "contara la cantidad de usuarios activos de este servidor" 
::= { DateEquip 1 }

END

Forma de Comunicación:

Para poder llevar a cabo la comunicación entre ambos se debe implementar como mínimo las siguientes funcionalidades básicas las cuales se pueden englobar en mensajes de monitorización o lectura (get) y mensajes de control o escritura (set) además de funcionalidades especiales (traps o polls):

- Get ; lo que hace es permitirle al gestor acceder a los valores de las variables almacenadas en la MIB
- Set ; lo que hace es permitir que el gestor pueda configurar los valores en algunas de las variables de dicha MIB
- Trap ; en este caso se le permite al el agente que notifique al gestor basándose en cambios o eventos significativos tales como fallas o anormalidades
- Poll ; lo que se hace es generar un pedido de información por parte del gestor hacia la estación del agente, esto generalmente se hace periódicamente para saber el estado de la otra estación. Por otra parte se utiliza para recolectar información de variables tales como el tráfico, uso de memoria y/o consumo de CPU

Ejemplo de Monitorización SNMP Polling

En este ejemplo se puede ver como se por medio de un comando en terminal se lanza un chequeo contra una dirección IP, para esto se requiere un parámetro particular de la comunidad SNMP el cuál consiste en una cadena alfanumérica empleada para autorizar la operación, añadiendo una barrera de seguridad, cuando realizamos esta acción obtenemos un listado con una gran cantidad de información:

Cada una de las líneas devueltas por el comando 'snmpwalk' tiene un OID,corresponde a un dato determinado del dispositivo.

Protocolo de Transporte:

Se trabaja directamente sobre IP, por otro lado si tomamos encuenta el protocolo de transporte, en el caso de TCP no seria una buena opción para este caso debido a que presenta mayor complejidad ya que lleva a cabo el manejo de conexiones y controles de flujo , en el caso de UDP hay mejor flexibilidad y eficiencia aunque no sea tan seguro, pero es la mejor elección para llevar a cabo las peticiones.
Un ejemplo que utiliza tanto UDP como IP es el agente SNMP ya que debe encargarse de controlar su MIB, de medir todos los parámetros soportados y de atender a los pedidos del gestor. El gestor y el agente deben estar de acuerdo en la definición de dicha MIB.

SNMP en Linux

Existen distintos softwares que llevan a cabo las actividades de SNMP:
Uno de los paquetes más populares de SNMP es el CMU-SNMP, el cuál es compatible con el estándar SNMPv1 e incluye algunas de las nuevas funcionalidades de SNMPv2, contiene algunas herramientas de gestión que permiten, desde la línea de comandos, enviar peticiones a dispositivos que ejecuten agentes SNMP. También contiene un programa agente SNMP, que sirve para llevarse a cabo sobre Linux, que ofrece a gestores ejecutándose en la red , información sobre el estado de los interfaces, tablas de encaminamiento, instante de inicio, entre otras cosas.

Por otra parte existe una herramienta diseñada para la administración y monitoreo de servicios de red, Servidores y hardware de red denominada Zabbix, ofrece monitoreo para “LAN, Redes locales” y “WAN, redes de área amplia”. Dicho software se implementa de la siguiente manera, la aplicación se instala en un servidor Linux y luego se dedica a la “Recolección de información” de los dispositivos de la red.

La ventaja de Zabbix frente a otros softwares de monitoreo es que todo lo que necesita para el monitoreo esta disponible de forma libre, con el detalle qué la configuración es un poco más técnica sin embargo es fácil de comprender. Dicho software usa MySQL, PostgreSQL, SQLite, Oracle o IBM DB2 como base de datos, su backend está escrito en C y el frontend web está escrito en PHP.

Entre las funciones que ofrece Zabbix podemos encontrar, auto descubrimiento de servidores y dispositivos de red, posee un alto rendimiento y alta capacidad lo que le da la posibilidad de monitorizar cientos de miles de dispositivos de manera distribuida y con una administración web centralizada, ademas cuenta con agentes para Linux, Mac y Windows es muy liviano y consume un mínimo de recurso del equipo donde se instale. Se instalan en los “Servidores” o “Estaciones de trabajo” que le interese monitorear, ademas esta solución le permite ver el estado de Impresoras, Routers, Switches, sensores de temperatura y humedad entre otros. Por otro lado tiene la capacidad de llevar a cabo sus funciones de monitorización sin agentes.
En si los agentes luego de ser instalados se encuentran a esperas de las ordenes del "Servidor Recolector Zabbix" para envíar únicamente la información que les sea pedida por dicho servidor recolector.

Instalación y Configuración de Zabbix:

[[https://proyectos.interior.edu.uy/issues/6213]]

Referencias:

[[https://es.wikipedia.org/wiki/Protocolo_simple_de_administraci%C3%B3n_de_red]]

[[https://blog.pandorafms.org/es/monitorizacion-snmp]]

[[https://www.incibe-cert.es/blog/snmp-tan-simple-el-nombre-indica]]

[[http://es.tldp.org/LinuxFocus/pub/mirror/LinuxFocus/Castellano/January1998/article21.html]]

[[http://wiki.salud.gob.sv/wiki/Configuraci%C3%B3n_de_SNMP_en_Debian]]

[[http://911-ubuntu.weebly.com/zabbix_como_funciona/conoce-la-estructura-de-zabbix-y-como-usarlo]]

[[https://es.wikipedia.org/wiki/Zabbix]]

- Diapositivas sobre SNMP, ASN.1 y SMI del Taller de Gestión de Redes

#4 Updated by Edison Terra about 1 year ago

  • File a.png added
  • File b.png added

#5 Updated by Edison Terra about 1 year ago

  • File deleted (a.png)

#6 Updated by Victor Alem about 1 year ago

#7 Updated by Alexander Rivero about 1 year ago

Network Time Protocol (NTP)

¿Que es y para que sirve?

Es un protocolo de los más antiguos de internet y sigue estando en uso hoy en día, el cuál revela el desajuste del reloj local del cliente en comparación con el reloj local de un servidor de tiempo enviando una estampa de tiempo del servidor al cliente.
Este protocolo es utilizado para sincronizar redes o equipos con la hora del servidor de tiempo.
En general para un estudio detallado de cualquier servicio distribuido, es muy útil el disponer de datos horarios precisos entre los equipos implicados, bien sea para la detección de problemas de hardware y/o software, así como para el estudio estadístico de los mismos.

¿Como funciona?

El funcionamiento del protocolo NTP consiste esencialmente en establecer una ruta hacia el servidor de tiempo especificado, calcula el tiempo que tarda en viajar la estampa de tiempo y de regreso (Round Trip Delay), después compensa ese retardo y luego envía la estampa de tiempo para sincronizar el equipo del cliente.

En este protocolo existen estratos. La primera vez que un servidor corre, hace los cálculos de delay y los guarda para no tener que hacerlos nuevamente, este servidor se sincroniza con los de su mismo estrato o superiores, teniendo así, mayor cantidad de referencias y mayor precisión del tiempo.

¿Como es su configuración?

El protocolo NTP puede trabajar en uno o más modos de trabajo, uno de ellos es el modo cliente/servidor en el cuál un cliente se sincroniza con un servidor.
NTP también soporta un modo simétrico, el cuál permite a cada uno de los servidores sincronizarse con otro, para proporcionarse copias de seguridad mutuamente.
NTP también soporta el modo broadcast por el cuál muchos cliente pueden sincronizarse con uno o varios servidores, reduciendo el tráfico en la red cuando están involucrados un gran número de clientes.

NTP en linux.

Chrony es un software que será de utilidad y está disponible en los repositorios de Ubuntu. Chrony está orientado a equipos más corrientes, los cuales son inestables, entran en modo de suspensión o interrumpiedno la conexión con internet de manera intermitente. Chrony está pensado también para máquinas virtuales, un ambiente mucho más inestable. Se caracteriza por su bajo consumo de recursos (costo). Tiene dos componentes principales: chronyd un demonio que se ejecuta al iniciar la computadora y chronyc una interfaz por línea de comandos al usuario para su configuración. Ha sido evaluado como muy seguro y con apenas unas cuantas incidencias

Instalar Chrony en Linux.

En algunos sistemas, Chrony puede estar instalado de forma predeterminada. Aún así, si falta el paquete, puedes instalarlo fácilmente utilizando tu herramienta de gestión de paquetes por defecto en tus respectivas distribuciones de Linux, en nuestro caso (Debian) utilizando el siguiente comando:

# apt install chrony

Para comprobar el estado de cronyd utiliza el siguiente comando:

# systemctl status chronyd      [En SystemD]
# /etc/init.d/chronyd status    [En Init]

Si quieres habilitar el demonio chrony al arrancar, puedes utilizar el siguiente comando:

# systemctl enable chrony       [En SystemD]
# chkconfig --add chronyd       [En Init]

Comprueba la sincronización con Chrony en Linux.
Para comprobar si chrony está realmente sincronizado, usaremos su programa de línea de comandos chronyc, que tiene la opción de seguimiento que proporcionará información relevante.

# chronyc tracking

Los archivos listados proporcionan la siguiente información:

Reference ID – el Id. de referencia y el nombre con el que se sincroniza actualmente el ordenador.
Stratum – número de saltos a un ordenador con un reloj de referencia conectado.
Ref time – es la hora UTC en la que se realizó la última medición desde la fuente de referencia.
System time – retardo del reloj del sistema desde el servidor sincronizado.
Last offset – desplazamiento estimado de la última actualización del reloj.
RMS offset – promedio a largo plazo del valor de offset.
Frequency – esta es la tasa por la cual el reloj del sistema se equivoca si chronyd no lo está corrigiendo. Se presenta en ppm (partes por millón).
Residual freq – la frecuencia residual indica la diferencia entre las mediciones de la fuente de referencia y la frecuencia que se está utilizando actualmente.
Skew – límite de error estimado de la frecuencia.
Root delay – el total de los retrasos de la ruta de red al ordenador de estrato, desde el que se está sincronizando el ordenador.
Leap status – es el estado de salto que puede tener uno de los siguientes valores: normal, insertar segundo, borrar segundo o no sincronizado.

Para comprobar la información sobre las fuentes de chrony, puedes ejecutar el siguiente comando:

# chronyc sources

Configurar Chrony en Linux

El archivo de configuración de chrony se encuentra en /etc/chrony.conf o /etc/chrony/chrony.conf y el archivo de configuración de ejemplo puede tener este aspecto:

server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst

stratumweight 0
driftfile /var/lib/chrony/drift
makestep 10 3
logdir /var/log/chrony

La configuración anterior proporciona la siguiente información:

server – esta directiva se utiliza para describir un servidor NTP desde el que sincronizar.
stratumweight – cuánta distancia debe añadirse por estrato a la fuente de sincronización. El valor por defecto es 0.0001.
driftfile – ubicación y nombre del archivo que contiene los datos.
makestep – esta directiva hace que chrony corrija gradualmente cualquier hora compensada por exceso de velocidad o ralentización del reloj según sea necesario.
logdir – al archivo de registro de chrony.

Si quieres escalonar el reloj del sistema inmediatamente e ignorar cualquier ajuste que esté en curso, puedes utilizar el siguiente comando:

# chronyc makestep

Si decides detener Chrony, puedes utilizar los siguientes comandos.

# systemctl stop chrony          [On SystemD]
# /etc/init.d/chronyd stop       [On Init]

Referencias:

[[https://www.slideserve.com/wilson/sincronizaci-n-de-relojes-ntp]]
[[https://www.slideserve.com/noe/sincronizaci-n-de-la-hora-oficial-con-servidor-ntp-cronos-del-cenam]]
[[https://es.wikipedia.org/wiki/Network_Time_Protocol]]
[[https://maslinux.es/como-instalar-y-usar-chrony-en-gnu-linux/]]

#8 Updated by Victor Alem about 1 year ago

Edison Terra escribió:

Monitoreo y NTP

¿Que es el Monitoreo de una Red?

La monitorización en las r...

[...]

Edison, está bien la descripción del protocolo, pero estaría bueno que investiguen un poco algún software de monitoreo. Por ejemplo, si quiero monitorizar un OID específico de un equipo, guardar un histórico, generar alarmas, etc, ¿lo puedo hacer solo instalando snmpd?

#9 Updated by Victor Alem about 1 year ago

Alexander Rivero escribió:

Network Time Protocol (NTP)

¿Que es y para que sirve?

Es un protocolo de l.....

Alexander, gracias por el material. Estaría bueno tener algún ejemplo de configuración del software, hablaste de Chrony, empieza por ahí.

#12 Updated by Edison Terra about 1 year ago

#13 Updated by Edison Terra about 1 year ago

  • % Done changed from 0 to 70

#14 Updated by Victor Alem about 1 year ago

  • Related to Tareas #6213: Implementación de NTP y Monitoreo added

#16 Updated by Edison Terra 12 months ago

  • % Done changed from 70 to 90
  • Estimated time set to 9.00

#17 Updated by Edison Terra 12 months ago

  • Status changed from En curso to Resuelta
  • % Done changed from 90 to 100

#18 Updated by Victor Alem 11 months ago

  • Status changed from Resuelta to Cerrada

Also available in: Atom PDF