Zabbix的架构和原理

Zabbix是一款高度可扩展、开源的监控和警报工具,其核心架构包括以下几个部分:

  1. Zabbix Server:Zabbix Server是整个监控系统的核心组件,负责接收和处理来自Zabbix Agent的监控数据。Zabbix Server可以通过多种方式收集数据,如SNMP、IPMI、SSH等。收集到的数据会存储在Zabbix数据库中,供后续处理和分析。
  2. Zabbix Agent:Zabbix Agent是安装在被监控主机上的软件,负责收集并提供监控数据。Zabbix Agent可以运行在各种操作系统上,支持多种编程语言。Agent会定期将监控数据发送给Zabbix Server,以确保监控数据的实时性和准确性。
  3. Zabbix Web界面:Zabbix Web界面是一个基于Java的Web应用程序,用于展示和管理监控数据。通过Zabbix Web界面,用户可以轻松查看实时监控数据、历史趋势、报警信息等。此外,Zabbix Web界面还提供了丰富的报告和统计功能,方便用户分析和诊断系统性能。
  4. Zabbix API:Zabbix API是一个RESTful风格的接口,允许外部程序和脚本访问Zabbix Server的数据和功能。通过Zabbix API,您可以实现自动化操作、数据集成和其他定制功能。
  5. 数据库:Zabbix使用MySQL或PostgreSQL数据库存储监控数据、配置信息和报警历史等。数据库服务器可以是本地或远程的,以便于扩展和备份。
  6. 报警和通知:Zabbix支持多种报警方式,如邮件、SMS、即时通讯等。当监控项触发报警条件时,Zabbix Server会将报警信息发送给指定的用户或团队。此外,Zabbix还支持通知渠道的聚合和重试,以确保报警信息的及时传递。
  7. 插件和扩展:Zabbix具有良好的扩展性,通过丰富的插件和扩展模块,可以实现对各种设备和协议的监控。此外,Zabbix社区不断推出新功能和优化性能,使得Zabbix适用于更多场景。

总之,Zabbix的架构和原理涵盖了一个完整的监控闭环,从数据收集、处理、存储到展示和报警。通过各个组件的协同工作,Zabbix能够为用户提供高效、可靠的监控解决方案。在实际应用中,您可以根据需求和场景灵活配置Zabbix,发挥其强大功能,确保系统的稳定运行。

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

用户手册:https://www.zabbix.com/documentation/current/zh/manual

Zabbix Server和Agent的安装过程

前提

需要部署好LAMP(LNMP)环境,具体组件:httpd、mysql(mariadb)、php、php-mysql Ubuntu:

$ sudo apt install apache2 mariadb-server php php-mysql -y

Centos:

$ yum install httpd mariadb-server php php-mysql -y

启动相关服务:Ubuntu:

$ sudo systemctl start apache2 && sudo systemctl start mariadb
# 设置服务自启动
$ sudo systemctl enable apache2 && sudo systemctl enable mariadb

Centos:

$ systemctl start httpd && systemctl start mariadb
# 设置服务自启动
$ systemctl enable httpd && systemctl enable mariadb
  • 基础环境验证,配置一个php测试页面
$ vim /var/www/html/index.php
<?php
phpinfo();
?>

浏览器访问127.0.0.1/index.php,如果出现以下页面说明没问题

安装zabbix依赖Ubuntu:

$ sudo apt install libxml2-dev libsnmp-dev libevent-dev libpcre3-dev libmysqld-dev libghc-curl-dev libcurl4-openssl-dev libsnmp-dev *snmp* libperl-dev php-bcmath php-mbstring php-xmlwriter php-xmlreader libldap-2.4-2 ldap-utils libldap2-dev php-gd

Centos:

$ yum install net-snmp-devel libxml2-devel libcurl-deve libevent libevent-devel curl curl-devel mysql-devel net-snmp *snmp* perl-DBI php-gd php-xm php-bcmath php-mbstring php-ldap php-odbc php-xmlpc mysql-deve gcc dos2unix -y

Zabbix Server安装

官方文档:https://www.zabbix.com/cn/download

Ubuntu

1、安装Zabbix存储库

$ wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
$ dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
$ apt update

2、安装Zabbix server,Web前端,agent

$ apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

redhat

1、安装Zabbix存储库

$ rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm
$ dnf clean all

2、安装Zabbix server,Web前端,agent

# 切换php的dnf模块版本
$ dnf module switch-to php:7.4
$ dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

1、创建初始数据库

$ systemctl start mariadb-server
$ systemctl enable mariadb-server
$ mysqladmin -u root password '123456'
$ mysql -u root -p 123456mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> flush privileges;mysql> quit;

导入初始架构和数据到数据库

$ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

导入数据库架构后禁用log_bin_trust_function_creators选项。

$ mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

2、修改zabbix server配置文件:

# 进入配置文件目录
cd /etc/zabbix
# 备份zabbix server配置文件
sudo cp -fp zabbix_server.conf zabbix_server.conf.bak
# 修改配置文件
sudo vim zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456

3、配置zabbix web页面:

$ sudo cp -a /opt/zabbix-5.4.9/ui/* /var/www/html/
$ sudo systemctl restart mariadb
# ubuntu
$ sudo systemctl restart apache2
# redhat
$ sudo systemctl restart httpd

4、开启Zabbix服务

# ubuntu
$ systemctl restart zabbix-server zabbix-agent
$ systemctl enable zabbix-server zabbix-agent
# redhat
$ systemctl restart zabbix-server zabbix-agent
$ systemctl enable zabbix-server zabbix-agent

5、登录网站页面进行初始化

http://xxx.xxx.xxx.xxx/zabbix/setup.php

Zabbix agent安装

ubuntu

# 安装Zabbix存储库
$ wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
$ dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
$ apt update
# 安装agent
$ sudo apt install zabbix-agent

redhat

# 安装Zabbix存储库
$ rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
# 安装agent
$ dnf -y install zabbix-agent

修改zabbix agent配置文件

$ cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
$ vim /etc/zabbix/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.logServer=192.168.10.128  
#zabbix server ipServerActive=192.168.10.128  
#zabbix server ip
Hostname = 192.168.10.130

启动服务

$ systemctl start zabbix-agent
$ systemctl enable zabbix-agent

zabbix配置详解

zabbix_server.conf 配置文件参数详解

DBHost                数据库主机地址;
DBName                数据库名称;
DBPassword            数据库密码;
DBPort                数据库端口,默认为3306;
AlertScriptsPath      告警脚本存放路径;
CacheSize             存储监控数据的缓存;
CacheUpdateFrequency  更新一次缓存时间;
DebugLevel            日志级别;
LogFile               日志文件;
LogFileSize           日志文件大小,超过自动切割;
LogSlowQueries        数据库慢查询记录,单位毫秒;
PidFile               PID 文件;
ProxyConfigFrequency  Proxy 被动模式下,Server 多少秒同步配置文件至proxy;
ProxyDataFrequency    被动模式下,Server 间隔多少秒向proxy 请求历史数据;
StartDiscoverers      发现规则线程数;
Timeout               连接Agent 超时时间;
TrendCacheSize        历史数据缓存大小;
User Zabbix           运行的用户;
HistoryCacheSize      历史记录缓存大小;
ListenIP              监听本机的IP 地址;
ListenPort            监听端口;
LoadModule            模块名称;
LoadModulePath        模块路径。

zabbix_Proxy.conf 配置文件参数详解

ProxyMode Proxy            工作模式,默认为主动模式,主动发送数据至Server;
Server                     指定Server 端地址;
ServerPort                 Server 端PORT;
Hostname                   Proxy 端主机名;
ListenPort Proxy           端监听端口;
LogFile Proxy              代理端日志路径;
PidFile                    PID 文件的路径;
DBHost                     Proxy 端数据库主机名;
DBName                     Proxy 端数据库名称;
DBUser                     Proxy 端数据库用户;
DBPassword                 Proxy 端数据库密码;
DBSocket                   Proxy 数据库SOCKET 路径;
DBPort                     Proxy 数据库端口号;
DataSenderFrequency        Proxy 向Server 发送数据的时间间隔;
StartPollers               Proxy 程池数量;
StartDiscoverers           Proxy 端自动发现主机的线程数量;
CacheSize                  内存缓存配置;
StartDBSyncers             同步数据线程数;
HistoryCacheSize           历史数据缓存大小;
LogSlowQueries             慢查询日志记录,单位为毫秒;
Timeout                    超时时间。

zabbix_agentd.conf 配置文件参数详解

EnableRemoteCommands       运行服务端远程至客户端执行命令或者脚本;
Hostname                   客户端主机名;
ListenIP                   监听的IP 地址;
ListenPort                 客户端监听端口;
LoadModulePath             模块路径;
LogFile                    日志文件路径;
PidFile                    PID 文件名;
Server                     指定Server IP 地址;
ServerActive               Zabbix 主动监控server 的ip 地址;
StartAgents                Agent 启动进程,如果设置为0,表示禁用被动监控;
Timeout                    超时时间
User                       运行Zabbix 的用户;
UserParameter              用户自定义key;
BufferSize                 缓冲区大小;
DebugLevel                 Zabbix 日志级别。

Zabbix是一款功能强大的监控和警报工具,其核心架构包括Zabbix Server、Zabbix Agent、Zabbix Web界面、Zabbix API、数据库、报警和通知、插件和扩展等部分。安装过程包括创建初始数据库、导入初始架构和数据到数据库、修改zabbix server配置文件、配置zabbix web页面、开启Zabbix服务、安装Zabbix agent、修改zabbix agent配置文件、启动服务、手动添加客户端、配置自动发现,创建发现规则等步骤。通过Zabbix,可以实现对各种设备和协议的监控,确保系统的稳定运行。

转自:Zabbix的安装配置 (qq.com)

Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2023-12-26 11:26:44

results matching ""

    No results matching ""