Directorio de artículos
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;
- 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
- Servicio abierto de zabbix
systemctl enable --now zabbix-server
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
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
- Visita : http://172.25.17.1/zabbix/
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/
- Seleccione 1. "Configuración" -2. "Host" -3. "Crear host"
- Crear anfitrión
- Agregar una plantilla al host
- 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!
5. Agregar automáticamente hosts monitoreados
5.1 Descubrimiento automático del servidor
- Habilitar la acción "Descubrimiento automático"
- Habilitar la regla "Descubrimiento automático"
- Detección: descubrimiento automático exitoso de server3
5.2 Registro automático en el lado del agente
- Deshabilite el descubrimiento automático para no interferir con este experimento.
- Debido a los hosts limitados, elimine server3
- Crear "Registro automático"
- Reinicie el servicio de agente de server3
systemctl restart zabbix-agent.service
- ¡Compruebe, server3 se registra automáticamente correctamente!
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
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
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
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
- Agregar plantilla
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;
}
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"
- Crear elementos de seguimiento
- Agregar elementos de supervisión al gráfico
- Ver resultados de monitoreo