One place for hosting & domains

      Checkmk

      Cómo monitorizar el estado del servidor con Checkmk en Ubuntu 18.04


      El autor seleccionó a Open Internet/Free Speech Fund para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Cómo administrador del sistema, es una buena práctica conocer el estado actual de su infraestructura y servicios. Idealmente, querrá darse cuenta de los discos que fallan o los tiempos de inactividad de la aplicación antes de que lo hagan sus usuarios. Las herramientas de monitorización como Checkmk pueden ayudar a los administradores a detectar estos problemas y a mantener los servidores en perfecto estado.

      Generalmente, el software de monitorización puede realizar un seguimiento del hardware de sus servidores, el tiempo de actividad y los estados de servicio, y puede presentar alertas si algo va mal. En un escenario muy básico, un sistema de monitorización le alertaría si algún servicio falla. En uno más robusto, las notificaciones llegarían poco después de que surja cualquier señal sospechosa, como un mayor uso de la memoria o una cantidad anormal de conexiones TCP.

      Existen muchas soluciones de monitorización disponibles que ofrecen varios grados de complejidad y conjuntos de funciones, tanto gratuitas como comerciales. En muchos casos, la instalación, configuración y gestión de estas herramientas es difícil y requieren mucho tiempo.

      Checkmk, sin embargo, es una solución de monitorización robusta y sencilla de instalar. Es un paquete de software autónomo que combina Nagios (un servicio de alertas popular y de código abierto) con complementos para recopilar, monitorizar y realizar gráficos de los datos. También cuenta con la interfaz web de Checkmk, una herramienta integral que aborda muchas de las deficiencias de Nagio. Ofrece un panel de control fácil de usar, un sistema de notificaciones completo y un repositorio de agentes de monitorización fáciles de instalar para muchas distribuciones Linux. Si no fuese por la interfaz web de Checkmk, tendríamos que utilizar diferentes vistas para diferentes tareas y no sería posible configurar todas esas funciones sin recurrir a amplias modificaciones de archivos.

      En esta guía, configuraremos Checkmk en un servidor Ubuntu 18.04 y monitorizaremos dos hosts independientes. Monitorizaremos el servidor Ubuntu también como servidor CentOS 7 independiente, pero podríamos usar el mismo enfoque para añadir cualquier cantidad de hosts adicionales a nuestra configuración de monitorización.

      Requisitos previos

      Paso 1: Instalar Checkmk en Ubuntu

      Para usar nuestro sitio de monitorización, primero debemos instalar Checkmk en el servidor Ubuntu. Esto nos proporcionará las herramientas que necesitamos. Checkmk ofrece archivos de paquete Ubuntu listos para usar que podemos utilizar para instalar nuestro paquete de software.

      Primero, vamos a utilizar la lista de paquetes para tener la versión más reciente de los listados del repositorio:

      Para examinar los paquetes, podemos ir al sitio de listado de paquetes. En el menú de la página puede seleccionarse Ubuntu 18.04 entre otros.

      Ahora, descargue el paquete:

      • wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      A continuación, instale el paquete recién descargado:

      • sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Este comando instalará el paquete Checkmk junto con todas las dependencias necesarias, incluyendo el servidor web Apache que se usa para proporcionar acceso web a la interfaz de monitorización.

      Tras completarse la instalación, ahora podemos acceder al comando omd. Pruébelo:

      Este comando omd generará el siguiente resultado:

      Output

      Usage (called as root): omd help Show general help . . . General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, --help show available options of COMMAND

      El comando omd puede gestionar todas las instancias Checkmk en nuestro servidor. Puede iniciar y detener todos los servicios de monitorización a la vez, y podremos utilizarlo para crear nuestra instancia Checkmk. Primero, sin embargo, tenemos que actualizar los ajustes de nuestro firewall para permitir el acceso externo a los puertos web predeterminados.

      Paso 2: Configurar el firewall

      Antes de poder trabajar con Checkmk, es necesario permitir el acceso externo al servidor web en la configuración del firewall. Asumiendo que siguió los pasos de configuración del firewall en los requisitos previos, tendrá un firewall UFW configurado para restringir el acceso a su servidor.

      Durante la instalación, Apache se registra con UFW para proporcionar una forma sencilla de habilitar o deshabilitar el acceso a Apache a través del firewall.

      Para permitir el acceso a Apache, utilice el siguiente comando:

      Ahora, verifique los cambios:

      Verá que Apache está listado entre los servicios permitidos:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Esto nos permitirá acceder a la interfaz web de Checkmk.

      En el siguiente paso, crearemos la primera instancia de monitorización de Checkmk.

      Paso 3: Crear una instancia de monitorización de Checkmk

      Checkmk utiliza el concepto de instancias, o instalaciones individuales, para aislar múltiples copias de Checkmk en un servidor. En la mayoría de los casos, una única copia de Checkmk es suficiente y así es como configuraremos el software en esta guía.

      Primero, debemos proporcionar un nombre a nuestra nueva instancia, y usaremos monitoring en este texto Para crear la instancia, escriba:

      • sudo omd create monitoring

      La herramienta omd configurará todo automáticamente. El comando debe tener un aspecto similar al siguiente:

      Output

      Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre. The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/ The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.) Please do a su - monitoring for administration of this site.

      En este resultado, se resaltarán la dirección URL, nombre predeterminado del usuario y contraseña para acceder a nuestra interfaz de monitorización. La instancia se crea ahora, pero aún debe iniciarse. Para iniciar la instancia, escriba:

      • sudo omd start monitoring

      Ahora, todas las herramientas y servicios necesarios se iniciarán a la vez. Al final, veremos un resultado que verifica que todos nuestros servicios se han iniciado correctamente:

      Output

      Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK

      La instancia está lista.

      Para acceder a la instancia Checkmk, abra http://your_ubuntu_server_ip/monitoring/ en el navegador web. Se le solicitará una contraseña. Utilice las credenciales predeterminadas impresas previamente en la pantalla; cambiaremos estos valores predeterminados más adelante.

      La pantalla de Checkmk se abre con un panel de control, que muestra todos nuestros servicios y los estados del servidor en listas, y utiliza gráficos prácticos que se parecen a la Tierra. Justo después de la instalación, estos están vacíos, pero pronto se mostrarán estados para nuestros servicios y sistemas.

      Panel de control en blanco de Checkmk

      En el siguiente paso, cambiaremos la contraseña predeterminada para proteger el sitio usando esta interfaz.

      Paso 4: Cambiar su contraseña administrativa

      Durante la instalación, Checkmk genera una contraseña aleatoria para el usuario administrativo cmkadmin. Esta contraseña debe cambiarse tras la instalación, y como tal, a menudo es corta y no muy segura. Podemos cambiar esto a través de la interfaz web.

      Primero, abra la página Users desde el menú WATO – Configuration a la izquierda. La lista mostrará todos los usuarios que actualmente tiene acceso al sitio de Checkmk. En una nueva instalación, listará solo dos usuarios. El primero, automation, está destinado a ser usado con herramientas automatizadas; el segundo es el usuario cmkadmin, que usamos para iniciar sesión en el sitio.

      Lista de usuarios Checkmk

      Haga clic en el icono de lápiz junto al usuario cmkadmin para cambiar sus detalles, incluyendo la contraseña.

      Formulario de edición para el usuario admin de Checkmk

      Actualice la contraseña, añada un correo electrónico de administrador y realice cualquier otro cambio que quiera.

      Tras guardar los cambios, nos solicitará que iniciemos sesión de nuevo con nuestras nuevas credenciales. Haga esto y vuelva al panel de control, donde hay una cosa más que debemos hacer para aplicar por completo nuestra nueva configuración.

      De nuevo, abra la página Users desde el menú WATO – Configuration a la izquierda. El botón naranja en la esquina superior derecha etiquetado como 1 Change nos indica que hemos realizado algunos cambios a la configuración de Checkmk, y que debemos guardarlos y activarlos. Esto sucederá cada vez que cambiemos la configuración de nuestro sistema de monitorización, no solo tras editar las credenciales del usuario. Para guardar y activar los cambios pendientes, debemos hacer clic en este botón y aceptar activar los cambios enumerados usando la opción Activate affected en la siguiente pantalla.

      Lista de usuarios de Checkmk tras las modificaciones Activar la pantalla de configuración en los cambios de configuración Cambios de configuración activados correctamente

      Tras activar los cambios los datos del nuevo usuario se escriben en los archivos de configuración serán usados por todos los componentes del sistema. Checkmk notifica automáticamente a los componentes individuales del sistema de monitorización, recargándolos cuando sea necesario y administrando todos los archivos de configuración necesarios.

      La instalación de Chekmk ahora está lista para usarse. En el siguiente paso, añadiremos el primer host a nuestro sistema de monitorización.

      Paso 5: Monitorizar el primer host

      Ahora estamos listos para monitorizar el primer host. Para conseguir esto, primero instalaremos check-mk-agent en el servidor Ubuntu. A continuación, restringiremos el acceso a los datos de monitorización usando xinetd.

      Los componentes instalados con Checkmk se encargan de recibir, almacenar y presentar la información de monitorización. No proporcionan información en sí mismos.

      Para recopilar datos reales, usaremos el agente de Checkmk. Diseñado específicamente para este trabajo, el agente de Checkmk es capaz de monitorizar todos los componentes vitales del sistema a la vez y de reportar esa información a la instancia de Checkmk.

      Instalar el agente

      El primer host que monitorizaremos será your_ubuntu_server, el servidor sobre el cual hemos instalado la instancia Checkmk.

      Para comenzar, debemos instalar el agente de Checkmk. Los paquetes para todas las distribuciones principales, incluyendo Ubuntu, están disponibles directamente desde la interfaz web. Abra la página Monitoring Agents desde el menú WATO – Configuration a la izquierda. Verá las descargas de agente disponibles con los paquetes más populares bajo la primera sección, etiquetada como Packaged agents.

      Lista de agentes de monitorización empaquetados disponibles

      El paquete check-mk-agent_1.6.0p8-18_all.ded es el adecuado para las distribuciones basadas en Debian, incluyendo Ubuntu. Copie el enlace de descarga para ese paquete desde el navegador web y utilice esa dirección para descargar el paquete.

      • wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

      Tras su descarga, instale el paquete:

      • apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

      Ahora, verifique que el agente se ha instalado correctamente:

      El comando generará un texto muy largo que parece un texto sin sentido, pero combina toda la información vital sobre el sistema en un solo lugar.

      Output

      <<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>

      Checkmk utiliza el resultado de este comando para recopilar datos de esto desde los hosts monitorizados. Ahora, restringiremos el acceso a los datos de monitorización usando xinetd.

      Restringir el acceso a los datos de monitorización utilizando xinetd

      Por defecto, los datos de check_mk_agent se presentan usando xinetd, un mecanismo que genera datos sobre un cierto puerto de red tras acceder a él. Esto significa que podemos acceder a chek_mk_agent usando telnet al puerto 6556 (el puerto predeterminado para Checkmk) desde cualquier otro equipo en Internet a menos que la configuración de nuestro firewall no lo permita.

      No es una buena política de seguridad publicar información vital sobre los servidores a nadie en Internet. Solo deberíamos permitir a los hosts que ejecuten Checkmk y estén bajo supervisión acceder a estos datos, de forma que solo nuestro sistema de monitorización pueda recopilarlos.

      Si siguió el tutorial de configuración inicial del servidor, incluyendo los pasos sobre cómo configurar un firewall, el acceso al agente Checkmk está bloqueado por defecto. Sin embargo, es una buena práctica aplicar estas restricciones de acceso directamente en la configuración del servicio, y no depender únicamente de un firewall para su protección.

      Para restringir el acceso a los datos del agente, tenemos que editar el archivo de configuración en /etc/xinetd.d/check_mk. Abra el archivo de configuración en su editor favorito. Para utilizar nano, escriba:

      • sudo nano /etc/xinetd.d/check_mk

      Localice esta sección:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      El ajuste only_from se encarga de restringir el acceso a ciertas direcciones IP. Debido a que ahora estamos trabajando en monitorizar el mismo servidor sobre el que Checkmk se está ejecutando, está bien permitir que localhost se conecte. Elimine y actualice el ajuste de configuración a:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = 127.0.0.1
      . . .
      

      Guarde el archivo y ciérrelo.

      El daemon xinetd debe reiniciarse para que los cambios surtan efecto. Hágalo ahora:

      • sudo systemctl restart xinetd

      Ahora, nuestro agente está en funcionamiento y restringido para aceptar solo las conexiones locales. Podemos proceder a configurar la monitorización para ese host usando Checkmk.

      Configurar el host en la interfaz web de Checkmk

      Primero, para añadir un nuevo host a monitorizar tenemos que ir al menú Hosts en el menú WATO – Configuration a la izquierda. Desde aquí, haga clic en Create new host. Se nos solicitará cierta información sobre el host.

      Creación de un nuevo host en Checkmk

      El Hostname es el nombre familiar que Checkmk usará para la monitorización. Puede ser un nombre de dominio completamente cualificado, pero no es necesario. En este ejemplo, llamaremos al host monitoring, igual que el nombre de la instancia Checkmk. Debido a que monitoring no se resuelve a nuestra dirección IP, también debemos proporcionar la dirección IP de nuestro servidor. Y ya que estamos monitorizando el host local, la IP será simplemente 127.0.0.1. Seleccione la casilla IPv4 Address para habilitar la entrada manual de la IP e introduzca el valor en el campo de texto.

      La configuración predeterminada de la sección Data Sources depende del agente Checkmk para proporcionar los datos de monitorización, lo que está bien. El ajuste Networking Segment se usa para indicar los hosts en las redes remotas, que se caracterizan por una mayor latencia esperada, lo cual no es una señal de mal funcionamiento. Ya que este es un host local, el ajuste predeterminado también está bien.

      Para guardar el host y configurar qué servicios se monitorizarán, haga clic en el botón Save & go to services.

      Lista de servicios disponibles para monitorizar

      Checkmk realizará un inventario automático. Eso significa que recopilará el resultado del agente y lo descifrará para saber qué tipos de servicios puede monitorizar. Todos los servicios disponibles para la monitorización estarán en la lista, incluyendo carga de CPU, uso de memoria y espacio libre en los discos.

      Para habilitar la monitorización de todos los servicios descubiertos, debemos hacer clic en el botón Monitor bajo la sección Undecided services (currently not monitored). Esto actualizará la página, pero ahora todos los servicios se listarán bajo la sección Monitored services, informándonos de que están siendo monitorizados.

      Igual que cuando cambiamos nuestra contraseña de usuario, estos nuevos cambios deben guardarse y activarse antes de que estén activos. Pulse el botón 2 changes y acepte lo cambios usando el botón Activate affected. Tras esto, la monitorización del host estará lista.

      Ahora está listo para trabajar con los datos de su servidor. Eche un vistazo al panel de control principal utilizando el elemento de menú Overview/Main Overview (Información/Información principal) a la izquierda.

      Trabajar con los datos de la monitorización

      Ahora, vamos a ver el panel de control principal usando el menú Overview/Main Overview a la izquierda:

      Panel de control de la monitorización con todos los servicios en buen estado

      La esfera de la Tierra está completamente verde y la tabla dice que un host está activo sin problemas. Podemos ver la lista completa de hosts, que ahora consta de un único host, en la vista Hosts/All hosts (usando el menú de la izquierda).

      Lista de los hosts con todos los servicios en buen estado

      Ahí veremos cuántos servicios están en buen estado (en verde), cuántos están fallando y cuántos deben comprobarse aún. Tras hacer clic en el nombre del host, podremos ver la lista de todos los servicios con sus estados completos y sus Perf-O-Meters. El Perf-O-Meter muestra el rendimiento de un único servicio en relación con lo que Checkmk considera que es un buen estado.

      Detalles del estado de un servicio de host

      Todos los servicios que devuelven datos que pueden ponerse en un gráfico mostrarán un icono de gráfico junto a su nombre. Podemos utilizar ese ícono para obtener acceso a los gráficos asociados con el servicio. Ya que la monitorización del host es nueva, los gráficos no tienen casi nada, pero, tras algún tiempo, los gráficos proporcionarán información valiosa sobre cómo cambia el rendimiento de nuestro servicio a lo largo del tiempo.

      Gráficos que representan la carga en la CPU del servidor

      Cuando cualquiera de estos servicios falle o se recupere, la información se mostrará en el panel de control. Para los servicios que fallan, se mostrará un error en rojo, y el problema también estará visible en el gráfico de la Tierra.

      Panel de control con un host con problemas

      Tras la recuperación, todo se mostrarán en verde, lo que indica un buen funcionamiento, pero el registro de eventos de la derecha contendrá información sobre fallos anteriores.

      Panel de control con un host recuperado tras presentar problemas

      Ahora que hemos explorado el panel de control, vamos a añadir un segundo host a nuestra instancia de monitorización.

      Paso 6: Monitorizar un segundo host CentOS

      La monitorización es realmente útil cuando tiene varios hosts. Ahora añadiremos un segundo servidor a nuestra instancia Checkmk, esta vez ejecutando CentOS 7.

      Al igual que con nuestro servidor Ubuntu, es necesario instalar el agente Checkmk para recopilar datos de monitorización en CentOS. Esta vez, sin embargo, necesitaremos un paquete rpm desde la página Monitoring Agentes en la interfaz web, llamado check-mk-agent-1.6.0p8-1.noarch.rpm.

      Primero, sin embargo, debemos instalar xinetd, que por defecto no está disponible en la instalación CentOS. Xinetd, como recordará, es un daemon responsable de poner a disposición sobre la red los datos de monitorización proporcionados por check_mk_agent.

      En su servidor CentOS, primero instale xinetd:

      • sudo yum install -y xinetd

      Ahora podemos descargar e instalar el paquete del agente de monitorización necesario para nuestro servidor CentOS:

      • sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

      Igual que antes, podemos verificar que el agente funciona correctamente ejecutando check_mk_agent:

      El resultado será similar al del servidor Ubuntu. Ahora, restringiremos el acceso al agente.

      Restringir el acceso

      Esta vez no monitorizaremos un host local, de forma que xinetd debe permitir las conexiones que provienen del servidor Ubuntu, donde Checkmk está instalado, para recopilar los datos. Para permitir esto, primero abra su archivo de configuración:

      • sudo vi /etc/xinetd.d/check_mk

      Aquí verá la configuración para su servicio check_mk, especificando cómo se puede acceder al agente Checkmk a través del daemon xinetd. Busque las siguientes dos líneas comentadas:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Ahora, elimine la segunda línea y sustituya las direcciones IP locales con your_ubuntu_server_ip:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = your_ubuntu_server_ip
      . . .
      

      Guarde y salga del archivo escribiendo :x y luego ENTER. Reinicie el servicio xinetd usando:

      • sudo systemctl restart xinetd

      Ahora podemos configurar Checkmk para que monitorice nuestro host CentOS 7.

      Configurar un nuevo host en Checkmk

      Para añadir hosts adicionales a Checkmk, usamos el menú Hosts como hicimos antes. Esta vez, llamaremos al host centos, configuraremos su dirección IP, y seleccionaremos WAN (high-latency) bajo la casilla de selección Networking Segment, ya que el host está en otra red. Si omitimos esto y lo dejamos como local, Checkmk pronto nos alertará de que el host está desconectado, ya que esperaría que respondiese a las consultas del agente mucho más rápido de lo que es posible por Internet.

      Crear la pantalla de configuración del segundo host

      Haga clic en Save & go to services, lo que mostrará los servicios disponibles para monitorizar sobre el servidor CentOS. La lista será muy similar a la del primer host. De nuevo, esta vez debemos hacer clic en Monitor y, luego, activar los cambios utilizando el botón naranja en la esquina superior izquierda.

      Tras activar los cambios, podemos verificar que el host está siendo monitorizado en la página All hosts. Vaya allí. Ahora estarán visibles dos hosts, monitoring y centos.

      Lista de hosts con dos hosts monitorizados

      Ahora está monitorizando un servidor Ubuntu y un servidor CentOS con Checkmk. Es posible monitorizar aún más hosts. De hecho, no hay un límite aparte del rendimiento del servidor, que no debería ser un problema hasta que su número de hosts sea de cientos. Además, el procedimiento es el mismo para cualquier otro host. Los agentes Checkmk en los paquetes deb y rpm funcionan en Ubuntu, CentOS y en la mayoría de las otras distribuciones Linux.

      Conclusión

      En esta guía hemos configurado dos servidores con dos distribuciones Linux diferentes: Ubuntu y CentOS. A continuación, instalamos y configuramos Checkmk para monitorizar ambos servidores, y exploramos la potente interfaz web de Checkmk.

      Checkmk permite configurar fácilmente un sistema de monitorización completo y versátil, que empaqueta todo el difícil trabajo de la configuración manual en una interfaz web fácil de usar con múltiples opciones y funciones. Con estas herramientas es posible monitorizar múltiples hosts; configurar correo electrónico, SMS o notificaciones push cuando se produzcan problemas; configurar comprobaciones adicionales para más servicios; monitorizar la accesibilidad y el rendimiento, etcétera.

      Para obtener más información sobre Checkmk, asegúrese de visitar la documentación oficial.



      Source link

      Comment surveiller la santé des serveurs avec Checkmk sur Ubuntu 18.04


      L’auteur a choisi le Open Internet/Free Speech Fund pour recevoir un don dans le cadre du programme Write for Donations.

      Introduction

      En tant qu’administrateur de systèmes, il est préférable de connaître l’état de votre infrastructure et vos services. Idéalement, vous voulez remarquer les disques défaillants ou les temps d’arrêt des applications avant que vos utilisateurs ne le fassent. Des outils de surveillance comme Checkmk peuvent aider les administrateurs à détecter ces problèmes et à maintenir les serveurs en bon état.

      En général, les logiciels de surveillance peuvent suivre l’état du matériel, du temps de fonctionnement et des services de vos serveurs, et ils peuvent émettre des alertes en cas de problème. Dans un scénario très simple, un système de surveillance vous avertira si un service tombe en panne. Dans un scénario plus complexe, les notifications interviendraient peu après l’apparition de signes suspects, tels qu’une utilisation accrue de la mémoire ou un nombre anormal de connexions TCP.

      Il existe de nombreuses solutions de surveillance offrant divers degrés de complexité et de fonctionnalités, tant gratuites que commerciales. Dans de nombreux cas, l’installation, la configuration et la gestion de ces outils sont difficiles et prennent beaucoup de temps.

      Checkmk, cependant, est une solution de surveillance qui est à la fois robuste et plus simple à installer. Il s’agit d’un ensemble de logiciels autonomes qui combine Nagios (un service d’alerte populaire et open source) avec des modules complémentaires de collecte, de surveillance et de représentation graphique des données. Il est également fourni avec l’interface web de Checkmk – un outil complet qui répond à de nombreuses lacunes de Nagios.  Il offre un tableau de bord convivial, un système de notification complet et un référentiel d’agents de surveillance faciles à installer pour de nombreuses distributions Linux. Sans l’interface web de Checkmk, nous devrions utiliser différentes vues pour différentes tâches et il ne serait pas possible de configurer toutes ces fonctionnalités sans avoir recours à des modifications importantes des fichiers.

      Dans ce guide, nous allons configurer Checkmk sur un serveur Ubuntu 18.04 et nous allons surveiller deux hôtes distincts. Nous surveillerons le serveur Ubuntu lui-même ainsi qu’un serveur CentOS 7 séparé, mais nous pourrions utiliser la même approche pour ajouter un nombre quelconque d’hôtes supplémentaires à notre configuration de surveillance.

      Conditions préalables

      Étape 1 – Installer Checkmk sur Ubuntu

      Pour pouvoir utiliser notre site de surveillance, nous devons d’abord installer Checkmk sur le serveur Ubuntu. Cela nous donnera tous les outils dont nous avons besoin. Checkmk fournit des fichiers officiels de paquets Ubuntu, prêts à l’emploi que nous pouvons utiliser pour installer le paquet de logiciels.

      Tout d’abord, mettons à jour la liste des paquets afin d’avoir la version la plus récente des listes du référentiel :

      Pour parcourir les paquets, nous pouvons aller sur le site de la liste des paquets. Ubuntu 18.04, entre autres, peut être choisi dans le menu de la page.

      Maintenant, téléchargez le paquet :

      • wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Ensuite, installez le paquet nouvellement téléchargé :

      • sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Cette commande installera le paquet Checkmk ainsi que toutes les dépendances nécessaires, y compris le serveur web Apache qui est utilisé pour fournir un accès web à l’interface de surveillance.

      Une fois l’installation terminée, nous pouvons maintenant accéder à la commande omd. Essayez-la :

      Cette commande omd donnera la sortie suivante :

      Output

      Usage (called as root): omd help Show general help . . . General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, --help show available options of COMMAND

      La commande omd peut gérer toutes les instances de Checkmk sur notre serveur. Elle peut démarrer et arrêter tous les services de surveillance en même temps, et nous l’utiliserons pour créer notre instance Checkmk. Cependant, nous devons d’abord mettre à jour les paramètres de notre pare-feu afin d’autoriser l’accès extérieur aux ports web par défaut.

      Étape 2 – Ajuster les paramètres du pare-feu

      Avant de pouvoir travailler avec Checkmk, il est nécessaire d’autoriser un accès extérieur au serveur web dans la configuration du pare-feu. En supposant que vous avez suivi les étapes de configuration du pare-feu citées dans les conditions préalables, vous disposerez d’un pare-feu UFW configuré pour restreindre l’accès à votre serveur.

      Au cours de l’installation, Apache s’enregistre lui-même auprès d’UFW afin de fournir un moyen facile d’activer ou de désactiver l’accès à Apache par le biais du pare-feu.

      Pour autoriser l’accès à Apache, utilisez la commande suivante :

      Vérifiez maintenant les changements :

      Vous verrez qu’Apache est listé parmi les services autorisés :

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Cela nous permettra d’accéder à l’interface web de Checkmk.

      Dans l’étape suivante, nous allons créer la première instance de surveillance Checkmk.

      Étape 3 – Création d’une instance de surveillance Checkmk

      Checkmk utilise le concept d’instances ou d’installations individuelles pour isoler plusieurs copies de Checkmk sur un serveur. Dans la plupart des cas, une seule copie de Checkmk suffit et c’est ainsi que nous allons configurer le logiciel dans ce guide.

      Nous devons d’abord donner un nom à notre nouvelle instance, et nous utiliserons monitoring tout au long de ce texte. Pour créer l’instance, tapez :

      • sudo omd create monitoring

      L’outil omd configurera tout automatiquement. La sortie de la commande ressemblera à ce qui suit :

      Output

      Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre. The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/ The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.) Please do a su - monitoring for administration of this site.

      Dans cette sortie, l’adresse URL, le nom d’utilisateur par défaut et le mot de passe pour accéder à notre interface de surveillance sont mis en évidence. L’instance est maintenant créée, mais elle doit encore être démarrée. Pour démarrer l’instance, tapez :

      • sudo omd start monitoring

      Tous les outils et services nécessaires seront maintenant démarrés en même temps. À la fin, nous verrons une sortie vérifiant que tous nos services ont démarré avec succès :

      Output

      Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK

      L’instance est opérationnelle.

      Pour accéder à l’instance Checkmk, ouvrez http://your_ubuntu_server_ip/monitoring/ dans le navigateur web. Un mot de passe vous sera demandé. Utilisez les informations d’identification par défaut imprimées au préalable à l’écran ; nous modifierons ces valeurs par défaut ultérieurement.

      L’écran Checkmk s’ouvre avec un tableau de bord, qui présente tous nos services et les statuts de nos serveurs sous forme de listes, et il utilise des graphiques pratiques ressemblant à la Terre. Immédiatement après l’installation, ces graphiques sont vides, mais nous allons bientôt faire en sorte qu’ils affichent les états de nos services et de nos systèmes.

      Tableau de bord Checkmk vierge

      Dans la prochaine étape, nous modifierons le mot de passe par défaut pour sécuriser le site à l’aide de cette interface.

      Étape 4 – Changer votre mot de passe administratif

      Au cours de l’installation, Checkmk génère un mot de passe aléatoire pour l’utilisateur administratif de cmkadmin. Ce mot de passe est censé être modifié lors de l’installation, et, par conséquent, il est souvent court et peu sûr. Nous pouvons modifier cela via l’interface web.

      Tout d’abord, ouvrez la page USERS depuis le menu WATO – Configuration à gauche. La liste affichera tous les utilisateurs qui ont actuellement accès au site Checkmk. Dans le cas d’une nouvelle installation, la liste ne comprendra que deux utilisateurs. Le premier, automation, est destiné à être utilisé avec des outils automatisés ; le second est l’utilisateur cmkadmin que nous avons utilisé pour nous connecter au site.

      Liste des utilisateurs Checkmk

      Cliquez sur l’icône représentant un crayon à côté de l’utilisateur cmkadmin pour modifier ses coordonnées, y compris le mot de passe.

      Formulaire d'édition pour l'utilisateur Checkmk admin

      Mettez à jour le mot de passe, ajoutez un courriel admin et effectuez toute autre modification désirée.

      Après avoir enregistré les modifications, il nous sera demandé de nous connecter à nouveau en utilisant nos nouveaux identifiants. Faites-le et revenez au tableau de bord, où il y a encore une chose que nous devons faire pour appliquer pleinement notre nouvelle configuration.

      Ouvrez à nouveau la page Users dans le menu WATO – Configuration sur la gauche. Le bouton orange dans le coin supérieur gauche intitulé 1 Change nous indique que nous avons apporté quelques modifications à la configuration de Checkmk, et que nous devons les enregistrer et les activer. Cela se produira chaque fois que nous modifierons la configuration de notre système de surveillance, et pas seulement après avoir modifié les informations d’identification d’un utilisateur. Pour enregistrer et activer les changements en attente, nous devons cliquer sur ce bouton et accepter d’activer les changements énumérés à l’aide de l’option Activate affected​​ sur l’écran suivant.

      Liste des utilisateurs de Checkmk après modificationsÉcran de confirmation de l'activation des changements de configurationChangements de configuration activés avec succès

      Après l’activation des changements, les données du nouvel utilisateur sont écrites dans les fichiers de configuration et seront utilisées par tous les composants du système. Checkmk se charge automatiquement de notifier les différents composants du système de surveillance, de les recharger si nécessaire et de gérer tous les fichiers de configuration nécessaires.

      L’installation Checkmk est maintenant prête à être utilisée. Dans l’étape suivante, nous ajouterons le premier hôte à notre système de surveillance.

      Étape 5 – Surveillance du premier hôte

      Nous sommes maintenant prêts à surveiller le premier hôte. Pour ce faire, nous allons d’abord installer check-mk-agent sur le serveur Ubuntu. Ensuite, nous limiterons l’accès aux données de surveillance en utilisant xinetd.

      Les composants installés avec Checkmk sont responsables de la réception, du stockage et de la présentation des informations de surveillance. Ils ne fournissent pas les informations elles-mêmes.

      Pour recueillir les données réelles, nous utiliserons Checkmk agent. Conçu spécifiquement pour ce travail, l’agent Checkmk est capable de surveiller tous les composants vitaux du système en une seule fois et de renvoyer ces informations à l’instance Checkmk.

      Installer l’agent

      Le premier hôte que nous surveillerons sera your_ubuntu_server—le serveur sur lequel nous avons installé l’instance Checkmk elle-même.

      Pour commencer, nous devons installer l’agent Checkmk. Les paquets de toutes les distributions principales, y compris Ubuntu, sont disponibles directement à partir de l’interface web. Ouvrez la page Monitoring Agents depuis le menu WATO – Configuration à gauche. Vous verrez les téléchargements d’agents disponibles avec les paquets les plus populaires sous la première section intitulée Packaged agents.

      Liste des agents de surveillance packagés disponibles

      Le paquet check-mk-agent_1.6.0p8-1_all.deb est celui adapté aux distributions basées sur Debian, y compris Ubuntu. Copiez le lien de téléchargement de ce paquet depuis le navigateur web et utilisez cette adresse pour télécharger le paquet.

      • wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

      Après le téléchargement, installez le paquet :

      • apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

      Vérifiez maintenant que l’agent a été installé avec succès :

      La commande produira un texte très long qui ressemble à du charabia mais qui regroupe toutes les informations vitales sur le système en un seul endroit.

      Output

      <<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>

      C’est la sortie de cette commande que Checkmk utilise pour recueillir les données d’état des hôtes surveillés. Maintenant, nous allons restreindre l’accès aux données de surveillance avec xinetd.

      Restreindre l’accès aux données de surveillance à l’aide de xinetd

      Par défaut, les données de check_mk_agent sont servies par xinetd, un mécanisme qui produit des données sur un certain port de réseau lors de l’accès. Cela signifie que nous pouvons accéder au check_mk_agent en utilisant telnet sur le port 6556 (le port par défaut pour Checkmk) depuis n’importe quel autre ordinateur sur Internet, à moins que la configuration de notre pare-feu ne le refuse.

      Ce n’est pas une bonne politique de sécurité que de publier à quiconque des informations vitales concernant les serveurs sur l’internet. Nous devons autoriser uniquement les hôtes qui exécutent Checkmk (et qui sont sous notre supervision) à accéder à ces données, de sorte que seul notre système de surveillance puisse les collecter.

      Si vous avez suivi le tutoriel de configuration initiale du serveur, y compris les étapes relatives à la mise en place d’un pare-feu, l’accès à l’agent Checkmk est bloqué par défaut. Il est toutefois recommandé d’appliquer ces restrictions d’accès directement dans la configuration du service et de ne pas compter uniquement sur le pare-feu pour le protéger.

      Pour restreindre l’accès aux données de l’agent, nous devons éditer le fichier de configuration à l’adresse /etc/xinetd.d/check_mk. Ouvrez le fichier de configuration dans votre éditeur préféré. Pour utiliser nano, tapez :

      • sudo nano /etc/xinetd.d/check_mk

      Localisez cette section :

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Le paramètre only_from est responsable de la restriction de l’accès à certaines adresses IP. Comme nous travaillons maintenant à la surveillance du même serveur que celui sur lequel tourne Checkmk, il est normal de n’autoriser que localhost à se connecter. Décommentez et mettez à jour le paramètre de configuration :

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = 127.0.0.1
      . . .
      

      Enregistrez et quittez le fichier.

      Le démon xinetd doit être redémarré pour que les changements soient pris en compte. Faites-le maintenant :

      • sudo systemctl restart xinetd

      Notre agent est maintenant opérationnel et est limité pour n’accepter que les connexions locales. Nous pouvons procéder à la configuration de la surveillance pour cet hôte en utilisant Checkmk.

      Configurer l’hôte dans l’interface web Checkmk

      Tout d’abord, pour ajouter un nouvel hôte à surveiller, nous devons nous rendre dans le menu Hosts du menu WATO – Configuration (à gauche). À partir d’ici, cliquez sur Create new host. Nous serons invités à donner quelques informations sur l’hôte.

      Créer un nouvel hôte dans Checkmk

      Le Hostname est le nom familier que Checkmk utilisera pour la surveillance. Il peut s’agir d’un nom de domaine pleinement qualifié, mais ce n’est pas nécessaire. Dans cet exemple, nous nommerons l’hôte monitoring, tout comme le nom de l’instance de Checkmk elle-même. Comme monitoring ne peut pas être résolu à notre adresse IP, nous devons également fournir l’adresse IP de notre serveur. Et comme nous surveillons l’hôte local, l’IP sera simplement 127.0.0.1. Cochez la case IPv4 Adresse pour activer la saisie manuelle de l’adresse IP et entrez la valeur dans le champ de texte.

      La configuration par défaut de la section Data Sources repose sur Checkmk pour fournir des données de surveillance, ce qui est bien. Le paramètre Networking Segment​​​ est utilisé pour désigner les hôtes sur les réseaux distants, qui se caractérisent par une latence attendue plus élevée qui ne constitue pas un signe de dysfonctionnement. Comme il s’agit d’un hôte local, le paramètre par défaut est également correct.

      Pour enregistrer l’hôte et configurer les services à surveiller, cliquez sur le bouton Save & go to services.

      Liste des services disponibles à surveiller

      Checkmk fera un inventaire automatique. Cela signifie qu’il recueillera les informations fournies par l’agent et les déchiffrera pour savoir quels types de services il peut contrôler. Tous les services disponibles pour la surveillance figureront sur la liste, y compris la charge du processeur, l’utilisation de la mémoire et l’espace libre sur les disques.

      Pour permettre la surveillance de tous les services découverts, nous devons cliquer sur le bouton Monitor sous la section Undecided services ( actuellement non surveillés). La page sera ainsi actualisée, mais tous les services seront désormais répertoriés sous la section Monitored services, nous informant qu’ils sont effectivement surveillés.

      Comme c’était le cas lors de la modification de notre mot de passe utilisateur, ces nouveaux changements doivent être enregistrés et activés avant d’être effectifs. Appuyez sur le bouton “2 changes” et acceptez les changements en utilisant le bouton Activate affected. Après cela, la surveillance de l’hôte sera opérationnelle.

      Vous êtes maintenant prêt à travailler avec les données de votre serveur. Jetez un coup d’œil au tableau de bord principal en utilisant l’élément de menu Overview/Main Overview sur la gauche.

      Travailler avec les données de surveillance

      Examinons maintenant le tableau de bord principal à l’aide de l’élément de menu Overview/Main Overview sur la gauche :

      Tableau de bord de surveillance avec tous les services en état de marche

      La sphère terrestre est maintenant entièrement verte et le tableau indique qu’un hôte est en place sans aucun problème. Nous pouvons voir la liste complète des hôtes, qui se compose maintenant d’un seul hôte, dans la vue Hosts/All hosts (en utilisant le menu à gauche).

      Liste des hôtes avec tous les services en état de marche

      Nous y verrons combien de services sont en bonne santé (indiqués en vert), combien sont défaillants et combien sont en attente de contrôle. Après avoir cliqué sur le nom d’hôte, nous pourrons voir la liste de tous les services avec leur statut complet et leur Perf-O-Meters. Le Perf-O-Mètre montre la performance d’un seul service par rapport à ce que Checkmk considère comme une bonne santé.

      Détails sur l'état d'un service hôte

      Tous les services qui renvoient des données graphiques affichent une icône graphique à côté de leur nom. Nous pouvons utiliser cette icône pour accéder aux graphiques associés au service. Comme la surveillance de l’hôte est récente, il n’y a presque rien sur les graphiques – mais après un certain temps, les graphiques fourniront des informations précieuses sur l’évolution des performances de notre service dans le temps.

      Graphiques représentant la charge du CPU sur le serveur

      En cas de défaillance ou de rétablissement de l’un de ces services, les informations seront affichées sur le tableau de bord. Pour les services défaillants, une erreur rouge sera affichée, et le problème sera également visible sur le graphique de la Terre.

      Tableau de bord avec un hôte ayant des problèmes

      Après la reprise, tout sera indiqué en vert comme fonctionnant correctement, mais le journal des événements sur la droite contiendra des informations sur les défaillances passées.

      Tableau de bord avec un hôte restauré suite à des problèmes

      Maintenant que nous avons un peu exploré le tableau de bord, ajoutons un second hôte à notre instance de surveillance.

      Étape 6 – Surveillance d’un deuxième hôte CentOS

      La surveillance devient vraiment utile lorsque vous avez plusieurs hôtes. Nous allons maintenant ajouter un deuxième serveur à notre instance Checkmk qui, cette fois-citourne sous CentOS 7.

      Comme pour notre serveur Ubuntu, l’installation de l’agent Checkmk est nécessaire pour recueillir les données de surveillance sur CentOS. Cette fois, cependant, nous aurons besoin d’un paquet rpm de la page Monitoring Agents de l’interface web, appelé check-mk-agent-1.6.0p8-1.noarch.rpm.

      Mais nous devons d’abord installer xinetd, qui par défaut n’est pas disponible sur l’installation de CentOS. Xinetd, rappelons-le, est un démon qui est chargé de rendre disponibles sur le réseau les données de surveillance fournies par check_mk_agent.

      Sur votre serveur CentOS, installez d’abord xinetd :

      • sudo yum install -y xinetd

      Nous pouvons maintenant télécharger et installer le paquet de l’agent de surveillance nécessaire à notre serveur CentOS :

      • sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

      Tout comme précédemment, nous pouvons vérifier que l’agent fonctionne correctement en exécutant check_mk_agent :

      La sortie sera semblable à celle du serveur Ubuntu. Nous allons maintenant restreindre l’accès à l’agent.

      Restriction de l’accès

      Cette fois, nous ne surveillerons pas un hôte local, donc xinetd doit permettre les connexions provenant du serveur Ubuntu, où Checkmk est installé, pour recueillir les données. Pour cela, ouvrez d’abord votre fichier de configuration :

      • sudo vi /etc/xinetd.d/check_mk

      Vous y verrez la configuration de votre service check_mk, en précisant comment l’agent Checkmk peut être accessible via le démon xinetd. Trouvez les deux lignes commentées suivantes :

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Décommentez maintenant la deuxième ligne et remplacez les adresses IP locales par your_ubuntu_server_ip:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = your_ubuntu_server_ip
      . . .
      

      Enregistrez et quittez le fichier en tapant :x et ensuite ENTER. Redémarrez le service xinetd en utilisant :

      • sudo systemctl restart xinetd

      Nous pouvons maintenant procéder à la configuration de Checkmk pour surveiller notre hôte CentOS 7.

      Configurer le nouvel hôte dans Checkmk

      Pour ajouter des hôtes supplémentaires à Checkmk, nous utilisons le menu Hosts comme auparavant. Cette fois-ci, nous allons nommer l’hôte centos, configurer son adresse IP et choisir WAN (high-latency) sous la case Networking Segment, puisque l’hôte est sur un autre réseau. Si nous laissons cette option en local, Checkmk nous avertira rapidement que l’hôte est hors service, car il s’attend à ce qu’il réponde aux requêtes des agents beaucoup plus rapidement qu’il n’est possible sur Internet.

      Créer l'écran de configuration d'un deuxième hôte

      Cliquez sur “Save & go to services”, qui affichera les services disponibles pour la surveillance sur le serveur CentOS. La liste sera très similaire à celle du premier hôte. Là encore, nous devons également cliquer sur Monitor et ensuite activer les changements à l’aide du bouton orange situé dans le coin supérieur gauche.

      Après l’activation des changements, nous pouvons vérifier que l’hôte est surveillé sur la page All hosts. Allez sur cette page. Deux hôtes, monitoring et centos, seront maintenant visibles.

      Liste des hôtes avec deux hôtes surveillés

      Vous surveillez maintenant un serveur Ubuntu et un serveur CentOS avec Checkmk. Il est possible de surveiller encore plus d’hôtes. En fait, il n’y a pas de limite supérieure autre que la performance du serveur, ce qui ne devrait pas poser de problème tant que vos hôtes ne se comptent pas par centaines. En outre, la procédure est la même pour tout autre hôte. Les agents Checkmk dans les paquets deb et rpm fonctionnent sur Ubuntu, CentOS et la majorité des autres distributions Linux.

      Conclusion

      Dans ce guide, nous avons configuré deux serveurs avec deux distributions Linux différentes : Ubuntu et CentOS. Nous avons ensuite installé et configuré Checkmk pour surveiller les deux serveurs, et nous avons exploré la puissante interface web de Checkmk.

      Checkmk permet de mettre en place facilement un système de surveillance complet et polyvalent, qui regroupe tout le travail de configuration manuelle dans une interface web facile à utiliser, pleine d’options et de fonctionnalités. Avec ces outils, il est possible de surveiller plusieurs hôtes, de configurer des notifications par courriel, SMS ou push en cas de problème, de mettre en place des contrôles supplémentaires pour plus de services, de surveiller l’accessibilité et les performances, etc.

      Pour en savoir plus sur Checkmk, n’oubliez pas de consulter la documentation officielle.



      Source link

      Мониторинг состояния сервера с помощью Checkmk на Ubuntu 18.04


      Автор выбрал фонд Open Internet/Free Speech для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Хороший системный администратор должен знать текущее состояние инфраструктуры и служб. В идеальном случае желательно замечать неисправность дисков и простой приложений раньше пользователей. Такие инструменты мониторинга, как Checkmk, помогают администраторам выявлять подобные проблемы и поддерживать серверы в работоспособном состоянии.

      Обычно программное обеспечение для мониторинга позволяет отслеживать аппаратное обеспечение, время работы серверов и состояние служб, а также выдает предупреждения, если что-то идет не так. В самом простом случае система мониторинга будет предупреждать о нарушении работы той или иной службы. Более устойчивая система будет выдавать уведомления сразу при появлении подозрительных признаков, например превышения использования памяти или необычное число TCP-подключений.

      Существует множество доступных решений для мониторинга. Они отличаются уровнем сложности, набором функций, а также могут быть бесплатными и платными. В большинстве случаев установка, конфигурация этих инструментов и управление ими вызывает трудности и занимает много времени.

      Однако Checkmk — это решение для мониторинга, которое является надежным и в то же время простым в установке. Это отдельный пакет программного обеспечения, который включает Nagios (популярную систему оповещения с открытым исходным кодом) и дополнительные средства сбора, мониторинга и создания графиков данных. Также есть веб-интерфейс Checkmk — универсальный инструмент для устранения большинства недостатков Nagios. Здесь используется удобная информационная панель, полноценная система уведомлений и хранилище простых в установке агентов мониторинга большинства дистрибутивов Linux. Без веб-интерфейса Checkmk нам бы пришлось использовать разные представления для разных задач и прибегать к сложным файловым модификациям для конфигурации всех этих функций.

      В этом обучающем руководстве мы настроим Checkmk на сервере Ubuntu 18.04 и выполним мониторинг двух отдельных хостов. Мы будем отслеживать работу сервера Ubuntu, а также отдельный сервер CentOS 7, но таким же способом можно добавлять любое количество дополнительных хостов в нашу конфигурацию мониторинга.

      Предварительные требования

      Шаг 1 — Установка Checkmk на Ubuntu

      Для использования нашего сайта для мониторинга сначала необходимо установить Checkmk на сервер Ubuntu. Это позволит нам использовать все необходимые инструменты. Checkmk предоставляет официальные готовые файлы пакета Ubuntu, которые можно использовать для установки пакета программного обеспечения.

      Вначале обновим список пакетов, чтобы получить последнюю версию списка репозитория:

      Для просмотра пакетов можно перейти на сайт списка пакетов. Среди прочих можно выбрать Ubuntu 18.04 в меню страницы.

      Теперь загрузите пакет:

      • wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Затем установите только что загруженный пакет:

      • sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Эта команда установит пакет Checkmk со всеми необходимыми зависимостями, включая веб-сервер Apache, который используется для веб-доступа к интерфейсу мониторинга.

      По завершении установки теперь можно получить доступ к команде omd. Попробуйте сделать следующее:

      Эта команда omd выведет следующее:

      Output

      Usage (called as root): omd help Show general help . . . General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, --help show available options of COMMAND

      Команда omd может управлять всеми экземплярами Checkmk на нашем сервере. Она может запускать и останавливать все службы мониторинга одновременно, и мы можем использовать ее для создания нашего экземпляра Checkmk. Однако сначала нам нужно обновить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию.

      Шаг 2 — Изменение настроек брандмауэра

      Перед тем как мы сможем работать с Checkmk, необходимо разрешить внешний доступ к веб-серверу в настройках брандмауэра. Если вы выполнили действия по конфигурации, указанные в предварительных условиях, то настройки брандмауэра UFW запрещают доступ к вашему серверу.

      Во время установки Apache регистрируется в UFW, чтобы обеспечить удобный способ включения или отключения доступа к Apache через брандмауэр.

      Чтобы предоставить доступ к Apache, воспользуйтесь следующей командой:

      Теперь проверьте изменения:

      Вы увидите, что Apache указан в списке разрешенных служб:

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Это позволит нам получить доступ к веб-интерфейсу Checkmk.

      В следующем шаге мы создадим первый экземпляр мониторинга Checkmk.

      Шаг 3 — Создание экземпляра мониторинга Checkmk

      Checkmk использует концепцию экземпляров, или индивидуальных установок, для изоляции многочисленных копий Checkmk на сервере. В большинстве случаев достаточно только одной копии Checkmk, и именно так мы будем настраивать программное обеспечение в данном руководстве.

      Сначала необходимо присвоить имя для нового экземпляра, и мы будем использовать monitoring далее по тексту. Для создания экземпляра введите:

      • sudo omd create monitoring

      Инструмент omd автоматически будет выполнять все настройки. Вывод команды должен выглядеть примерно следующим образом:

      Output

      Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre. The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/ The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.) Please do a su - monitoring for administration of this site.

      В этом выводе выделены адрес URL, имя пользователя по умолчанию и пароль для доступа к нашему интерфейсу для мониторинга. Теперь экземпляр создан, но требуется его запуск. Для запуска экземпляра введите:

      • sudo omd start monitoring

      Теперь все необходимые инструменты и службы будут запускаться одновременно. В конце мы увидим вывод, подтверждающий, что все наши службы запущены:

      Output

      Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK

      Экземпляр готов и запущен.

      Для доступа к экземпляру Checkmk откройте http://your_ubuntu_server_ip/monitoring/ в браузере. Вам будет предложено ввести пароль. Используйте учетные данные по умолчанию, напечатанные ранее на экране, позже мы их изменим.

      Экран Checkmk открывается на информационной панели, на которой отображаются статусы всех наших служб и серверов в виде списков, здесь используются удобные графики в виде земного шара. Сразу после установки они будут пустыми, но вскоре мы сделаем так, чтобы отображались статусы наших служб и систем.

      Пустая информационная панель Checkmk

      В следующем шаге мы изменим пароль по умолчанию, чтобы защитить сайт, использующий этот интерфейс.

      Шаг 4 — Изменение пароля администратора

      Во время установки Checkmk создает случайный пароль для пользователя-администратора cmkadmin. Этот пароль должен быть изменен после установки, так как часто он достаточно короткий и ненадежный. Его можно изменить с помощью веб-интерфейса.

      Сначала откройте страницу Users в меню WATO — Configuration слева. В списке отобразятся все пользователи, у которых сейчас есть доступ к сайту Checkmk. Сразу после установки в нем будет только два пользователя. Первый — automation — предназначен для использования с автоматизированными инструментами, второй — cmkadmin — пользователь для выполнения входа на сайт.

      Список пользователей Checkmk

      Нажмите на значок карандаша возле пользователя cmkadmin, чтобы изменить данные, включая пароль.

      Форма для редактирования пользователя-администратора Checkmk

      Здесь можно обновить пароль, добавить адрес электронной почты администратора и внести все необходимые изменения.

      После сохранения изменений вам будет предложено снова войти в систему с помощью новых учетных данных. Выполните это и вернитесь на информационную панель, где необходимо будет сделать еще одно действие, чтобы применить новую конфигурацию в полном объеме.

      Еще раз откройте страницу Users​​​ в меню WATO — Configuration​​​ слева. Кнопка оранжевого цвета в верхнем левом углу, отмеченная как 1 Change, говорит о том, что выполнены изменения конфигурации Checkmk, которые требуется сохранить и активировать. Это будет происходить при каждом изменении конфигурации нашей системы мониторинга, а не только после изменения учетных данных пользователя. Для сохранения и активации ожидающих изменений необходимо нажать на эту кнопку и дать согласие на активацию указанных изменений с помощью опции Activate affected​​ на следующем экране.

      Список пользователей Checkmk после выполнения измененийЭкран подтверждения активации изменений конфигурацииУспешная активация изменений конфигурации

      После активации изменений новые данные пользователя записываются в файлы конфигурации и будут использоваться всеми компонентами системы. Checkmk автоматически следит за уведомлениями отдельных компонентов системы мониторинга, перезагружает их при необходимости, а также управляет всеми необходимыми файлами конфигурации.

      Установка Checkmk теперь готова к использованию. В следующем шаге мы добавим первый хост в нашу систему мониторинга.

      Шаг 5 — Мониторинг первого хоста

      Теперь мы готовы к мониторингу первого хоста. Для этого сначала установим check-mk-agent на сервер Ubuntu. Затем мы ограничим доступ к данным мониторинга с помощью xinetd.

      Компоненты, установленные с помощью Checkmk, отвечают за получение, хранение и представление информации мониторинга. Они не предоставляют информацию как таковую.

      Для сбора фактических данных мы будем использовать агент Checkmk​​​. Специально разработанный агент Checkmk способен выполнять мониторинг всех важных компонентов системы одновременно и отправлять отчет с этой информацией обратно в экземпляр Checkmk.

      Установка агента

      Первый хост, который мы будем отслеживать, your_ubuntu_server, — это сервер, на котором мы установили непосредственно сам экземпляр Checkmk.

      Для начала необходимо установить агент Checkmk. Пакеты для всех основных дистрибутивов, включая Ubuntu, доступны прямо в веб-интерфейсе. Откройте страницу Monitoring Agents в меню WATO — Configuration слева. Вы увидите доступные для загрузки агенты с наиболее популярными пакетами в первом разделе, отмеченном Packaged agents​​​.

      Список доступных пакетов агентов для мониторинга

      Пакет check-mk-agent_1.6.0p8-1_all.deb предназначен для дистрибутивов на базе Debian, включая Ubuntu. Скопируйте ссылку загрузки для этого пакета из браузера и используйте этот адрес для загрузки пакета.

      • wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

      После загрузки установите пакет:

      • apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

      Теперь убедитесь в установке агента:

      Команда выведет очень длинный текст, который будет выглядеть бессмысленно, но будет содержать всю важную информацию о системе в одном месте.

      Output

      <<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>

      Именно вывод из этой команды использует Checkmk для сбора данных о статусе из отслеживаемых хостов. Теперь мы ограничим доступ к данным мониторинга с помощью xinetd.

      Ограничение доступа к данным мониторинга с помощью xinetd

      По умолчанию данные из check_mk_agent обрабатываются с помощью xinetd, механизма, который выводит данные в определенный сетевой порт после того, как их получит. Это значит, что мы можем получить доступ к check_mk_agent с помощью протокола telnet в порте 6556 (порт по умолчанию для Checkmk) из другого компьютера в Интернете, пока это не будет запрещено конфигурацией нашего брандмауэра.

      Размещать в общем доступе в Интернете важную информацию о серверах неправильно с точки зрения безопасности. Мы должны давать доступ к этим данным только тем хостам, которые обеспечивают работу Checkmk и находятся под наблюдением, чтобы только наша система мониторинга могла собирать их.

      Если вы выполнили указания обучающего руководства по начальной настройке сервера, включая действия по настройке брандмауэра, то доступ к агенту Checkmk заблокирован по умолчанию. Однако лучше всего устанавливать эти ограничения доступа непосредственно в настройках службы, а не полагаться на защиту брандмауэра.

      Для ограничения доступа к данным агента необходимо изменить файл конфигурации в /etc/xinetd.d/check_mk. Откройте файл конфигурации в предпочтительном редакторе. Для использования nano введите:

      • sudo nano /etc/xinetd.d/check_mk

      Найдите следующий раздел:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Настройка only_from отвечает за ограничение доступа к определенным IP-адресам. Поскольку мы сейчас работаем над мониторингом того же сервера, на котором работает Checkmk, нормальным будет разрешить подключение только к localhost​​​. Раскомментируйте и обновите настройку конфигурации до:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = 127.0.0.1
      . . .
      

      Сохраните и закройте файл.

      Необходимо перезапустить демон xinetd, чтобы изменения вступили в силу. Сделайте это сейчас:

      • sudo systemctl restart xinetd

      Теперь наш агент готов и работает, а также для него действуют ограничения, позволяющие принимать только локальные подключения. Мы можем перейти к конфигурации мониторинга для хоста, использующего Checkmk.

      Конфигурация хоста в веб-интерфейсе Checkmk

      Сначала, чтобы добавить новый хост для мониторинга, необходимо перейти в меню Hosts в меню WATO — Configuration слева. Здесь нажмите Create new host. У нас запросят информацию о хосте.

      Создание нового хоста в Checkmk

      Hostname — это знакомое имя, которое Checkmk будет использовать для мониторинга. Это может быть полностью определенное доменное имя, но не обязательно. В данном примере мы назовем хост monitoring, как само название экземпляра Checkmk. Поскольку monitoring​​​ не разрешим для нашего IP-адреса, необходимо также предоставить IP-адрес нашего сервера. И поскольку мы отслеживаем локальный хост, IP-адрес будет просто 127.0.0.1. Отметьте поле IPv4 Address, чтобы включить ручной ввод IP, и введите значение в текстовом поле.

      Конфигурация по умолчанию раздела Data Sources​​​ полагается на агента Checkmk для предоставления данных мониторинга, что нормально. Настройка Networking Segment используется для обозначения хостов в удаленных сетях, которые характеризуются более длинной задержкой, что не является признаком ошибки. Поскольку это локальный хост, установка по умолчанию также подойдет.

      Для сохранения хоста и настройки серверов для мониторинга нажмите на кнопку Save & go to services.

      Список служб, доступных для мониторинга

      Checkmk выполнит автоматическую инвентаризацию. Это означает, что программа получит вывод от агента и расшифрует его, чтобы знать, какие виды служб она может отслеживать. Все доступные службы для мониторинга будут представлены в списке, включая загрузку ЦП, использование памяти и свободное место на дисках.

      Для активации мониторинга всех обнаруженных служб необходимо нажать на кнопку Monitor​​​ в разделе Undecided services (currently not monitored)​​​. Это обновит страницу, но сейчас все службы будут указаны в разделе Monitored services​​​, это послужит индикацией того, что действительно выполняется их мониторинг.

      Как и при изменении пароля пользователя, эти новые изменения необходимо сохранить и активировать, чтобы они начали действовать. Нажмите на кнопку 2 changes и примите изменения с помощью кнопки Activate affected. После этого мониторинг хоста будет готов к работе.

      Теперь вы готовы работать с данными сервера. Посмотрите на главную информационную панель с помощью позиции меню Overview/Main Overview слева.

      Работа с данными мониторинга

      Теперь посмотрим на главную информационную панель с помощью позиции меню Overview/Main Overview​​​ слева:

      Панель мониторинга, когда все службы исправны

      Земной шар теперь полностью окрашен в зеленый цвет, а в таблице указано, что один хост готов и проблемы отсутствуют. Мы можем увидеть полный список хостов, который сейчас включает один хост в представлении Hosts/All hosts (с помощью меню слева).

      Список хостов со всеми исправными службами

      Здесь мы увидим, сколько служб находится в исправном состоянии (отображаются зеленым), сколько неисправных и сколько ожидают проверки. Нажав на имя хоста, мы сможем увидеть список всех служб, их полные статусы и их Perf-O-Meter. Perf-O-Meter показывает производительность отдельной службы относительно параметров исправного состояния, назначенных Checkmk.

      Подробнее о статусе службы хоста

      Все службы, данные от которых можно представить в виде графика, помечены значком возле названия. Мы можем использовать этот значок для получения доступа к графикам, связанным с этой службой. Поскольку мониторинг хоста только создан, на графиках почти ничего не отображается, но через некоторое время на графиках будет представлена полезная информация об изменениях работы службы с течением времени.

      Графики отображения загрузки ЦП на сервере

      Когда служба неисправна или восстанавливается, информация будет отображаться на информационной панели. Для неисправных служб будет отображаться красная ошибка, а проблема также будет видна на графике в виде земного шара.

      Информационная панель, когда на одном хосте имеются проблемы

      После восстановления все будет отображаться зеленым, свидетельствуя о нормальной работе, но журнал событий справа будет содержать информацию о предыдущих ошибках.

      Информационная панель после того, как один хост был восстановлен после возникновения проблем

      Теперь, когда мы немного изучили информационную панель, добавим второй хост в наш экземпляр мониторинга.

      Шаг 6 — Мониторинг второго хоста CentOS

      Мониторинг очень полезен при наличии нескольких хостов. Теперь мы добавим второй сервер в наш экземпляр Checkmk, в этот раз запустив CentOS 7.

      Как и в случае с нашим сервером Ubuntu, необходимо установить агент Checkmk для сбора данных мониторинга на CentOS. Однако в этот раз нам потребуется пакет rpm со страницы Monitoring Agents​​​ в веб-интерфейсе под названием check-mk-agent-1.6.0p8-1.noarch.rpm​​​.

      Однако сначала необходимо установить программу xinetd, которая недоступна по умолчанию при установке CentOS​​​. Xinetd, как мы помним, является демоном, отвечающим за доступность данных мониторинга, предоставленных check_mk_agent​​​​​​ в сети.

      На своем сервере CentOS сначала установите xinetd:

      • sudo yum install -y xinetd

      Теперь мы можем загрузить и установить пакет агента мониторинга, необходимый для нашего сервера CentOS:

      • sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

      Как и ранее, мы можем проверить корректность работы агента, запустив check_mk_agent​​​:

      Вывод будет выглядеть примерно так же, как и с сервера Ubuntu. Теперь мы ограничим доступ к агенту.

      Ограничение доступа

      В этот раз мы не будем выполнять мониторинг локального хоста, поэтому xinetd должен разрешить подключения, исходящие от сервера Ubuntu, где установлен Checkmk, для сбора данных. Чтобы разрешить это, сначала откройте ваш файл конфигурации:

      • sudo vi /etc/xinetd.d/check_mk

      Здесь вы увидите конфигурацию службы check_mk с указаниями, как можно получить доступ к агенту Checkmk с помощью демона xinetd. Найдите следующие две прокомментированные строки:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Теперь раскомментируйте вторую строку и замените локальные IP-адреса на your_ubuntu_server_ip​​​:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = your_ubuntu_server_ip
      . . .
      

      Сохраните и закройте файл, введя :x, а затем ENTER. Перезапустите службу xinetd с помощью:

      • sudo systemctl restart xinetd

      Теперь мы можем перейти к конфигурации Checkmk для мониторинга нашего хоста CentOS 7.

      Конфигурация нового хоста в Checkmk

      Для добавления дополнительных хостов в Checkmk мы используем меню Hosts, как и ранее. В этот раз мы назовем хост centos, настроим его IP-адрес и выберем WAN (high-latency) в поле выбора Networking Segment, поскольку хост находится в другой сети. Если бы мы пропустили это и оставили локальный адрес, Checkmk вскоре бы предупредил нас, что хост неисправен, так как хост должен был отвечать на запросы агента гораздо быстрее, чем это возможно по сети Интернет.

      Создание экрана конфигурации второго хоста

      Нажмите Save & go to services, после чего отобразятся доступные службы для мониторинга на сервере CentOS. Список будет очень похож на список из первого хоста. И в этот раз необходимо нажать Monitor, а затем активировать изменения с помощью оранжевой кнопки в левом верхнем углу.

      После активации изменений мы можем проверить, что мониторинг хоста выполняется, на странице All hosts. Перейдите туда. Теперь будут отображаться два хоста, monitoring и centos.

      Список хостов, когда выполняется мониторинг двух хостов

      Теперь вы выполняете мониторинг сервера Ubuntu и сервера CentOS с помощью Checkmk. Можно отслеживать и большее количество хостов. Фактически их количество зависит исключительно от мощности сервера, но и она не должна стать проблемой, если число хостов не измеряется сотнями. Более того, для других хостов процедура аналогична. Агенты Checkmk в пакетах deb и rpm работают на Ubuntu, CentOS и на большинстве других дистрибутивов Linux.

      Заключение

      В этом руководстве мы настроили два сервера с помощью двух разных дистрибутивов Linux: Ubuntu и CentOS. Затем мы установили и выполнили конфигурацию Checkmk для мониторинга обоих серверов, а также изучили мощный веб-интерфейс Checkmk.

      Checkmk позволяет легко устанавливать полноценную и универсальную систему мониторинга, благодаря которой все трудоемкие действия по ручной конфигурации помещены в простой в использовании веб-интерфейс с массой опций и функций. Эти инструменты позволяют отслеживать работу нескольких хостов, настраивать электронную почту, SMS, выводить уведомления о проблемах; настраивать дополнительные проверки других служб, отслеживать возможность доступа и производительность и др.

      Для получения дополнительной информации о Checkmk посетите официальную документацию.



      Source link