[Linux36-1] sistema de monitoreo zabbix

1. Introducción a zabbix


zabbix 官 网: https: //www.zabbix.com

sitio web oficial de zabbix manual chino

1.1 Introducción a zabbix


  • Zabbix fue fundada por Alexei Vladishev, y la empresa establecida por él, Zabbix SIA, continúa desarrollando, actualizando y manteniendo activamente, y brindando a los usuarios servicios de soporte técnico.
  • Zabbix es una solución de monitoreo de código abierto distribuida a nivel empresarial.
  • El software Zabbix puede monitorear el estado y la integridad de numerosos servidores y parámetros de red. Zabbix utiliza un mecanismo de alerta flexible que permite a los usuarios configurar alertas basadas en correo electrónico para casi cualquier evento. Esto permite a los usuarios responder rápidamente a los problemas del servidor. Zabbix proporciona excelentes funciones de visualización de informes y datos basadas en datos almacenados. Estas características hacen de Zabbix una opción ideal para la planificación de capacidad.
  • Zabbix admite sondeo activo (sondeo) y captura pasiva (captura). Se puede acceder a todos los informes, estadísticas y parámetros de configuración de Zabbix a través de la página frontal basada en la web. La página frontal basada en la web garantiza que pueda acceder al estado de su red supervisada y al estado del servidor desde cualquier lugar. Con la configuración adecuada, Zabbix puede jugar un papel importante en el monitoreo de la infraestructura de TI. Lo mismo se aplica a organizaciones pequeñas con una pequeña cantidad de servidores o grandes empresas con una gran cantidad de servidores.
  • Zabbix es gratis. Zabbix está escrito y publicado bajo la segunda edición de la Licencia Pública General GPL. Esto significa que el código fuente del producto se publica de forma gratuita y está disponible para uso público.

1.2 función zabbix


Características: documentación oficial del sitio web

1.3 arquitectura zabbix


Servidor

  • El servidor Zabbix es el componente central del software Zabbix, y el agente le informa sobre la disponibilidad, la información sobre la integridad del sistema y las estadísticas. El servidor también es el repositorio central que almacena toda la información de configuración, estadísticas e información de funcionamiento.

base de datos

  • Toda la información de configuración y los datos recopilados por Zabbix se almacenan en la base de datos.

interfaz web

  • Para acceder fácilmente a Zabbix desde cualquier lugar y plataforma, proporcionamos una interfaz basada en web. Esta interfaz es parte del servidor Zabbix y generalmente (pero no necesariamente) se ejecuta en la misma máquina física que el servidor Zabbix.

Apoderado

  • El proxy Zabbix puede recopilar datos de rendimiento y disponibilidad en lugar del servidor Zabbix. La implementación del proxy Zabbix en Zabbix es una parte opcional; pero la implementación del proxy puede compartir la carga de un solo servidor Zabbix.

Agente

  • Los agentes de Zabbix se implementan en el objetivo monitoreado para monitorear activamente los recursos y las aplicaciones locales, y enviar los datos recopilados al servidor de Zabbix.

flujo de datos

  • Además, también es muy importante que Zabbix use Zabbix para comprender el flujo de datos general dentro de Zabbix. Primero, para crear un elemento de monitoreo para recopilar datos, primero debe crear un host. En segundo lugar, en el otro extremo de la tarea, debe haber elementos de supervisión para crear desencadenantes y se deben utilizar desencadenantes para crear acciones. Por lo tanto, si desea recibir una alarma como "La carga de la CPU en los servidores X es demasiado alta", primero debe crear una entrada de host para el Servidor X, en segundo lugar, crear un elemento de monitoreo para monitorear su CPU y finalmente crear un disparador El dispositivo se utiliza para desencadenar la acción de una alta carga de CPU y enviarla a su buzón. Aunque estos pasos pueden parecer tediosos, el funcionamiento real es muy sencillo cuando se utilizan plantillas. Es precisamente por este diseño que la configuración de Zabbix se vuelve más flexible y fácil de usar.

1.4 Términos de uso común


Términos de uso común en el sitio web oficial de zabbix


2. Instalación y configuración del servidor


servidor1: 192.168.17.1


2.1 Configurar el almacén de software


vim /etc/yum.repos.d/zabbix.repo: Puede utilizar la fuente de yum del sitio web oficial, aquí está el sitio web de duplicación de Aliyun, ¡que es rápido!

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch 
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0

2.2 instalación y configuración del servidor zabbix y la base de datos


  • Instalar la base de datos MySQL

yum install -y zabbix-server-mysql

yum install -y mariadb-server

  • Servicio de base de datos abierta

systemctl start mariadb

systemctl enable mariadb

  • Crea una base de datos:mysql

mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by '密码';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> quit;

Inserte la descripción de la imagen aquí


  • Datos de importacion

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p密码 zabbix

  • Base de datos de configuración

vim /etc/zabbix/zabbix_server.conf

DBHost=localhost#默认
DBName=zabbix#默认
DBUser=zabbix#默认
DBPassword=westos

Inserte la descripción de la imagen aquí

  • Servicio abierto de zabbix

systemctl enable --now zabbix-server

Inserte la descripción de la imagen aquí

Si no se abre, puede ver el archivo de registro de zabbix: /var/log/zabbix/zabbix_server.log

2.3 Instalar zabbix-agent


yum install -y zabbix-agent

systemctl enable --now zabbix-agent

netstat -antlupe | grep zabbix: Ver puerto

Inserte la descripción de la imagen aquí

2.4 Configuración de front-end


  • instalación

yum list php: Vea la versión de php como 5.4.16-46.el7

yum install -y zabbix-web-mysql

yum install -y php-mbstring-5.4.16-46.el7.x86_64.rpm(Alibaba Cloud puede descargar)

yum install -y php-bcmath-5.4.16-46.el7.x86_64.rpm(Alibaba Cloud puede descargar)

  • Modificar zona horaria

vim /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai
  • Modificar fuente

cd /usr/share/zabbix/assets/fonts/: Descargue simkai.ttf a este directorio

vim /usr/share/zabbix/include/defines.inc.php

执行:%s/graphfont/simkai/g

  • Iniciar Apache

systemctl enable --now httpd

Inserte la descripción de la imagen aquí

  • Visita : http://172.25.17.1/zabbix/

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí



3. Configuración del agente (host supervisado)


servidor2: 192.168.17.2
servidor3: 192.168.17.3


  • Configurar el almacén de software

vim /etc/yum.repos.d/zabbix.repo

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch 
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0

  • Instale zabbix-agent (todos los agentes deben estar instalados)

yum install -y zabbix-agent

  • Configuración

vim /etc/zabbix/zabbix_agentd.conf: Edita el archivo de configuración principal

Server=192.168.17.1#监控系统server端的IP
ServerActive=192.168.17.1#监控系统server端的IP
Hostname=#agent端 本机的hostname

vim /etc/hosts: Análisis de configuración

192.168.17.1	server1
192.168.17.2	server2
192.168.17.3	server3

  • Servicio abierto

systemctl enable --now zabbix-agent.service

  • Archivo de registro :/var/log/zabbix/zabbix_agentd.log

4. Agregue manualmente el host monitoreado


Explicación detallada de todas las configuraciones en documentos oficiales


  • Visita : http://172.25.17.1/zabbix/
  1. Seleccione 1. "Configuración" -2. "Host" -3. "Crear host"
  2. Crear anfitrión

Inserte la descripción de la imagen aquí

  1. Agregar una plantilla al host

Inserte la descripción de la imagen aquí

  1. Después de un tiempo, después de que el ícono ZBX del host agregado se vuelva verde, ¡la adición es exitosa y el monitoreo es exitoso!

Inserte la descripción de la imagen aquí



5. Agregar automáticamente hosts monitoreados


5.1 Descubrimiento automático del servidor


  1. Habilitar la acción "Descubrimiento automático"

Inserte la descripción de la imagen aquí

  1. Habilitar la regla "Descubrimiento automático"

Inserte la descripción de la imagen aquí

  1. Detección: descubrimiento automático exitoso de server3

Inserte la descripción de la imagen aquí



5.2 Registro automático en el lado del agente


  1. Deshabilite el descubrimiento automático para no interferir con este experimento.

Inserte la descripción de la imagen aquí

  1. Debido a los hosts limitados, elimine server3

Inserte la descripción de la imagen aquí

  1. Crear "Registro automático"

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

  1. Reinicie el servicio de agente de server3

systemctl restart zabbix-agent.service

  1. ¡Compruebe, server3 se registra automáticamente correctamente!

Inserte la descripción de la imagen aquí



6. API


La API de Zabbix le permite recuperar y modificar la configuración de Zabbix mediante programación y proporciona acceso a datos históricos. Es ampliamente utilizado:

  • Cree una nueva aplicación para usar Zabbix;
  • Integre Zabbix con software de terceros;
  • Automatiza las tareas rutinarias.

Zabbix API es una API basada en web proporcionada como parte de la interfaz web. Utiliza el protocolo JSON-RPC 2.0, lo que significa dos cosas:

  • La API contiene un conjunto de métodos independientes;
  • La solicitud y la respuesta entre el cliente y la API están codificadas en formato JSON.

estructura

  • obtener: recuperar datos
  • crear: crear datos
  • actualizar: actualizar datos
  • eliminar: eliminar datos

6.1 Obtenga el token de autenticación user.login


Atributos de autenticación:

  • jsonrpc: La versión del protocolo JSON-RPC utilizada por la API; la versión JSON-RPC implementada por la API Zabbix es 2.0;
  • método: el nombre del método API que se llama;
  • params: los parámetros que se pasarán al método API;
  • id: cualquier identificador solicitado;
  • auth: token de autenticación de usuario; debido a que aún no tenemos uno, su configuración es nula

Objeto de respuesta de API:

  • jsonrpc: la versión del protocolo JSON-RPC;
  • resultado: los datos devueltos por el método (es decir, el token de autenticación de usuario)
  • id: el identificador de la solicitud correspondiente

Ejemplo

curl -s -XPOST http://192.168.17.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d 
'{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' | python -m json.tool

Inserte la descripción de la imagen aquí

6.2 Recuperar host host.get


vim get_zabbix_api.sh

curl -s -XPOST http://192.168.17.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
	],
	"selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 1,
    "auth": "身份令牌"
}' | python -m json.tool

Inserte la descripción de la imagen aquí

6.3 Eliminar host host.delete


vim del_zabbix_api.sh

curl -s -XPOST http://192.168.17.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.delete",
    "params": [
	"删除的主机id"
    ],
    "id": 1,
    "auth": "身份令牌"
}' | python -m json.tool

Inserte la descripción de la imagen aquí

6.4 Crear host host.create


vim create_zabbix_api.sh

curl -s -XPOST http://192.168.17.1/zabbix/api_jsonrpc.php -H "Content-Type: application/json-rpc" -d '
{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "server3",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "192.168.17.3",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [
            {
                "groupid": "2"#主机群组id
            }
        ],
        "templates": [
            {
                "templateid": "10001"#模板id
            }
        ],
        "inventory_mode": 0,
        "inventory": {
            "macaddress_a": "01234",
            "macaddress_b": "56768"
        }
    },
    "auth": "身份令牌",
    "id": 1
}' | python -m json.tool

7. Agregar plantilla httpd


servidor2: 192.168.17.2


  • Configurar httpd en el lado del agente

yum install -y httpd

systemctl enable --now httpd

echo server2 > /var/www/html/index.html

Inserte la descripción de la imagen aquí

  • Agregar plantilla

Inserte la descripción de la imagen aquí

8. Cree elementos de supervisión de nginx


  • Instalar fuente nginx

tar zxf nginx-1.18.0.tar.gz

cd nginx-1.18.0

yum install -y gcc pcre-devel openssl-devel: 安装 gcc 、 pcre-devel 、 openssl-devel

vim auto/cc/gcc`
#CFLAGS="$CFLAGS -g"
#注释此行(127行)可以使安装后的二进制文件更小

./configure --prefix=/usr/local/nginx --with-http_ssl_module: Configure el script, especifique la ruta de instalación y otros parámetros

make && make install

  • Crea una conexión suave

cd /usr/local/nginx/sbin/

ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/

  • Inicio de configuración

vim /usr/local/nginx/conf/nginx.conf

location /status {
    
    
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
}

Inserte la descripción de la imagen aquí

nginx -t

  • Agregue la clave del elemento de monitoreo

vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf

UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk 'NR==3{print $1}'
UserParameter=nginx.handled,curl -s http://127.0.0.1/status | awk 'NR==3{print $2}'
UserParameter=nginx.request,curl -s http://127.0.0.1/status | awk 'NR==3{print $3}'

systemctl restart zabbix-agent.service: Reiniciar servicio

  • Pruebe la clave del elemento de supervisión en el lado del servidor

yum install -y zabbix-get: Server1 instala zabbix-get

zabbix_get -s 192.168.17.3 -p 10050 -k "nginx.active"

Inserte la descripción de la imagen aquí

  • Crear elementos de seguimiento

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

  • Agregar elementos de supervisión al gráfico

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

  • Ver resultados de monitoreo

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_46069582/article/details/112692592
Recomendado
Clasificación