1-1-Zabbix简介和安装
1. zabbix概述
Zabbix是一款可监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康状况和完整性。Zabbix使用灵活的通知机制 , 允许用户为几乎任何事件配置基于电子邮件的警报。这允许对服务器问题做出快速反应。Zabbix基于存储的数据提供报告和数据可视化功能。这使得Zabbix成为容量规划的理想选择。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制 , 允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据 , Zabbix提供了出色的报告和数据可视化功能。
zabbix官网地址为 https://www.zabbix.com/ , 页面如下所示 :

zabbix由2部分构成 , zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP , zabbix agent , ping , 端口监视等方法提供对远程服务器/网络状态的监视 , 数据收集等功能 , 它可以运行在Linux , Ubuntu , Solaris , HP-UX , AIX , Free BSD , Open BSD , OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上 , 它主要完成对硬件信息或与操作系统有关的内存 , CPU等信息的收集。
zabbix server可以单独监视远程服务器的服务状态 ; 同时也可以与zabbix agent配合 , 可以轮询zabbix agent主动接收监视数据 ( agent方式 ) , 同时还可被动接收zabbix agent发送的数据 ( trapping方式 ) 。 另外zabbix server还支持SNMP (v1,v2) , 可以与SNMP软件(例如 : net-snmp)等配合使用。
2. zabbix基本概念
2.1 zabbix构成
Zabbix监控组件主要包括 : Zabbix Server、Zabbix Proxy、Zabbix Agent ;
其中Zabbix Server包括 : WEB GUI、Database、Zabbix Server。
zabbix 主要由以下 5 个组件构成:
Serverzabbix server是zabbix的核心组件 ,server内部存储了所有的配置信息、统计信息和操作信息。zabbix agent会向zabbix server报告可用性、完整性及其他统计信息。web页面web页面也是zabbix的一部分 , 通常和zabbix server位于一台物理设备上 , 但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息 , 以方便运维人员监控管理。数据库
zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容。proxyzabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy, 则其会替代zabbix server采集数据信息 , 可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbix server负载过重 , 或者是企业设备跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景。Agentzabbix agent通常部署在被监控目标上 , 用于主动监控本地资源和应用程序 , 并将监控的数据发送给zabbix server。
2.2 zabbix 的监控对象
zabbix支持监控各种系统平台 , 包括Linux和Windows等主流操作系统 , 也可以借助SNMP或者是SSH协议监控路由交换设备。
zabbix如果部署在服务器上 , 可以监控其CPU、内存、网络性能等硬件参数 , 也可以监控具体的服务或者应用程序、服务运行情况及性能。
硬件监控 : Zabbix IPMI Interface , 通过IPMI接口进行监控 , 我们可以通过标准的IPMI硬件接口 , 监控被监控对象的物理特征 , 比如电压、温度、风扇状态、电源状态等。
系统监控 : Zabbix Agent Interface , 通过专用的代理程序进行监控 , 与常见的master/agent模型类似 , 如果被监控对象支持对应的 agent , 推荐首选这种方式。
Java监控 : Zabbix JMX Interface , 通过JMX 进行监控 ,JMX (java management extensions , 即java管理扩展 ) , 监控JVM虚拟机时 , 使用这种方法是非常不错的选择。
网络设备监控 : Zabbix SNMP Interface , 通过SNMP协议与被监控对象进行通信 ,SNMP协议的全称为simple network management protocol , 被译为简单网络管理协议 , 通常来说 , 我们无法在路由器、交换机这种硬件上安装agent , 但是这些硬件都支持SNMP协议。
应用服务监控 : Zabbix Agent UserParameter
MySQL数据库监控 : percona-monitoring-plulgins
URL监控 : Zabbix Web 监控
2.3 zabbix的常用术语
zabbix 的学习需要掌握一些zabbix的常用术语 , zabbix常用术语列举如下 :
主机 (
host) : 要监控的设备 , 可以由IP或者是主机名 ( 必须可解析 ) 指定。主机组 (
host group) : 主机的逻辑容器 , 包含主机和模板 , 主机组通常在给用户或者是用户组指派监控权限时使用。监控项 (
item) : 一个特定监控指标的相关数据 , 比如内存的大小、CPU的使用率 , 甚至是服务的运行状态等等。监控项数据来源于被监控对象 , 并且每个监控项都由一个 key 来标识。触发器 (
trigger) : 一个表达式 , 用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时 , 就被认为是故障 , 如果超出后再次符合 , 就被认为是正常。事件 (
event) : 触发器触发的一个特定事件 , 或者是zabbix定义的一个自动上线注册主机的事件。动作 (
action) : 指根据配置 ,zabbix对于触发器触发的特定事件进行处理的具体措施 , 如执行某个脚本 , 或者是向管理员邮箱发送邮件等等。报警升级 (
escalation) : 发送警报或者是执行远程命令的自定义方案。媒介 (
media) : 发送通知 ( 告警 ) 的手段 , 如微信、邮件、钉钉等等。通知 (
notification) : 通过指定的媒介 , 向用户发送的有关事件的信息。远程命令 (
remote command) : 指运维人员提前写好的命令 , 可以让被监控主机在触发事件后执行。模板 (
template) : 用于快速定义被监控主机的预设条目集合 , 通常包括了监控项、触发器、应用等 , 模板可以直接链接至某个主机。应用 (
application) : 一组监控项的集合。web场景 (web scennario) : 用于检测web站点可用性的一个或多个HTTP请求。前端 (
frontend) :zabbix的web接口。
这些术语 , 我们都会在后文中直接使用而不过多赘述 , 在企业技术交流中也会经常使用。
2.4 zabbix 的工作流程
Zabbix在进行监控时 , zabbix客户端要安装在被监控设备上 , 负责定期收集数据 , 并将其发送给zabbix服务端 ; zabbix服务端要安装在监控设备上 , 其将zabbix客户端发送的数据存储的数据库中 , zabbix web根据数据在前端进行展示和绘图。
zabbix的数据收集分为两种模式 :
主动模式 :
zabbix客户端主动向zabbix server请求监控项列表 , 并主动将监控项内需要的数据提交给zabbix server。被动模式 :
zabbix server向agent请求获取监控项的数据 ,zabbix agent返回数据。
由此可以看出zabbix的主动和被动模式是以zabbix客户端为基准的。

2.5 zabbix 进程详解
在默认的情况下 , zabbix有6个工作进程 ; 分别是zabbix_agentd , zabbix_get , zabbix_proxy , zabbix_sender , zabbix_server 和 zabbix_java_gateway。 其中 ,zabbix_java_gateway是可选进程。这 6 个进程的作用如下 :
zabbix_agentd:zabbix-agentd为zabbix客户端守护进程 , 主要负责收集客户端监控项数据。zabbix_server:zabbix_server为zabbix服务端守护进程 , 主要负责收集zabbix客户端数据。 ( 端口为10051)zabbix_proxy:zabbix_proxy是zabbix的代理程序 , 其功能类似于server, 作用上类似于一个中转站 , 最终会把收集的数据再次提交给zabbix_server。zabbix_get:zabbix_get作为zabbix工具 , 通常运行在zabbix_server或者zabbix_proxy上 , 用于远程获取客户端信息 , 通常用于排错。zabbix_sender:zabbix_sender也是zabbix的一个工具 , 通常运行在zabbix的客户端 , 用于耗时比较长的检查 , 其作用是主动发送数据。zabbix_java_gateway:zabbix_java_gateway是zabbix2.0以后引入的新功能 , 可以用于JAVA方面的设备 ; 但是只能主动获取数据 , 而不能被动获取数据。
2.6 zabbix 的监控框架
在实际的工作环境中 , 根据网络环境和监控的规模不同 , zabbix 一共有三种框架 , 分别是server_client架构、master_node_client 架构和server_proxy_client架构。
server_client架构zabbix最简单的架构 , 监控设备和被监控设备之间直接相连 ,zabbix_server和zabbix_client之间直接进行数据交互。zabbix_proxy_client架构proxy是连接server和client之间的桥梁 , 其本身不存放数据 , 只是将zabbix_agent端发来的数据暂存 , 然后再提交给server。这种架构一般用于跨机房、跨网络的中型网络架构。
在 server_proxy_client 架构中 , server 设备的宕机会导致整个系统瘫痪而无法正常工作。
master_node_client架构master_node_client架构是zabbix最复杂的架构。一般用于跨机房、跨网络、监控设备较多的大型网络架构。与server_proxy_client架构相比 ,master_node_client架构的主要区别在于node与proxy上.
在 master_node_client架构中 , 每个node可以理解为一个小的server端 , 在自己的配置文件和数据库 , node下游可以直接连接 client , 也可以再次经过 proxy 代理后连接client。
在master_node_client架构中 , master设备宕机不会影响node节点的正常工作。
2.6.1 三种架构模式的[架构图]如下 :

2.6.2 每个模块的工作职责 :
Zabbix_Server:zabbix_server作为核心组件 , 用来获取agent存活情况和监控数据。所有的配置、统计、操作数据均通过server进行存取到database;Zabbix_Database: 用户存储所有的zabbix的配置信息、监控数据的数据库 ;Zabbix_Web:zabbix的web界面 , 管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息 , 通常与zabbix_server运行在同一台主机上 , 也可以单独部署在独立的服务器上 ;Zabbix_Proxy: 通常用于分布式监控 , 代理zabbix_server收集部分被监控的数据并统一发送给server端 ; ( 通常大于 500 台主机需要使用 )Zabbix_Agent: 部署在被监控主机上 , 负责收集被监控主机的数据 , 并发送给servre端或者proxy端 ;
Zabbix Server、Proxy、Agent都有自己的配置文件以及log文件 , 重要的参数需要在这里配置 , 后面会详细说明。
3. zabbix安装
官方安装目录 : 下载Zabbix
每个版本的安装包都不太一样 , 基本上所有的步骤直接参考官方的安装手册即可。
官方产品手册: 产品手册 (zabbix.com), 所有的安装过程和版本相关信息均在里面。
3.1 yum/apt安装
这里只是展示zabbix6.0在ubuntu2204和centos8上面的安装方式, 其他的版本的安装方式均可以参考产品手册链接: 产品手册 (zabbix.com)
3.1.1 apt安装
ubuntu2204, zabbix6.0
安装
zabbix server# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb # dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb # apt update # apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent准备数据库
root@mysql:~# apt install mysql-server mysql-client root@ubuntu2204:~# vi /etc/mysql/mysql.conf.d/mysqld.cnf bind-address = 0.0.0.0 root@mysql:~# systemctl restart mysql #进入数据库,创建zabbix数据库, 创建账户并授权 root@mysql:~# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database zabbix_server character set utf8mb4 collate utf8mb4_bin; Query OK, 1 row affected (0.02 sec) mysql> create user zabbix@"192.168.194.%" identified by 'xiong.zabbix'; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on zabbix_server.* to zabbix@"192.168.194.%"; Query OK, 0 rows affected (0.00 sec) mysql> set global log_bin_trust_function_creators = 1; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> exit Bye导入数据库
在
zabbix server节点初始化数据库root@zabbix-server:~# mysql -uzabbix -pxiong.zabbix -h192.168.194.133 #测试账户权限 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye #初始化数据库 root@zabbix-server:~# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -pxiong.zabbix -h192.168.194.133 zabbix_server mysql: [Warning] Using a password on the command line interface can be insecure.数据库验证数据
root@mysql:~# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use zabbix_server Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------------------+ | Tables_in_zabbix_server | +----------------------------+ | acknowledges | | actions | | alerts | | auditlog | | autoreg_host | | conditions | | config | | config_autoreg_tls | .......编辑
zabbix配置文件root@zabbix-server:~# grep -i "^DB" /etc/zabbix/zabbix_server.conf DBHost=192.168.194.133 DBName=zabbix_server DBUser=zabbix DBPassword=xiong.zabbix DBPort=3306重启
zabbix服务root@zabbix-server:~# systemctl restart zabbix-server zabbix-agent apache2访问并配置界面
页面访问
IP/zabbix, 底层中网页配置根目录/usr/share,进入页面之后选择下一步
页面进入预检查项, 只有预检查项均ok , 才能进入下一步

数据库配置

zabbix时区以及zabbix server名称设置
检查所有配置是否正常

最后一步会提示配置完全正常, 点击
Finish便跳转进入zabbix页面
之后直接跳转到如下图页面, 页面用户名密码 :
Admin/zabbix, 至此zabbix便安装完成
进入页面之后, 如果看到下图位置有信息 , 则安装成功

3.1.2 yum安装
3.1.2.1 CentOS8,zabbix6.0
centos8.5默认数据库数据库版本10.03.28 , zabbix6.0的数据库版本最低需要10.05 , 最高不能高于11.02.xx, 否则zabbix无法启动
安装
zabbix server[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm Retrieving https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm warning: /var/tmp/rpm-tmp.pH9nry: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:zabbix-release-6.0-4.el8 ################################# [100%] [root@zabbix-server ~]# dnf clean all Repository extras is listed more than once in the configuration 50 files removed [root@zabbix-server ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent准备数据库 , 由于
zabbix6.0安装对数据库版本有限制, 已经通过二进制的方式安装好数据库包。配置数据库
[root@mysql ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.11.7-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix_server character set utf8mb4 collate utf8mb4_bin; Query OK, 1 row affected (0.000 sec) MariaDB [(none)]> create user zabbix@"192.168.194.%" identified by 'xiong.zabbix'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> grant all privileges on zabbix_server.* to zabbix@"192.168.194.%"; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> set global log_bin_trust_function_creators = 1; Query OK, 0 rows affected (0.000 sec)导入数据库
[root@zabbix-server ~]# dnf install mariadb [root@zabbix-server ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -pxiong.zabbix -h192.168.194.141 zabbix_server配置
zabbix配置文件[root@zabbix-server ~]# grep -i "^DB" /etc/zabbix/zabbix_server.conf DBHost=192.168.194.141 DBName=zabbix_server DBUser=zabbix DBPassword=xiong.zabbix DBPort=3306启动服务
[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd php-fpm
剩余配置方式与apt安装方式均一样
3.1.2.2 centos7,zabbix4
准备运行环境
[root@zabbix-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm安装
zabbix软件Server:zabbix-server-mysqlZabbix proxy并使用MySQL数据库 :zabbix-proxy-mysqlZabbix前端 :zabbix-web-mysql[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent zabbix-web-mysql准备数据库
[root@mysql ~]# yum install mariadb mariadb-server -y [root@mysql ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2 Server version: 5.5.68-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix_server character set utf8 collate utf8_bin; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all privileges on zabbix_server.* to zabbix@"192.168.194.%" identified by 'xiong.zabbix'; Query OK, 0 rows affected (0.00 sec)导入数据库信息
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.50/create.sql.gz | mysql -uzabbix -pxiong.zabbix -h192.168.194.145 zabbix_server编辑
zabbix server配置文件[root@zabbix-server ~]# grep "^[a-Z]" /etc/zabbix/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBHost=192.168.194.145 DBName=zabbix_server DBUser=zabbix DBPassword=xiong.zabbix DBPort=3306 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000启动
zabbix server服务[root@zabbix-server ~]# systemctl start zabbix-server httpd访问页面, 会提示
timezone有问题需要编辑文件/etc/httpd/conf.d/zabbix.conf,修改时区参数
[root@zabbix-server ~]# vi /etc/httpd/conf.d/zabbix.conf # # Zabbix monitoring system php web frontend # Alias /zabbix /usr/share/zabbix <Directory "/usr/share/zabbix"> Options FollowSymLinks AllowOverride None Require all granted <IfModule mod_php5.c> php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value max_input_vars 10000 php_value always_populate_raw_post_data -1 php_value date.timezone Asia/ShangHai </IfModule> </Directory> ... [root@zabbix-server ~]# systemctl restart httpd zabbix-server zabbix-agent配置数据库连接

配置
zabbix server参数细节
查看配置预览信息

页面配置完成, 并将配置完成后的参数文件放置于
/etc/zabbix/web/zabbix.conf.php文件中
3.2 编译安装
3.2.1 Cento8 编译安装zabbix6.0
zabbix源下载地址: Download Zabbix sources
3.2.1.1 安装编译软件
准备环境
[root@zabbix-server ~]# groupadd -g 1001 zabbix [root@zabbix-server ~]# useradd -u 1001 -g 1001 zabbix #准备软件存放目录 [root@zabbix-server zabbix-6.0.27]# mkdir -vp /apps/zabbix_server mkdir: created directory '/apps' mkdir: created directory '/apps/zabbix_server' #准备日志存放目录 [root@zabbix-server ~]#mkdir /var/log/zabbix [root@zabbix-server ~]#chown zabbix.zabbix /var/log/zabbix #准备软件pid文件存放目录 [root@zabbix-server ~]# mkdir /apps/zabbix_server/run/ [root@zabbix-server ~]# chown zabbix.zabbix /apps/zabbix_server/run解决依赖关系,
CentOS8需要启用PowerTools安装源[root@zabbix-server ~]# yum install gcc make libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel OpenIPMI libevent-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel pcre-devel php-json php-gd php-ldap php-mysqlnd php-xml OpenIPMI-devel安装包上传至服务器中并解压
[root@zabbix-server ~]# tar -xf zabbix-6.0.27.tar.gz -C /usr/local/src/ [root@zabbix-server ~]# cd /usr/local/src/zabbix-6.0.27/ [root@zabbix-server zabbix-6.0.27]# ls aclocal.m4 build conf configure database INSTALL Makefile.am misc README ui AUTHORS ChangeLog config.guess configure.ac depcomp install-sh Makefile.in missing sass bin compile config.sub COPYING include m4 man NEWS src编译
[root@zabbix-server zabbix-6.0.27]# ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java --with-openipmi [root@zabbix-server zabbix-6.0.27]#make install--enable-static标志来静态链接库。-with-libcurl和--with-libxml2配置选项对虚拟机监控是必须的;要为
Zabbix server和agent配置源代码 , 你可以执行类似如下命令 :./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi要为
Zabbix server( 和 , 比如PostgreSQL) 配置源代码 , 你可以执行 :./configure --enable-server --with-postgresql --with-net-snmp要为
Zabbix server( 和 , 比如SQLite) 配置源代码 , 你可以执行 :./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2要为
Zabbix agent配置源代码 , 你可以执行 :./configure --enable-agent或者
Zabbix agent 2:./configure --enable-agent2安装
java gataway./configure --enable-java --prefix=$PREFIX准备数据库
[root@mysql ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.11.7-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create user zabbix@"192.168.194.%" identified by 'xiong.zabbix'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> create database zabbix_server_make character set utf8mb4 collate utf8mb4_bin; Query OK, 1 row affected (0.044 sec) MariaDB [(none)]> grant all privileges on zabbix_server_make.* to zabbix@"192.168.194.%"; Query OK, 0 rows affected (0.002 sec) MariaDB [(none)]> set global log_bin_trust_function_creators = 1; Query OK, 0 rows affected (0.000 sec)导入数据库
[root@zabbix-server run]# cd /usr/local/src/zabbix-6.0.27/database/mysql/ [root@zabbix-server mysql]# ls data.sql double.sql history_pk_prepare.sql images.sql Makefile Makefile.am Makefile.in schema.sql [root@zabbix-server mysql]# mysql -uzabbix -pxiong.zabbix -h192.168.194.141 zabbix_server_make < schema.sql [root@zabbix-server mysql]# mysql -uzabbix -pxiong.zabbix -h192.168.194.141 zabbix_server_make < images.sql [root@zabbix-server mysql]# mysql -uzabbix -pxiong.zabbix -h192.168.194.141 zabbix_server_make < data.sql验证数据库
MariaDB [(none)]> use zabbix_server_make Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [zabbix_server_make]> show tables; +------------------------------+ | Tables_in_zabbix_server_make | +------------------------------+ | acknowledges | | actions | | alerts | | auditlog | | autoreg_host | | conditions | | config | | config_autoreg_tls | ..... MariaDB [(none)]> set global log_bin_trust_function_creators = 0; Query OK, 0 rows affected (0.000 sec)编辑
zabbix server文件[root@zabbix-server mysql]# grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log PidFile=/apps/zabbix_server/run/zabbix_server.pid SocketDir=/apps/zabbix_server/run DBHost=192.168.194.141 DBName=zabbix_server_make DBUser=zabbix DBPassword=xiong.zabbix DBPort=3306 Timeout=4 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1启动
zabbix server[root@zabbix-server zabbix-6.0.27]# /apps/zabbix_server/sbin/zabbix_server -c /apps/zabbix_server/etc/zabbix_server.conf
3.2.1.2 配置页面
配置
web界面[root@zabbix-server ~]# mkdir /var/www/html/zabbix [root@zabbix-server ~]# cd /usr/local/src/zabbix-6.0.27/ui/ [root@zabbix-server ui]# cp -ra * /var/www/html/zabbix [root@zabbix-server ui]# chown apache:apache -R /var/www/html/zabbix/访问界面,进去预检测项, 发现会有报错信息。这个地方的报错主要包含两个方面:1.缺少对应的php包 ;2. 需要调整php的具体参数值。
调整参数的文件为
/etc/php.ini
调整
php.ini文件post_max_size 16M max_execution_time 300 max_input_time 300重启
httpd服务[root@zabbix-server ~]# systemctl restart httpd [root@zabbix-server ~]#systemctl restart php-fpm
配置后续页面,配置数据库链接

配置
zabbix主机名和时区
检测所有配置信息是否正常

之后整体便配置完成了。这里通过页面自动生成的php文件放在后台的
/var/www/html/zabbix/conf目录下面
3.2.1.3 配置systemd文件
zabbix-server服务文件[root@zabbix-server zabbix]# systemctl cat zabbix-server # /usr/lib/systemd/system/zabbix-server.service [Unit] Description= Zabbix Server After=syslog.target After=network.target [Service] Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_server.conf" EnvironmentFile=-/etc/sysconfig/zabbix-server Type=forking Restart=on-failure PIDFile=/apps/zabbix_server/run/zabbix_server.pid KillMode=control-group ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s TimeoutSec=0 [Install] WantedBy=multi-user.targetzabbix-agent服务文件[root@zabbix-server zabbix]# systemctl cat zabbix-agent # /usr/lib/systemd/system/zabbix-agent.service [Unit] Description=Zabbix Agent After=syslog.target After=network.target [Service] Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_agentd.conf" EnvironmentFile=-/etc/sysconfig/zabbix-agent Type=forking Restart=on-failure PIDFile=/apps/zabbix_server/run/zabbix_agentd.pid KillMode=control-group ExecStart=/apps/zabbix_server/sbin/zabbix_agentd -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s User=zabbix Group=zabbix [Install] WantedBy=multi-user.target #这里同时需要编辑zabbix-agent的配置文件 root@zabbix-server:~# grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_agentd.conf PidFile=/apps/zabbix_server/run/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=Zabbix server
3.2.2 ubuntu2204编译安装zabbix6.0
3.2.2.1 安装编译软件
准备运行环境
root@zabbix-server:~# groupadd --system zabbix root@zabbix-server:~# useradd --system -g zabbix -s /usr/sbin/nologin zabbix root@zabbix-server:~# mkdir -vp /apps/zabbix_server mkdir: created directory '/apps' mkdir: created directory '/apps/zabbix_server' root@zabbix-server:~# mkdir /var/log/zabbix root@zabbix-server:~# chown zabbix.zabbix /var/log/zabbix root@zabbix-server:~# mkdir /apps/zabbix_server/run/ root@zabbix-server:~# chown zabbix.zabbix /apps/zabbix_server/run安装环境软件, 解决依赖关系
root@zabbix-server:~# apt-get install apache2 apache2-bin apache2-data apache2-utils fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors-config libsnmp-base libsodium23 libssh2-1 libtiff5 libxpm4 php-bcmath php-common php-gd php-ldap php-mbstring php-mysql php-xml snmpd ssl-cert libmysqlclient-dev libxml++2.6-dev libxml2-dev libxml2 libsnmp-dev libevent-dev libcurl4-openssl-dev openjdk-8-jdk gcc make上传压缩包, 并解压
root@zabbix-server:~# tar -xf zabbix-6.0.27.tar.gz -C /usr/local/src/ root@zabbix-server:~# cd /usr/local/src/ root@zabbix-server:/usr/local/src# cd zabbix-6.0.27/编译
root@zabbix-server:/usr/local/src/zabbix-6.0.27# ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java --enable-openipmi checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes ..... root@zabbix-server:/usr/local/src/zabbix-6.0.27# make install Making install in src在数据库节点准备数据库
root@mysql:~# apt install mysql-server mysql-client root@mysql:~# vi /etc/mysql/mysql.conf.d/mysqld.cnf bind-address 0.0.0.0 root@mysql:~# systemctl restart mysql root@mysql:~# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database zabbix_server character set utf8mb4 collate utf8mb4_bin; Query OK, 1 row affected (0.00 sec) mysql> create user zabbix@"192.168.194.%" identified by 'xiong.zabbix'; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on zabbix_server.* to zabbix@"192.168.194.%"; Query OK, 0 rows affected (0.01 sec) mysql> set global log_bin_trust_function_creators = 1; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> exit Bye导入数据库
root@zabbix-server:/usr/local/src/zabbix-6.0.27# mysql -uzabbix -pxiong.zabbix -h192.168.194.132 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> quit Bye root@zabbix-server:/usr/local/src/zabbix-6.0.27# cd /usr/local/src/zabbix-6.0.27/database/mysql/ root@zabbix-server:/usr/local/src/zabbix-6.0.27/database/mysql# mysql -uzabbix -pxiong.zabbix -h192.168.194.132 zabbix_server < schema.sql mysql: [Warning] Using a password on the command line interface can be insecure. root@zabbix-server:/usr/local/src/zabbix-6.0.27/database/mysql# mysql -uzabbix -pxiong.zabbix -h192.168.194.132 zabbix_server < images.sql mysql: [Warning] Using a password on the command line interface can be insecure. root@zabbix-server:/usr/local/src/zabbix-6.0.27/database/mysql# mysql -uzabbix -pxiong.zabbix -h192.168.194.132 zabbix_server < data.sql mysql: [Warning] Using a password on the command line interface can be insecure.验证数据库
root@mysql:~# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 16 Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use zabbix_server Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------------------+ | Tables_in_zabbix_server | +----------------------------+ | acknowledges | | actions | | alerts | | auditlog | | autoreg_host | | conditions | .... mysql> set global log_bin_trust_function_creators = 0; Query OK, 0 rows affected, 1 warning (0.00 sec)编辑
zabbix-server服务root@zabbix-server:~# grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log PidFile=/apps/zabbix_server/run/zabbix_server.pid SocketDir=/apps/zabbix_server/run DBHost=192.168.194.132 DBName=zabbix_server DBUser=zabbix DBPassword=xiong.zabbix DBPort=3306 Timeout=4 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1启动
zabbix server服务root@zabbix-server:/apps/zabbix_server# /apps/zabbix_server/sbin/zabbix_server -c /apps/zabbix_server/etc/zabbix_server.conf
3.2.2.2 配置页面
配置
web界面root@zabbix-server:/apps/zabbix_server# mkdir /var/www/html/zabbix root@zabbix-server:/apps/zabbix_server# cd /usr/local/src/zabbix-6.0.27/ui/ root@zabbix-server:/usr/local/src/zabbix-6.0.27/ui# cp -ra * /var/www/html/zabbix root@zabbix-server:/usr/local/src/zabbix-6.0.27/ui# chown www-data:www-data -R /var/www/html/zabbix/访问界面,进去预检测项, 发现会有报错信息。显示如下图。调整参数的文件为:
/etc/php/8.1/apache2/php.ini
需要修改参数
post_max_size 16M max_execution_time 300 max_input_time 300重启服务
root@zabbix-server:/usr/local/src/zabbix-6.0.27/ui# systemctl restart apache2注 : 这里发现提示的
php缺失的功能php gd的那些功能软件包已经安装,但是还是提示失败。但是修改参数, 重启apache2服务之后, 全部又显示正常。
这里需要注意, 如果没有手动修改/var/www/html/zabbix目录权限, 即运行命令chown www-data:www-data -R /var/www/html/zabbix/ , 会提示如下图所示内容, 这里提示手动下载配置文件, 并将配置文件放置于指定目录中

下面参数是ubuntu1805编译zabbix4时需要的安装包,。
root@zabbix-server:~# apt-get install apache2 apache2-bin apache2-data apache2-utils fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapache2-mod-php7.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors4 libsnmp-base libsnmp30 libsodium23 libssh2-1 libtiff5 libwebp6 libxpm4 php-bcmath php-common php-gd php-ldap php-mbstring php-mysql php-xml php7.2-bcmath php7.2-cli php7.2-common php7.2-gd php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml snmpd ssl-cert ttf-dejavu-core libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev openjdk-8-jdk curl libcurl4-openssl-dev gcc make
3.2.3 centos7, zabbix4
3.2.3.1 安装编译软件
准备环境
[root@zabbix-server ~]# groupadd -g 1001 zabbix [root@zabbix-server ~]# useradd -u 1001 -g 1001 zabbix #准备软件存放目录 [root@zabbix-server zabbix-6.0.27]# mkdir -vp /apps/zabbix_server mkdir: created directory '/apps' mkdir: created directory '/apps/zabbix_server' #准备日志存放目录 [root@zabbix-server ~]#mkdir /var/log/zabbix [root@zabbix-server ~]#chown zabbix.zabbix /var/log/zabbix #准备软件pid文件存放目录 [root@zabbix-server ~]# mkdir /apps/zabbix_server/run/ [root@zabbix-server ~]# chown zabbix.zabbix /apps/zabbix_server/run解决依赖关系
[root@zabbix-server ~]# yum install gcc make libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel OpenIPMI libevent-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel pcre-devel php-json php-gd php-ldap php-mysqlnd php-xml安装包上传至服务器中并解压
[root@zabbix-server ~]# tar -xf zabbix-4.4.10.tar.gz -C /usr/local/src/ [root@zabbix-server ~]# cd /usr/local/src/zabbix-4.4.10/编译
[root@zabbix-server zabbix-4.4.10]# ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java --enable-openipmi [root@zabbix-server zabbix-4.4.10]#make install数据库准备
[root@mysql ~]# yum install mariadb mariadb-server -y [root@mysql ~]# mysql MariaDB [zabbix_server]> create database zabbix_server_make character set utf8 collate utf8_bin; Query OK, 1 row affected (0.00 sec) MariaDB [zabbix_server]> grant all privileges on zabbix_server_make.* to zabbix@"192.168.194.%" identified by 'xiong.zabbix' -> ; Query OK, 0 rows affected (0.00 sec)导入数据库数据
[root@zabbix-server mysql]# pwd /usr/local/src/zabbix-4.4.10/database/mysql [root@zabbix-server mysql]# ls data.sql images.sql Makefile Makefile.am Makefile.in schema.sql [root@zabbix-server mysql]# mysql -uzabbix -pxiong.zabbix -h192.168.194.145 zabbix_server_make < schema.sql [root@zabbix-server mysql]# mysql -uzabbix -pxiong.zabbix -h192.168.194.145 zabbix_server_make < images.sql [root@zabbix-server mysql]# mysql -uzabbix -pxiong.zabbix -h192.168.194.145 zabbix_server_make < data.sql验证数据库信息
MariaDB [zabbix_server]> use zabbix_server_make; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [zabbix_server_make]> show tables; +------------------------------+ | Tables_in_zabbix_server_make | +------------------------------+ | acknowledges | | actions | | alerts | | application_discovery | | application_prototype | | application_template |编辑zabbix server配置文件
[root@zabbix-server zabbix-4.4.10]# grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log PidFile=/apps/zabbix_server/run/zabbix_server.pid SocketDir=/apps/zabbix_server/run DBHost=192.168.194.145 DBName=zabbix_server_make DBUser=zabbix DBPassword=xiong.zabbix DBPort=3306 Timeout=4 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1启动
zabbix server[root@zabbix-server php]# /apps/zabbix_server/sbin/zabbix_server -c /apps/zabbix_server/etc/zabbix_server.conf /apps/zabbix_server/sbin/zabbix_server -c /apps/zabbix_server/etc/zabbix_server.conf
3.2.3.2 配置页面
配置
web页面[root@zabbix-server mysql]# mkdir /var/www/html/zabbix [root@zabbix-server mysql]# cd /usr/local/src/zabbix-4.4.10/frontends/php/ [root@zabbix-server php]# cp -ra * /var/www/html/zabbix/ [root@zabbix-server php]# chown apache:apache -R /var/www/html/zabbix/直接访问页面,步骤基本和之前一样,这里需要注意, 底层修改php的文件为
/etc/php.ini,页面中的时区也是在这个文件中更改。后续步骤基本和之前
CentOS8编译一致
3.3 页面中文设置
3.3.1 ubuntu软件包安装环境说明
3.3.1.1 页面中文显示
由于ubuntu系统目前未安装中文语言环境所以无法选择中文显示

ubuntu系统安装中文语言环境#安装简体中文语言环境 root@zabbix-server:/etc/zabbix# apt-get install language-pack-zh* #增加中文语言环境变量 root@zabbix-server:~# cat /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" LANG="zh_CN.UTF-8" #重新设置本地配置 root@zabbix-server:/etc/zabbix# dpkg-reconfigure locales Generating locales (this might take a while)... en_US.UTF-8... done zh_CN.UTF-8... done zh_HK.UTF-8... done zh_SG.UTF-8... done zh_TW.UTF-8... done Generation complete.重新设置本地配置会显示如下:


之后直接点击
ok即可验证
web页面root@zabbix-server:~# systemctl restart apache2
选择之后点击
update即可
3.3.1.2 监控项与乱码
虽然页面已经设置为中文, 但是监控项里面的部分显示内容还是为乱码

因为需要另外上传字体文件。步骤如下:
在windows的字体中寻找适当的中文显示字体。具体位置
控制面板-->外观和个性化-->字体。(另外可以在win+R中直接输入fonts可以进入同样的界面)
这里随机选择一个中文字体复制到桌面 , 然后传到
zabbix server服务器上面将字体上传至
zabbix web目录中 , 具体路径为/ZABBIX/WEB/PATH/assets/fonts,如下root@zabbix-server:~# ll /usr/share/zabbix/assets/fonts/ total 9536 drwxr-xr-x 2 root root 4096 Mar 12 06:53 ./ drwxr-xr-x 5 root root 4096 Mar 12 05:18 ../ lrwxrwxrwx 1 root root 38 Mar 12 05:19 graphfont.ttf -> /etc/alternatives/zabbix-frontend-font -rw-r--r-- 1 root root 9755440 Mar 12 06:53 simhei.ttf root@ubuntu2204:~#ll /etc/alternatives/zabbix-frontend-font lrwxrwxrwx 1 root root 47 Mar 12 05:19 /etc/alternatives/zabbix-frontend-font -> /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf在页面中原本识别的便是
graphfont.ttf字体这个字体文件为链接文件:
usr/share/zabbix/assets/fonts/graphfont.ttf-->/etc/alternatives/zabbix-frontend-font-->/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf直接将最后的软连接调整为上传的字体即可
root@zabbix-server:~# ln -sf /usr/share/zabbix/assets/fonts/simhei.ttf /etc/alternatives/zabbix-frontend-font调整之后不需要重启服务, 直接访问页面即可

3.3.2 centos编译环境说明
Centos8安装zabbix6.0时 ,设置语言时发现无法设置简体中文,原因为缺少简体中文语言包。
3.3.2.1 页面中文显示
安装语言包
[root@zabbix-server ~]# yum install glibc-langpack-zh.x86_64检测安装的中文语言包
[root@zabbix-server ~]# localectl list-locales | grep zh zh_CN zh_CN.gb18030 zh_CN.gbk zh_CN.utf8 zh_HK zh_HK.utf8 zh_SG zh_SG.gbk zh_SG.utf8 zh_TW zh_TW.euctw zh_TW.utf8登录
zabbix控制台设置语言为简体中文
如果需要设置系统默认语言为简体中文,可以使用如下命令设置,然后重启操作系统。
localectl set-locale LANG=zh_CN.utf8
3.3.2.2 监控项与乱码
这里与软件包安装一样的原因, 但是由于是编译环境,整体的调整方式和之前不太一样
将从
windows中下载的字体上传至服务器中[root@zabbix-server ~]# cd /var/www/html/zabbix/assets/fonts/ [root@zabbix-server fonts]# ls DejaVuSans.ttf simhei.ttf修改对应文件信息 ,
[root@zabbix-server fonts]# cd /var/www/html/zabbix/ [root@zabbix-server zabbix]# grep -nri "DejaVuSans" ./* Binary file ./assets/fonts/DejaVuSans.ttf matches ./include/defines.inc.php:88:define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name ./include/defines.inc.php:134:define('ZBX_FONT_NAME', 'DejaVuSans'); [root@zabbix-server zabbix]# vi ./include/defines.inc.php ... #define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name define('ZBX_GRAPH_FONT_NAME', 'simhei'); // font file name .... #define('ZBX_FONT_NAME', 'DejaVuSans'); define('ZBX_FONT_NAME', 'simhei'); ...修改之后直接访问页面即可
3.3.3 centos7 zabbix4.0
这个版本的zabbix页面可以直接设置中文


页面中监控项的乱码调整如下 , 需要现将字体上传至/usr/share/zabbix/assets/fonts/目录下面
[root@centos7 fonts]# pwd
/usr/share/zabbix/assets/fonts
[root@centos7 fonts]# ll
total 0
lrwxrwxrwx 1 root root 33 Mar 14 04:00 graphfont.ttf -> /etc/alternatives/zabbix-web-font
[root@centos7 fonts]# ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx 1 root root 38 Mar 14 04:00 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@centos7 fonts]# pwd
/usr/share/zabbix/assets/fonts
[root@centos7 fonts]# ln -sf /usr/share/zabbix/assets/fonts/simhei.ttf /etc/alternatives/zabbix-web-font 3.4 配置文件
zabbix配置文件有两种 :
服务器端配置文件(
/etc/zabbix/zabbix_server.conf)客户端配置文件(
/etc/zabbix/zabbix_agentd.conf)zabbix代理配置文件(/etc/zabbix/zabbix_proxy.conf)
3.4.1 zabbix_server.conf
服务器端配置文件zabbix_server.conf常用配置参数 :
3.4.2 zabbix_agent.conf
客户端配置文件zabbix_agentd.conf常用配置参数 :
4. zabbix 监控入门基础
4.1 监控linux系统
4.1.1 基本配置
zabbixagent安装root@zabbix-agent:~# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu2 root@zabbix-agent:~# dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb root@zabbix-agent:~# apt update root@zabbix-agent:~# apt install zabbix-agentzabbixagent配置文件root@zabbix-agent:~# cat /etc/zabbix/zabbix_agentd.conf #指定zabbix server主机IP Server=192.168.194.129 #本地监听端口 ListenPort=10050 # 被动状态时默认启动的实例数(进程数), 为0 不监听任何端口 StartAgents=5 #区分大小写,且在zabbix server唯一的值 Hostname=192.168.194.132重启
zabbixagentroot@zabbix-agent:~# systemctl restart zabbix-agent root@zabbix-agent:~# systemctl status zabbix-agent ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2024-03-12 07:26:38 UTC; 10s ago Docs: man:zabbix_agentd Main PID: 1729 (zabbix_agentd) Tasks: 8 (limit: 2196) Memory: 3.8M CPU: 13ms CGroup: /system.slice/zabbix-agent.service ├─1729 /usr/sbin/zabbix_agentd --foreground ├─1730 "/usr/sbin/zabbix_agentd: collector [idle 1 sec]" ├─1731 "/usr/sbin/zabbix_agentd: listener #1 [waiting for connection]" ├─1732 "/usr/sbin/zabbix_agentd: listener #2 [waiting for connection]" ├─1733 "/usr/sbin/zabbix_agentd: listener #3 [waiting for connection]" ├─1734 "/usr/sbin/zabbix_agentd: listener #4 [waiting for connection]" ├─1735 "/usr/sbin/zabbix_agentd: listener #5 [waiting for connection]" └─1736 "/usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]" Mar 12 07:26:38 ubuntu2204 systemd[1]: Started Zabbix Agent. Mar 12 07:26:38 ubuntu2204 zabbix_agentd[1729]: Starting Zabbix Agent [192.168.194.132]. Zabbix 5.0.17 (revision 0a4ac3d> Mar 12 07:26:38 ubuntu2204 zabbix_agentd[1729]: Press Ctrl+C to exit.验证
zabbix agent验证
zabbixagent进程是否存在、端口是否监听以及日志是否异常root@zabbix-agent:~# ps -ef | grep zabbix zabbix 1729 1 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd --foreground zabbix 1730 1729 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec] zabbix 1731 1729 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection] zabbix 1732 1729 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection] zabbix 1733 1729 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection] zabbix 1734 1729 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #4 [waiting for connection] zabbix 1735 1729 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #5 [waiting for connection] zabbix 1736 1729 0 07:26 ? 00:00:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec] root 1740 1137 0 07:27 pts/0 00:00:00 grep --color=auto zabbix root@zabbix-agent:~# pstree -p 1729 zabbix_agentd(1729)─┬─zabbix_agentd(1730) ├─zabbix_agentd(1731) ├─zabbix_agentd(1732) ├─zabbix_agentd(1733) ├─zabbix_agentd(1734) ├─zabbix_agentd(1735) └─zabbix_agentd(1736) root@zabbix-agent:~# ss -tnl | grep 10050 LISTEN 0 4096 0.0.0.0:10050 0.0.0.0:* LISTEN 0 4096 [::]:10050 [::]:* root@zabbix-agent:~# tail -n5 /var/log/zabbix-agent//zabbix_agentd.log 1733:20240312:072638.791 agent #4 started [listener #3] 1735:20240312:072638.791 agent #6 started [listener #5] 1736:20240312:072638.791 agent #7 started [active checks #1] 1734:20240312:072638.792 agent #5 started [listener #4] 1736:20240312:072638.792 active check configuration update from [127.0.0.1:10051] started to fail (cannot connect to [[127.0.0.1]:10051]: [111] Connection refused)
4.1.2 zabbix server页面配置
在zabbix server中添加被监控主机
在下面界面中直接点击创建主机

主机名称需要与
zabbixagent中对应, 并添加新的interfaces,群组中如果输入的群组本身不存在, 则直接创建一个新的群组。
在zabbix对主机实现监控 , 可以通过添加模板或者添加监控实现对指定的监控目标进行数据采集, 通常采用先创建模板,然后再将模板关联至主机的方式
点击该主机, 重新配置模板 ,之后点击更新。选择符合当前主机的监控项目的模板, 如对Linux系统监控可以关联
zabbix自带的Linux by Zabbix agent, 如下在搜索框输入Linux关键字后会自带匹配名称的模板, 直接点击即可选择
需要等待几分钟(具体看模板中监控项的数据采集间隔时间)之后 , 主机的状态才会变成绿色或者红色, 绿色表示zabbix server对zabbix agent有权限进行数据采集并且当前通信正常, 红色则表示通信异常, 通信异常会有多种原因。具体可以看相关日志或者到时候点击红色方框会有相关报错显示。

经过一段时间的数据采集后, 验证zabbix server 是否有刚添加的主机的监控数据和图形 , 图形显示如下:

4.2 监控tomcat
4.2.1 介绍
Java虚拟机(JVM)具有内置的插装,使您能够使用JMX监视和管理它。您还可以使用JMX监视工具化的应用程序。
监控原理 : 当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavagateway收到请求后使用"JMXmanagementAPI"去查询特定的应用程序,而前提是应用程序这端在开启时需要"-Dcom.sun.management.jmxremote"参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据。

从上面的原理图中可以看出,配置Zabbix监控Java应用程序的关键点在于 : 配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等。
4.2.2 Tomcat服务器上安装JDK包
使用Oracle官网的JDK 8的rpm包
官方下载JDK地址 :https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装下载下来的
JDK 8的rpm包[root@tomcat ~]# yum install jdk-8u401-linux-x64.rpm配置
java全局变量[root@tomcat ~]# cat /etc/profile.d/jdk.sh #设置环境变量 export JAVA_HOME=/usr/java/default export PATH=$JAVA_HOME/bin:$PATH [root@tomcat ~]# . /etc/profile.d/jdk.sh # 使环境变量生效查看
JDK版本[root@tomcat ~]# java -version java version "1.8.0_401" Java(TM) SE Runtime Environment (build 1.8.0_401-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
4.2.3 下载安装二进制tomcat包
从官网下载
tomcat二进制安装包 : http://tomcat.apache.org/。下载路径 :https://archive.apache.org/dist/tomcat/

解包,指定解压的目录,并创建软链接
[root@tomcat ~]# tar -xf apache-tomcat-10.0.8.tar.gz -C /usr/local/ [root@tomcat ~]# ln -sv /usr/local/apache-tomcat-10.0.8/ /usr/local/tomcat ‘/usr/local/tomcat’ -> ‘/usr/local/apache-tomcat-10.0.8/’配置
tomcat参数:vim /usr/local/tomcat/bin/catalina.shCATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote #启用远程监控JMX -Dcom.sun.management.jmxremote.port=12345 # 默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可 -Dcom.sun.management.jmxremote.authenticate=false # 不使用用户名密码 -Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证 -Djava.rmi.server.hostname=192.168.194.145" #tomcat主机自己的IP地址,不要写zabbix服务器的地址
以
ROOT身份启动Tomcat服务(不推荐,账号破解后就会被黑客以root身份做其他服务的破坏)[root@tomcat ~]# /usr/local/tomcat/bin/catalina.sh start Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/default Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.194.145 Tomcat started. [root@tomcat ~]# ss -tnlp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* users:(("sshd",pid=932,fd=3)) LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1024,fd=13)) LISTEN 0 50 [::]:43789 [::]:* users:(("java",pid=1896,fd=22)) LISTEN 0 100 [::]:8080 [::]:* users:(("java",pid=1896,fd=59)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=932,fd=4)) LISTEN 0 50 [::]:12345 [::]:* users:(("java",pid=1896,fd=21)) LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1024,fd=14)) LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:* users:(("java",pid=1896,fd=66)) LISTEN 0 50 [::]:44550 [::]:* users:(("java",pid=1896,fd=20))为了
tomcat服务安全起见,最好不要用root用户登录,防止被破解之后存在安全隐患,建议自己新建一个普通用户进行登录[root@tomcat ~]# useradd -r java #创建一个系统账号,此时就没有家目录 [root@tomcat ~]# chown -R java.java /usr/local/tomcat/ #将tomcat目录下的文件所有者和所属组都进行修改 [root@tomcat ~]# su - java -c /usr/local/tomcat/bin/startup.sh #以java用户形式进行启动tomcat服务 Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/default Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started.
网页验证此时的
tomcat服务已经可以访问
在
oracle jdk download官网下载windows版本的JDK,安装并验证此时tomcat安装结果。官网下载地址 :https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

在安装好的windows版本的JDK后,打开指定的执行程序
jsconsole.exe进行验证 :
打开对应
jconsole.exe
连接进去之后有
tomcat服务的信息即可,说明安装正确。
4.2.4 安装zabbix-java-gateway包
这里单独找一台虚拟机安装zabbix-java-gateway包。
java gateway是一个独立于zabbix server和zabbix agent的组件, 也就是java gateway可以是单独的一台服务器, 但是也可以和zabbix server或者zabbix agent共用一台服务, 前提是单口不要配置冲突了。
本次单独用一台单独的服务器, IP 地址为192.168.194.130
4.2.4.1 软件包安装
安装对应的rpm包
[root@java-gateway ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm Retrieving https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm warning: /var/tmp/rpm-tmp.xwE22Z: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-release-6.0-4.el7 ################################# [100%] [root@java-gateway ~]# yum install zabbix-java-gateway编辑对应的配置文件 , 主要配置如下,所有配置均保持默认即可。
[root@java-gateway ~]# grep "^[a-Z]" /etc/zabbix/zabbix_java_gateway.conf LISTEN_IP="0.0.0.0" LISTEN_PORT=10052 PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid" START_POLLERS=5启动
zabbix-java-gateway服务[root@java-gateway ~]# systemctl start zabbix-java-gateway配置
zabbix-server服务。开启java gateway配置[root@zabbix-server ~]# vi /apps/zabbix_server/etc/zabbix_server.conf JavaGateway=192.168.194.130 JavaGatewayPort=10052 StartJavaPollers=20在
zabbix-server服务器上重启zabbix-server重启服务即可[root@zabbix-server ~]# systemctl restart zabbix-server
4.2.4.2 编译安装
ubuntu2204安装依赖包
root@ubuntu2204:/usr/local/src/zabbix-6.0.27# apt install openjdk-8-jdk gcc make编译
./configure --prefix=/apps/zabbix_server/ --enable-java --with-net-snmp --with-mysql --with-ssh2
Centos8安装依赖包
[root@centos8 zabbix_java]# yum install gcc make libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmach php-mbstring mariadb-devel java-1.8.0-openjdk-devel -y编译
./configure --prefix=/apps/zabbix_server/ --enable-java --with-net-snmp --with-mysql --with-ssh2
编译完成之后启动文件在如下位置 , 其中setting.sh为java gateway的配置文件
[root@centos8 zabbix_java]# pwd
/apps/zabbix_server/sbin/zabbix_java
[root@centos8 zabbix_java]# ls
bin lib settings.sh shutdown.sh startup.shsystemd启动文件如下
[root@java-gateway ~]# systemctl cat zabbix-java-gateway
# /usr/lib/systemd/system/zabbix-java-gateway.service
[Unit]
Description=Zabbix Java Gateway
After=syslog.target
After=network.target
[Service]
Type=forking
KillMode=process
PIDFile=/run/zabbix/zabbix_java_gateway.pid
ExecStart=/usr/sbin/zabbix_java_gateway_startup
ExecStop=/usr/sbin/zabbix_java_gateway_shutdown
SuccessExitStatus=143
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target4.2.5 配置zabbix页面
登录页面之后,在配置中点击创建主机

在模板中添加
JXM模板
添加对应
jmx监听端口, 之后点击添加即可
如果需要监听
agent服务, 需要在tomcat中安装zabbix-agent软件, 配置zabbix-agent,并开启之后。在页面中添加对应的监听端口以及添加模板即可。添加完成等对应JMX图标亮起即可

在监测中点击查看对应数据。可以看到这里可以正常获取对应数据


参考链接
保姆级Zabbix部署教程 , 十分详细 , 收藏! (qq.com)
Zabbix之二----Zabbix监控Tomcat服务 - 一叶知秋~~ - 博客园 (cnblogs.com)