千家信息网

如何部署zabbix监控服务器?

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,一、zabbix运行架构Zabbix是一个企业级的分布式开源监控解决方案。它能够监控各种服务器的健康性、网络的稳定性以及各种应用系统的可靠性。当监控出现异常时,Zabbix通过灵活的告警策略,可以为任
千家信息网最后更新 2026年11月02日如何部署zabbix监控服务器?

一、zabbix运行架构
Zabbix是一个企业级的分布式开源监控解决方案。它能够监控各种服务器的健康性、网络的稳定性以及各种应用系统的可靠性。当监控出现异常时,Zabbix通过灵活的告警策略,可以为任何事件配置基于邮件、短信、微信等告警机制。而这所有的一切,都可以通过Zabbix提供的web界面进行配置和操作,基于web的前端页面还提供了出色的报告和数据可视化功能。这些功能和特性使我们运维人员可以非常轻松的搭建一套功能强大的运维监控管理平台。

Zabbix的运行架构如下:

从上面的运行架构图可以看到,Zabbix主要有几个组件构成,分别如下:
1、Zabbix Server
Zabbix Server是Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。它主要负责接收客户端发送的报告和信息,同时,所有配置、统计数据及配置操作数据均由其组织进行。

2、Zabbix Database Storage
主要用于存储数据,所有配置信息和Zabbix收集到的数据都被存储在数据库中。可以使用MySQL、oracle、SQLite等。

3、Zabbix Web界面
这是Zabbix提供的GUI接口,通常(但不一定)与Zabbix Server运行在同一台物理机器上。

4、Zabbix Proxy 代理服务器
这是一个可选组件,常用于分布式监控环境中,代理Server可以替Zabbix收集新能和可用性数据,汇总后统一发往Zabbix Server端。

5、Zabbix Agent 监控代理
Zabbix Agent部署在被监控的主机上,能够主动监控本地资源和应用程序,并负责收集数据发往Zabbix Server端或Zabbix Proxy端。
二、Zabbix监控术语
在Zabbix监控系统中,有一些常用的术语,下面是简单的介绍。

1、主机(host)
表示要监控的一台服务器或者网络设备,可以通过IP或主机名指定。

2、主机组(host group)
主机的逻辑组:它包含主机和模板,但同一个主机组内的主机和模板没有任何直接的关联;主机组通常在给用户或用户组指派监控权限时使用。

3、监控项(item)
表示一个监控的具体对象,例如监控服务器的CPU负载、磁盘空间等,item是Zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"来标识。

4、触发器(trigger)
其实就是一个监控阈值表达式,用于评估某监控对象接收到的数据是否在合理范围内;如果接收的数据大于阈值时,触发器的状态将从"OK"转变为"Problem",当接收到的数据低于阈值时,又转变为"OK"状态。

5、应用集(Applications)
一组监控项组成的逻辑集合。

6、动作(action)
指对于监控中出现的问题事先定义的处理方法,例如发送通知、何时执行操作、执行的频率等等。

7、报警媒介类型(media)
表示发送通知的手段,告警通知的途径,如Email、Jabber或SMS等。

8、模板(template)
一组可以被应用到一个或多个主机上的实现集合,一个模板通常包含了应用集、监控项、触发器、图形、聚合图形、自动发现规则、web场景等几个项目;模板可以直接链接到某个主机。

模板是学习zabbix的一个难点和重点,为了实现批量、自动化监控,通常会将具有相同特征的监控项汇总到模板中,然后在主机中直接引用即可,实现快速监控部署。
三、部署Zabbix监控平台
Zabbix的监控平台部署比较简单,前提是准备好LNMP或LAMP环境
我这里将从部署LNMP环境开始配置。

注:我这里将所有服务部署在同一台服务器上,仅仅是一个简单的监控架构,并没有部署 zabbix proxy等。

Zabbix官方的相关链接:
Zabbix 4.2 配置文档:https://www.zabbix.com/documentation/4.2/manual/it_services
所需软件包:https://pan.baidu.com/s/1UzzoFUuR84U2ccDf1qW2UQ
提取码:grhh
1、部署Nginx

[root@zabbix /]# mkdir /zabbix           # 个人习惯,可忽略[root@zabbix /]# cd zabbix/[root@zabbix zabbix]# rz   # shangchaun上传所需源码包[root@zabbix zabbix]# tar zxf nginx-1.14.0.tar.gz [root@zabbix zabbix]# cd nginx-1.14.0/[root@zabbix nginx-1.14.0]# yum -y install pcre-devel openssl-devel zlib-devel[root@zabbix zabbix]# cd nginx-1.14.0/[root@zabbix nginx-1.14.0]# useradd -s /sbin/nologin -M www[root@zabbix nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module  --with-http_sub_module --with-http_flv_module  --with-http_mp4_module  --with-pcre=/usr/src/pcre-8.39 --with-zlib=/usr/src/zlib-1.2.8 --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www && make && make install[root@zabbix /]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/[root@zabbix /]# vim /usr/local/nginx/conf/nginx.conf   server {        listen       80;        location / {            root   html;            index index.php index.html index.htm;    #添加index.php        }                #注意删除下面段落的注释符号        location ~ \.php$ {            root           html;            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;            include        fastcgi.conf;   #修改此行        }[root@zabbix /]# netstat -anput |grep  80tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      46551/nginx: master [root@zabbix /]# cat > /usr/local/nginx/html/index.php << EOF     # 创建测试文件>  phpinfo();> ?>> EOF

2、部署PHP

[root@zabbix /]# yum -y install libxml2-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel           # 安装依赖包[root@zabbix /]# cd /zabbix/[root@zabbix zabbix]# tar zxf libmcrypt-2.5.7.tar.gz          [root@zabbix zabbix]# cd libmcrypt-2.5.7/[root@zabbix libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install      # 编译并安装[root@zabbix libmcrypt-2.5.7]# cd ..[root@zabbix zabbix]# tar zxf php-5.6.27.tar.gz [root@zabbix php-5.6.27]# ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=mysqlnd  --with-mysqli=mysqlnd --with-gd  --with-iconv --with-libxml-dir=/usr --with-mhash  --with-mcrypt=/usr/local/libmcrypt  --with-config-file-scan-dir=/etc/php.d  --with-bz2  --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip  --enable-soap  --without-pear  --with-gettext  --enable-session --with-curl && make && make install[root@zabbix php-5.6.27]# cp php.ini-production /etc/php.ini[root@zabbix php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm[root@zabbix php-5.6.27]# chmod +x /etc/init.d/php-fpm [root@zabbix php-5.6.27]# chkconfig --add php-fpm[root@zabbix php-5.6.27]# chkconfig php-fpm on[root@zabbix php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf[root@zabbix php-5.6.27]# cd /[root@zabbix /]# sed -i 's/pm.max_children = 5/pm.max_children = 50/g' /usr/local/php5.6/etc/php-fpm.conf[root@zabbix /]# sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /usr/local/php5.6/etc/php-fpm.conf[root@zabbix /]# sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /usr/local/php5.6/etc/php-fpm.conf[root@zabbix /]# sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 35/g' /usr/local/php5.6/etc/php-fpm.conf[root@zabbix /]# service php-fpm start     # 启动phpStarting php-fpm  done[root@zabbix /]# netstat -anput | grep 9000tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      60347/php-fpm: mast 

客户端访问定义的php页面:

3、安装及配置MySQL数据库

[root@zabbix ~]# sh mysql.sh           # 执行脚本,等待一会出现如下提示表示安装成功Starting MySQL. SUCCESS! mysql: [Warning] Using a password on the command line interface can be insecure.[root@zabbix ~]# mysql -uroot -p123        #登录MySQLmysql> create database zabbix character set utf8;mysql> grant all on zabbix.* to zabbix@'localhost' identified by '123.com';mysql> grant all on zabbix.* to zabbix@'192.168.171.%' identified by '123.com';mysql> exit

4、部署zabbix服务

[root@zabbix zabbix]# tar zxf fping-3.12.tar.gz[root@zabbix zabbix]# tar zxf zabbix-3.2.1.tar.gz [root@zabbix zabbix]# cd fping-3.12/[root@zabbix fping-3.12]# ./configure && make && make install[root@zabbix fping-3.12]# cd ../zabbix-3.2.1/[root@zabbix zabbix-3.2.1]# useradd -M -s /sbin/nologin zabbix[root@zabbix zabbix-3.2.1]# chown zabbix:zabbix /usr/local/sbin/fping [root@zabbix zabbix-3.2.1]# yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh3-devel[root@zabbix zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi && make && make install#--enable-java:方便后续监控 tomcat 程序所用#--with-openipmi:用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、风扇工作状态、电源供应等[root@zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/[root@zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/#导入zabbix数据到MySQL,注意导入的顺序,如果导入后返回提示信息,可忽略,是因为导入的命令将密码展示在了终端[root@zabbix zabbix-3.2.1]# pwd/zabbix/zabbix-3.2.1[root@zabbix zabbix-3.2.1]# cd  database/mysql/[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < schema.sql mysql: [Warning] Using a password on the command line interface can be insecure.[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < images.sql mysql: [Warning] Using a password on the command line interface can be insecure.[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < data.sql mysql: [Warning] Using a password on the command line interface can be insecure.[root@zabbix mysql]# chown -R zabbix:zabbix /usr/local/zabbix/

5、优化zabbix并启动

#修改zabbix配置文件[root@zabbix /]# sed -i 's/# ListenPort=10051/ListenPort=10051/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/LogFile=\/tmp\/zabbix_server.log/LogFile=\/usr\/local\/zabbix\/logs\/zabbix_server.log/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/# PidFile=\/tmp\/zabbix_server.pid/PidFile=\/usr\/local\/zabbix\/logs\/zabbix_server.pid/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/# DBHost=localhost/DBHost=localhost/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/# DBPassword=/DBPassword=123.com/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/# DBSocket=\/tmp\/mysql.sock/DBSocket=\/usr\/local\/mysql\/mysql.sock/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/# DBPort=3306/DBPort=3306/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/# FpingLocation=\/usr\/sbin\/fping/FpingLocation=\/usr\/local\/sbin\/fping/g' /usr/local/zabbix/etc/zabbix_server.conf[root@zabbix /]# sed -i 's/# LogSlowQueries=0/LogSlowQueries=3000/g' /usr/local/zabbix/etc/zabbix_server.conf#如果数据库名称和数据库用户没有和我创建的一样,那么还需要更改以下两项#DBName=zabbix     #数据库名称#DBUser=zabbix     #登录数据库的用户名[root@zabbix /]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf[root@zabbix /]# ldconfig             # 刷新上面更改的配置[root@zabbix /]# mkdir /usr/local/zabbix/logs[root@zabbix /]# chown -R zabbix:zabbix /usr/local/zabbix/[root@zabbix /]# cd /zabbix/zabbix-3.2.1/misc/init.d/fedora/core[root@zabbix core]# cp zabbix_agentd /etc/init.d/[root@zabbix core]# cp zabbix_server /etc/init.d/[root@zabbix core]# sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server [root@zabbix core]# sed -i 's/PIDFILE=\/tmp\/$BINARY_NAME.pid/PIDFILE=\/usr\/local\/zabbix\/logs\/$BINARY_NAME.pid/g' /etc/init.d/zabbix_server [root@zabbix core]# /etc/init.d/zabbix_server start         #启动zabbix,也可以执行"zabbix-server"来启动 Reloading systemd:                                         [  OK  ]Starting zabbix_server (via systemctl):                    [  OK  ][root@zabbix core]# netstat -anput | grep 10051tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      74199/zabbix_server [root@zabbix core]# cd /zabbix/zabbix-3.2.1/frontends/[root@zabbix frontends]# cp -r php/ /usr/local/nginx/html/zabbix

6、client访问nginx代理以便配置zabbix
访问Nignx服务器的IP/zabbix即可,它会自动跳转到下面的页面:


上述所显示报错大概是php的配置项不符合其要求:

[root@zabbix /]# sed -i 's/post_max_size = 8M/post_max_size =16M/g' /etc/php.ini [root@zabbix /]# sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini [root@zabbix /]# sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.ini [root@zabbix /]# sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/g' /etc/php.ini [root@zabbix /]# sed -i 's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g' /etc/php.ini [root@zabbix /]# service php-fpm restart             # 重启服务Gracefully shutting down php-fpm . doneStarting php-fpm  done





又报错,提示无法创建配置文件,让我们手动下载配置文件并上传到指定的目录,那就点击下载

[root@zabbix /]# ls /usr/local/nginx/html/zabbix/conf/zabbix.conf.php/usr/local/nginx/html/zabbix/conf/zabbix.conf.php


输入zabbix用户名及密码进行登录(默认用户名:admin,密码:zabbix):


7、解决后续制作图表的中文乱码问题

[root@zabbix ~]# cd /usr/local/nginx/html/zabbix/fonts/    #切换至该目录[root@zabbix fonts]# rz[root@zabbix fonts]# lsDejaVuSans.ttf  simkai.ttf[root@zabbix fonts]# sed -i 's/DejaVuSans/simkai/g' /usr/local/nginx/html/zabbix/include/defines.inc.php 
监控 数据 配置 主机 服务 服务器 模板 用户 数据库 信息 应用 架构 代理 运行 功能 密码 对象 平台 文件 核心 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南真二互联网科技有限公司 互联网 科技公司 北京互联网科技 宜安科技 互联网金融 互联网科技ppt模板 深圳期待互联网科技 卫星互联网科技股票 博兴的互联网电子科技公司 江苏南京365互联网科技 剑昆互联网络科技有限公司临桂 广州恒生互联网科技有限 互联网科技创新服务 湖南一路畅行互联网科技 崇明区互联网教育科技售后服务 杭州壁岐互联网科技有限公司 工业互联网等科技实现智能化赋能 互联网科技大赛获奖感言 雨阳互联网卡科技有限公司 福建互联网展示科技馆设计 山东亿川互联网科技有限责任公司 互联网科技金融公司 互联网金融公司科技 鑫亿盛互联网科技 互联网科技上市公司 安控科技rtu产品工业互联网 银川新华互联网科技职业技术培训学校图片 互联网软件和科技 武汉健翔互联网络科技有限公司 世界互联网领先科技成果获奖 互联网的黑科技实验室
0