zabbix部署及nginx的监控

官方安装教程:https://www.zabbix.com/documentation/7.0/zh/manual/installation/getting_zabbix

(一)安装 Zabbix 软件库

1.安装软件

bash 复制代码
root@ubuntu10:~  wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/

root@ubuntu10:~  dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb

root@ubuntu10:~  apt update 

安装zabbix server 和 前端工具以及代理agent

bash 复制代码
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

安装数据库

bash 复制代码
apt install mysql-server -y

定制数据库

bash 复制代码
mysql> 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> quit; 

导入初始架构和数据,系统将提示您输入新创建的密码。(在桌面版可以,如果是服务器版本需要在 msyql数据库中,为该用户增加 SUPER权限即可 GRANT SUPER ON *.* TO zabbix@localhost;)

bash 复制代码
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix 

将刚才为了导入数据库文件能力的 属性移除

bash 复制代码
mysql
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit; 

2.配置zabbix连接数据库

编辑配置文件 /etc/zabbix/zabbix_server.conf

bash 复制代码
vim /etc/zabbix/zabbix_server.conf
### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
DBPassword=password            #增加这一条属性

3.前端的配置

删除默认的nginx首页配置文件

bash 复制代码
rm -f /etc/nginx/sites-enabled/default

定制zabbix的配置文件

bash 复制代码
vim /etc/nginx/conf.d/zabbix.conf
server {
        listen          80;
#        server_name     example.com;
......

修改php配置

bash 复制代码
vim /etc/zabbix/php-fpm.conf
......
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai
#增加中国的时区配置

重启服务

bash 复制代码
root@ubuntu10:~  systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
root@ubuntu10:~  systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm     #开机自启

访问10.0.0.10

注意:这里面的语言包需要提前安装,中文包在安装的时候,就已经安装好了。

CentOS安装中文包,再修改语言,否则无法选择

yum -y install langpacks-zh_CN

Ubuntu安装下面中文包

apt -y install language-pack-zh-hans

安装之后需要重启才能生效

默认的用户名"Admin",在Password中输入默认密码"zabbix"

4.中文问题

点击图形后,进入到图形界面,会发生字体异常 -- 不是程序的问题,仅仅是字符集的问题;所以我们就需要对zabbix的字体进行调整,把我们宿主机上的某些字体上传到Zabbix内部,并且让其生效

上传windows中文字符集

bash 复制代码
root@ubuntu10:~  ls
SIMKAI.TTF  snap  zabbix-release_latest_7.0+ubuntu24.04_all.deb

转移字符集

bash 复制代码
root@ubuntu10:~  cd /usr/share/zabbix/assets/fonts
root@ubuntu10:/usr/share/zabbix/assets/fonts  mv graphfont.ttf graphfont.ttf-bak
root@ubuntu10:/usr/share/zabbix/assets/fonts  mv ~/SIMKAI.TTF graphfont.ttf

5.地图问题

默认情况下没有;到下图所示地方去更改

供应商:选择其他

URL: https://webrd04.is.autonavi.com/appmaptile?lang=zh_cn\&size=1\&scale=1\&style=7\&x={x}\&y={y}\&z={z}

属性文字:高德矢量地图

最大缩放级别: 18

修改初始化地点

改成项目所在地的 纬度,经度 即可

监控的原理:

1、客户端存在zabbix_agent

------服务一旦运行,就生成了大量的可用监控项条目

2、服务端 远程测试 目标监控项是否可用

------aabbix_get -s ip -p 10050 -k 监控项条目

3、zabbix server的web界面定制监控
如何从0开始定制监控项

1、客户端,编写脚本

2、客户端,使用脚本

3、客户端,定制监控属性

4、服务端,测试监控属性

5、服务端,应用监控属性

(二)监控主机

Zabbix Agent 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 访问数据库在前端进行展现和绘图。

在10.0.0.11上安装一个agent

1.安装agent

bash 复制代码
配置软件源
wgethttps://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu24.04_all.deb

dpkg -i zabbix-release_latest_7.0+ubuntu24.04_all.deb

apt update

apt install -y zabbix-agent

定制配置

bash 复制代码
vim /etc/zabbix/zabbix_agentd.conf
117:Server=10.0.0.10 # 指定zabbix服务端的地址,
# 如果需要本地测试临时测试的话,需要添加本地的ip地址
......
125:ListenPort=10050 # 默认的端口号,可以不用取消注释
......
158 # ServerActive=127.0.0.1 # 注释该条目,这是另外一种指定zabbixserver主机的方式
......
169:Hostname=10.0.0.11 # zabbixserver监控当前主机的时候,客户端主机唯一的标识

注意:
如果没有定义Hostname, 则服务器将使用agent的系统主机名命名主机。
如果需要本地测试监控,修改Server的配置Server=10.0.0.13,10.0.0.16

重启服务

bash 复制代码
systemctl restart zabbix-agent.service
systemctl enable zabbix-agent.service

2.资源创建

创建主机组资源

创建主机资源

为了主机能够正常的被监控到,我们还需要给他配备一些基础的监控项,点击创建主机界面中菜单栏中"Host"右侧的"Templates",在 Link new templates右侧的空框中选择"Template OS Linux by Zabbix agent"

3. JMX方式监控

对于一些java应用来说,zabbix可以通过 JMX 的方式来进行主机的监控效果。

JMX 全称为 Java Management Extension 。开启JMX后能观察tomcat服务运行时出现的故障,以及监视内存、cpu等使用情况。

10.0.0.11主机上

环境部署

bash 复制代码
安装tomcat
apt search tomcat
apt install tomcat10 -y

zabbix服务端部署 java gateway

bash 复制代码
apt install zabbix-java-gateway

vim /etc/zabbix/zabbix_java_gateway.conf
......
START_POLLERS=50 # 开启的进程可以多一点
......

重启服务
systemctl restart zabbix-java-gateway.service
systemctl enable zabbix-java-gateway.service

zabbix server 配置JMX(10.0.0.10)

bash 复制代码
vim /etc/zabbix/zabbix_server.conf
JavaGateway=10.0.0.11         # 指定java gateway 主机的地址
JavaGatewayPort=10052
StartJavaPollers=20           # 设定的java线程数量要小于 java-gateway的
START_POLLERS

重启服务
systemctl restart zabbix-server.service

查找tomcat的专属启动文件(10.0.0.11)

bash 复制代码
root@ubuntu11:~/ubuntu_install_zabbix_7.0  find / -name "catalina.sh"
/usr/share/tomcat10/bin/catalina.sh

vim /usr/share/tomcat10/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=10.0.0.11 -Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

重启服务
systemctl restart tomcat10.service

netstat -tnulp | grep java
tcp6       0      0 :::36569                :::*                    LISTEN      25676/java          
tcp6       0      0 :::8080                 :::*                    LISTEN      25676/java          
tcp6       0      0 :::10086                :::*                    LISTEN      25676/java     #开启成功         
tcp6       0      0 :::10052                :::*                    LISTEN      25277/java          
tcp6       0      0 :::46063                :::*                    LISTEN      25676/java   

测试工具

bash 复制代码
root@ubuntu11:~/ubuntu_install_zabbix_7.0  mkdir /data/softs -p
root@ubuntu11:~/ubuntu_install_zabbix_7.0  cd /data/softs/
root@ubuntu11:/data/softs  ls
cmdline-jmxclient-0.10.3.jar

执行测试命令
root@ubuntu11:/data/softs  java -jar cmdline-jmxclient-0.10.3.jar - 10.0.0.11:10086 java.lang:type=Memory HeapMemoryUsage
12/31/2025 16:32:37 +0800 org.archive.jmx.Client HeapMemoryUsage: 
committed: 80740352
init: 65011712
max: 1015021568
used: 52648008

zabbix 以JMX方式监控tomcat主机

(三)Nginx监控

1.ubuntu10.0.0.11安装和配置nginx状态页

bash 复制代码
apt update && apt -y install nginx

修改配置
vim /etc/nginx/sites-enabled/default
...
server {
    .....
    #添加下面三行,Zabbix默认监控/basic_status,此处为/status,需要和zabbix的模板定义的路径要保持一致
    location /status {
        stub_status;
    }
......
}

nginx -t
systemctl restart nginx

root@ubuntu11:/data/softs  curl localhost/status
Active connections: 2 
server accepts handled requests
 2 2 7 
Reading: 0 Writing: 1 Waiting: 1 

Rocky部署nginx

bash 复制代码
yum -y install nginx

修改配置
vim /etc/nginx/sites-enabled/default
...
server {
    .....
    #添加下面三行,Zabbix默认监控/basic_status,此处为/status,需要和zabbix的模板定义的路径要保持一致
    location /status {
        stub_status;
    }
......
}

nginx -t
systemctl restart nginx

[root@rocky30 ~]  curl localhost/status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 

2.添加nginx监控 - HTTP

3.Nginx监控-agent

10.0.0.30(rocky主机)

bash 复制代码
关闭防火墙
systemctl disable --now firewalld.service

安装软件
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
yum clean all
yum install zabbix-agent

修改配置

bash 复制代码
vim /etc/zabbix/zabbix_agentd.conf

117:Server=10.0.0.10     # 指定zabbix服务端的地址
125:ListenPort=10050     # 默认的端口号,可以不用取消注释
158 # ServerActive=127.0.0.1     # 注释该条目,这是另外一种指定zabbixserver主机的方式
169:Hostname=10.0.0.30     # zabbixserver监控当前主机的时候,客户端主机唯一的标识

注意:
如果没有定义Hostname, 则服务器将使用agent的系统主机名命名主机。

重启服务
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

4.调整监控项的时间间隔

相关推荐
峰顶听歌的鲸鱼2 小时前
Kubernetes核心概述
运维·笔记·云原生·容器·kubernetes·云计算
Q16849645152 小时前
Linux-周期任务易错问题
linux·运维·服务器
Leo July2 小时前
Docker全解析:从入门到企业级实战
运维·docker·容器
sxgzzn2 小时前
风电无人机巡检平台:如何用无人机与AI实现风机智能运维?
运维·人工智能·无人机
梦想的旅途22 小时前
从句柄操作到内存指令:企微外部群自动化推送的底层演进
运维·自动化·企业微信
运维有小邓@2 小时前
如何分析 Linux 系统登录失败事件
linux·运维·服务器
物联网软硬件开发-轨物科技2 小时前
技术白皮书:AI驱动下的光伏电站智能化运维新范式
运维·人工智能·物联网
江湖有缘2 小时前
PicoShare + Docker 实战:打造极简自托管文件分享系统
运维·docker·容器
负二代0.02 小时前
系统引导过程及修复
linux·运维·服务器