Mostrando las entradas con la etiqueta debian. Mostrar todas las entradas
Mostrando las entradas con la etiqueta debian. Mostrar todas las entradas

domingo, junio 16, 2024

Cómo instalar un cluster de MicroK8s en tres contenedores LXC, instalados en Ubuntu


Introducción

MicroK8s es una plataforma de Kubernetes simplificada que permite implementar y ejecutar aplicaciones en contenedores de forma fácil y rápida. En este artículo, se describe cómo instalar un cluster de MicroK8s en tres contenedores LXC, instalados en Ubuntu.

Requisitos previos

  • Una máquina con Ubuntu y LXC instalado
  • Conocimiento básico de Linux y contenedores LXC.

Pasos

1. Instalar LXC

En la máquina Ubuntu, instale el paquete LXC utilizando el siguiente comando:

sudo apt install lxc

 

2. Crear perfil microk8s

Debemos crear un perfil para que kubernetes se ejecute sin problemas en un contenedor LXC:

lxc profile create microk8s
# para ZFS
wget https://raw.githubusercontent.com/ubuntu/microk8s/master/tests/lxc/microk8s-zfs.profile -O microk8s.profile
# para ext4
wget https://raw.githubusercontent.com/ubuntu/microk8s/master/tests/lxc/microk8s.profile -O microk8s.profile
cat microk8s.profile | lxc profile edit microk8s
rm microk8s.profile  
 

2. Crear contenedor LXC base

Primero debemos crear un contenedor LXC utilizando utilizando el perfil microk8s, instalamos microk8s y después generamos una sanpshot de es:

lxc launch -p default -p microk8s ubuntu:22.04 microk8s01
#instalamos microk8s
lxc exec microk8s01 -- sudo snap install microk8s --classic  
#creamos el snapshot 
lxc snapshot microk8s01 microk8s-template

3. Crear los otros contenedores

En base a la snapshot creamos los otros dos contenedores:
#contenedor 2
lxc copy microk8s-template microk8s02
#contenedor 3
lxc copy microk8s-template microk8s03

4. Agregar nodos al cluster

Ya tenemos microk8s en tres maquinas, asi que ahora los uniremos entre ellos. Para eso desde el nodo microk8s01 ejecutaremos el siguiente comando:

root@microk8s01:~# microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 10.88.89.67:25000/da2fc5b4a60fc1e5fbbe703b007414c3/4523e5f8424e

Use the '--worker' flag to join a node as a worker not running the control plane, eg:
microk8s join 10.88.89.67:25000/da2fc5b4a60fc1e5fbbe703b007414c3/4523e5f8424e --worker

If the node you are adding is not reachable through the default interface you can use one of the following:
microk8s join 10.88.89.67:25000/da2fc5b4a60fc1e5fbbe703b007414c3/4523e5f8424e

 Donde <token> es el token de unión proporcionado por el primer nodo  y <apiserver-url> es la URL del servidor API de MicroK8s del primer nodo. Desde los demas nodos ejecutaremos el siguiente comando

microk8s join 10.88.89.67:25000/da2fc5b4a60fc1e5fbbe703b007414c3/4523e5f8424e


5. Verificar Cluster

Verifique que el cluster de MicroK8s esté funcionando correctamente utilizando el siguiente comando:

root@microk8s01:~# microk8s status 
microk8s is running
high-availability: yes
datastore master nodes: 10.88.89.67:19001 10.88.89.59:19001 10.88.89.165:19001
datastore standby nodes: none

root@microk8s01:~# microk8s kubectl get no
NAME STATUS ROLES AGE VERSION
microk8s01 Ready <none> 8m24s v1.29.4
microk8s02 Ready <none> 89s v1.29.4
microk8s03 Ready <none> 9s v1.29.4

Conclusión

Ha completado la instalación de un cluster de MicroK8s en tres contenedores LXC, instalados en Ubuntu. Ahora puede implementar y ejecutar aplicaciones en contenedores en su cluster de MicroK8s.

Recursos adicionales

lunes, enero 11, 2021

Zabbix: Notificaciones via Telegram

Zabbix tiene una integración incluida con Telegram. Para activarla debemos primero  obtener el token de Telegram para interactuar con la API. Para esto puedes seguir este tutorial link.

Ya obtenido el token debemos crear un grupo en Telegram y también obtener su ID. Esto lo puedes obtener, ingresando al grupo y como muestra la imagen siguiente.


Ya teniendo ambos datos, Token y ID de grupo, vamos a Zabbix a configurar.

Primero debemos activar el tipo de medio. Para esto ingresamos a Administration → Media Types. Buscamos Telegram y hacemos clic.

En este lugar agregamos el Token y guardamos (Update)


Ya tenemos configurado Zabbix de forma global. Ahora debemos configurar las notificaciones a un usuario. Para esto vamos a Users Settings → Media y hacemos clic en agregar.


Aquí seleccionamos el Type: Telegram y Send to: -ID de grupo. Ademas podemos definir el nivel de severidad de las alarmas que nos llegaran. Recomiendo activar solo las de mayor gravedad.






domingo, enero 10, 2021

Instalacion de Zabbix en Ubuntu Server 20.04

 Zabbix es una herramienta de monitoreo muy potente y totalmente libre, que te permitirá tener visualización del comportamiento de tu red y servicios, a través de agentes instalados en los equipos o  protocolos como SNMP y WMI.

La arquitectura de Zabbix esta compuesta por los siguientes componentes:

Zabbix Server: pieza principal de Zabbix, sus tareas principales son:

  • Recolectar y analizar los datos.
  • gestionar la base de datos.
  • generar las alarmas.

Servidor de base de datos:  Guarda toda la información de Zabbix, ya se configuraciones como datos históricos de los equipos

Zabbix Frontend: Es toda la interface web de Zabbix, que permite la visualización de la información y la configuración de Zabbix.

Agente: Zabbix incluye una pieza de software que se instala en los equipos a monitorear. El cual extrae los parámetros y los enviá a Zabbix. Normalmente el agente se instala en servidores Windows o Linux.



Dashboard de Zabbix

Instalación de Zabbix

Vamos a instalar a través de paquetes .deb Zabbix 5.0 (es la versión LTS actual con suporte hasta 2025), esto incluirá Zabbix Server, Zabbix frontend y el agente.

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb 
sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb 
sudo apt update 
sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent

Mas información sobre el ciclo de vida de Zabbix la pueden encontrar aquí

 

Instalación de bases de datos 

Debemos instalar la base de datos. Importante, debemos crear tus propias claves para MariaDB y no utilizar las que aquí usamos ya que son solo de ejemplo.

sudo apt -y install mariadb-common mariadb-server-10.3 mariadb-client-10.3

Ya instalado el servidor de base datos debemos configurar que inicie al arranque del servidor:

sudo systemctl start mariadb 
sudo systemctl enable mariadb

Configuraciones de clave para bases de datos

Eejecutamos el proceso de cambio de clave para MariaDB.

sudo mysql_secure_installation

Enter current password for root (enter for none): Press the Enter 
Set root password? [Y/n]: Y 
New password: <Ingrese clave de root para base de datos> 
Re-enter new password: <Ingrese clave de root para base de datos> 
Remove anonymous users? [Y/n]: Y 
Disallow root login remotely? [Y/n]: Y 
Remove test database and access to it? [Y/n]:  Y 
Reload privilege tables now? [Y/n]:  Y


Creacion de base  de datos e importacion de esquema

sudo mysql -uroot -p'claverootDB' -e "create database zabbix character set utf8 collate utf8_bin;" 

sudo mysql -uroot -p'claverootDB' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'claveZabbixDB';"

importamos el esquema

sudo mysql -uroot -p'claverootDB' zabbix -e "set global innodb_strict_mode='OFF';"
sudo zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'claveZabbixDB' zabbix 
sudo mysql -uroot -p'claverootDB' zabbix -e "set global innodb_strict_mode='ON';"

Configuramos clave de base de datos en Zabbix

Debemos editar el archivo zabbix_server.conf, el cual es el archivo principal de Zabbix. Este se ubica en /etc/zabbix/zabbix_server.conf y agregar la clave de usuario zabbix de la base de datos:

DBPassword=claveZabbixDB

y guardamos.

Ahora debemos reiniciar los servicios de Zabbix y configurar para que puedan iniciar junto con el servidor:

sudo systemctl restart zabbix-server zabbix-agent 
sudo systemctl enable zabbix-server zabbix-agent

Configuración de Apache

Debemos editar el archivo /etc/zabbix/apache.conf y descomentar 2 lineas que comienzan con:


# php_value date.timezone Europe/Riga

 y dejarlas asi, dependiendo de tu zona horaria:

php_value date.timezone America/Santiago
 

y reiniciamos  Apache y ademas lo agregamos al arranque:

sudo systemctl restart apache2
sudo systemctl enable apache2


Final: configuración de Zabbix Frontend

Ahora debemos ingresar a la ver de Zabbix, a través de la URL http://ip_del_servidor/zabbix. El unico dato que necesitamos ingresar es la clave de la base de datos.





Ya hemos realizado la instalacion ahora debes ingresar a Zabbix con las credenciales por defecto Admin/zabbix



miércoles, agosto 26, 2020

Notificaciones a traves de Telegram con Python

 Realice un pequeño script para enviar notificaciones vía telegram. En este caso lo utilizamos para enviar notificaciones de Pandora FMS (https://pandorafms.com/).

El primer paso es obtener el token de Telegram para interactuar con la API. Para esto seguir este tutorial link. Ya obtenida la información podemos utilizar el siguiente script:

 

  
   
import sys
import request

bot_token = 'token_telegram'
bot_chatID = 'id_grupo'

tipo=sys.argv[1]
sitio=sys.argv[2]
agente=sys.argv[3]
url=sys.argv[4]
"""Funcion para envio de notificacion via telegram"""
def telegram_bot_sendtext(bot_token,bot_chatID,bot_message):
   
 send_text = 'https://api.telegram.org/bot' + bot_token + 
'/sendMessage?chat_id=' + bot_chatID + 
'&parse_mode=Markdown&text=' + bot_message

    response = requests.get(send_text)
    return response.json()

if tipo=="1":
   
 telegram_bot_sendtext(bot_token,bot_chatID,"\U000026A0 *Equipo Caido* 
\U000026A0 \nSitio: " + sitio +  "\nEquipo: " + agente +  "\nLink: [" + 
url+ "]("+ url+")")

else:
    
telegram_bot_sendtext(bot_token,bot_chatID,"\U0001F37B *Equipo 
Recuperado* \U0001F37B \nSitio: " + sitio +  " \nEquipo: " + agente +  
"\nLink: [" + url+ "]("+ url+")")   

El script recibe 4 parámetros:

  • tipo: pueden ser de tipo 1, es equipo caído, y tipo diferente es equipo recuperado
  • Sitio: en este caso el lugar donde se encuentra el equipo
  • Agente: nombre del equipo caído
  • url: se envía un link a definir por la notificación

 

Estas imágenes muestra como llegan las alarmas






lunes, abril 09, 2007

configurando la red



una de las cosas mas importantes para poder usar una PC es configurar la red. en linux se puede hacer de distintas maneras, via interface grafica, la manera fome, o via consola, linea de texto. el comando para esto es ifconfig. ejemplo practico. tienes una tarjeta de red tipica, osea ethernet 10/100MB y reconocida por el sistema, y quieres conectarte a la red con la siguientes datos:

Direccion:10.0.0.3
mascara:255.255.255.0
puerta de enlace:10.0.0.1

muy facil abres la consola, y tecleas el siguiente comando:

ifconfig eth0 10.0.0.3 netmask 255.255.255.0

despues para la puerta de enlace

route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.1

para ver si esto funciona usamos ping, primero a nuestra puerta de enlace y despues a la red de de redes Internet ping 10.0.0.1 ping www.ucv.cl y llegan los paquetes es que estamos bien.