Zabbix安装,配置模板监控主机(在线安装和离线安装)

安装环境

组件 版本
Linux Rocky Linux 8
Zabbix Zabbix 6.0
MySql 8.0.30(根据Zabbix6搭建时的经验,MySql版本太低的话会不兼容Zabbix,但当时的报错找不到了,所以未能在此展示)
IP 监控192.168.88.1 && 被监控192.168.88.2

安装步骤

#离线安装

https://repo.zabbix.com/zabbix/7.0/rocky/8/x86_64/
下载好对应的rpm包

#在线安装

#编辑配置文件 /etc/yum.repos.d/epel.repo 并添加以下语句
[epel]
...
excludepkgs=zabbix*

#安装版本仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rocky/9/x86_64/zabbix-release-6.0-2.el9.noarch.rpm && yum clean all

#将[zabbix],[zabbix-non-supported]换成阿里云镜像
vim /etc/yum.repos.d/zabbix.repo 
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/6.0/rocky/9/$basearch/

#安装Zabbix Server、Web前端、Agent
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent -y

服务说明:

  • zabbix-server-mysql: 安装 Zabbix 服务器端软件,并配置为使用 MySQL 作为后端数据库来存储配置信息和监控数据。
  • zabbix-web-mysql: 提供 Zabbix 的前端网页界面,也配置为使用 MySQL 数据库。这是管理员和用户用来查看监控数据、配置报警规则等的图形化界面。
  • zabbix-nginx-conf: 安装 Zabbix Web 界面所需的 Nginx 配置文件。Nginx 是一个高性能的 HTTP 和反向代理服务器,常用于部署 Zabbix 前端以提高性能和安全性。
  • zabbix-sql-scripts: 包含用于初始化和升级 Zabbix 数据库结构的 SQL 脚本。这些脚本对于初次安装时创建数据库表结构,以及后续升级时调整数据库结构至关重要。
  • zabbix-selinux-policy: 提供 Zabbix 相关的 SELinux 策略模块。SELinux 是一个强制访问控制安全系统,这个包确保 Zabbix 各个组件能够在符合 SELinux 安全策略的环境中正确运行。
  • zabbix-agent: 是部署在被监控主机上的服务,负责收集主机的性能和状态数据,并根据 Zabbix 服务器的请求返回这些信息,是实现监控功能的关键组件。这里安装是将服务端的状态同样作为被监控的客户端进监控。

安装MySQL

此步骤就不叙述了,需要的话请看我前面写的二进制安装MySQL8
二进制安装MySQL8

systemctl enable --now mysql.service
systemctl status mysql
● mysql.service - MySQL server by ymh
   Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2025-01-08 10:44:11 CST; 15min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 997 (mysqld)
    Tasks: 37 (limit: 11175)
   Memory: 528.3M
   CGroup: /system.slice/mysql.service
           └─997 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

1月 08 10:44:11 localhost.localdomain systemd[1]: Started MySQL server by ymh.

启动MySQL为zabbix创建用户

# 登陆数据库
mysql -uroot -plmx
# 创建名为zabbix的数据库,并设置字符集为utf8mb4,排序规则为utf8mb4_bin
create database zabbix character set utf8mb4 collate utf8mb4_bin;
# 创建名为zabbix的用户,并设置其密码为'000000'
create user zabbix@localhost identified by '000000';
# 授予zabbix用户在zabbix数据库上的所有权限
grant all privileges on zabbix.* to zabbix@localhost;
# 设置全局变量log_bin_trust_function_creators为1
set global log_bin_trust_function_creators = 1;
# 退出MySQL
exit

导入初始架构和数据

cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
gzip -d server.sql.gz 
mysql -uzabbix -p000000 zabbix < server.sql

#将之前临时放开的log_bin_trust_function_creators禁用
set global log_bin_trust_function_creators = 0;

配置zabbix_server

bash 复制代码
vim +129 /etc/zabbix/zabbix_server.conf
DBPassword=zabbix

配置zabbix_agent

bash 复制代码
vim /etc/zabbix/zabbix_agentd.conf 
182 Hostname=zabbixserver

配置nginx展示zabbix

bash 复制代码
vim /etc/nginx/conf.d/zabbix.conf
# 将第2、3行的注释删除,结果如下所示:
server {
        listen          8080;
        server_name     example.com;
...以下省略...

启动相关服务

bash 复制代码
systemctl restart zabbix-server zabbix-agent nginx php-fpm

初始化zabbix

浏览器访问本机ip地址:8080


配置DB连接可能出现的问题

  1. 服务器请求客户端未知的身份验证方法。

    原因:因为Mysql 8 默认创建用户的身份验证插件是 caching_sha2_password,所以我我们在创建zabbix用户时需要指定身份验证插件为mysql_native_password
bash 复制代码
#解决办法
mysql> drop user zabbix@localhost;
mysql> create user 'zabbix'@'localhost' identified with mysql_native_password by '123123';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> flush privileges;
  1. 无法确定当前 Zabbix 数据库版本: 找不到表" dbversion"。

    原因:没有将zabbix需要的表导入到mysql中
bash 复制代码
#解决办法
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/schema.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/images.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/data.sql
  1. 不支持表的字符集或排序规则

    原因:创建zabbix库的时候需要指定编码方式(和第一个问题相似)
bash 复制代码
#解决办法
mysql> drop database zabbix;
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/schema.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/images.sql
mysql -uzabbix -p123123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/data.sql


注意:这里的用户名Admin,A是大写的!

配置zabbix监控web1服务器

安装agent

bash 复制代码
yum -y install zabbix-agent

修改web1配置文件

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

117 Server=127.0.0.1,192.168.88.2
182 Hostname=web1

启服务

bash 复制代码
systemctl start zabbix-agent

在web页面中添加对web1的监控

  • 主机:安装了agent,被监控的主机
  • 主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。
  • 模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。



常用监控指标

  • Space utilization:以百分比显示的磁盘利用率
  • Used space:已用磁盘空间
  • Available memory:可用内存
  • CPU idle time:CPU空闲时间。不宜过低。
  • Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。
  • Interface eth0: Bits received:网卡接收到的数据量
  • Interface eth0: Bits sent:网卡发送的数据量
  • Number of processes:系统运行的进程数
  • Number of logged in users:已登陆的用户数

自定义监控项

在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。

在web页面中创建监控项。监控项对应key值。

在被控端创建key
  • 创建key的语法

    UserParameter=自定义key值,命令

    命令的执行结果,是key的value

  • 创建自定义配置文件。文件名自定义。

    vim /etc/zabbix/zabbix_agentd.d/usercnt.conf
    UserParameter=usercnt,sed -n '$=' /etc/passwd
    systemctl restart zabbix-agent.service

  • 验证自定义监控项

bash 复制代码
# 1. 安装zabbix-get
yum install -y zabbix-get
yum install -y zabbix-get

# 2. 获取监控项的值
#本机执行
zabbix_get -s 127.0.0.1 -k usercnt 46

#在监控端执行
zabbix_get -s 192.168.88.100 -k usercnt

创建模板


应用模板到主机


相关推荐
MonkeyKing_sunyuhua1 小时前
在 Ubuntu 22.04 上从 Wayland 切换到 X11的详细步骤
linux·运维·ubuntu
xchenhao1 小时前
Linux 环境(Ubuntu)部署 Hadoop 环境
大数据·linux·hadoop·ubuntu·hdfs·环境·dfs
running thunderbolt1 小时前
Linux : Linux环境开发工具vim / gcc / makefile / gdb / git的使用
linux·git·vim
运维&陈同学3 小时前
【Logstash02】企业级日志分析系统ELK之Logstash 输入 Input 插件
linux·运维·elk·elasticsearch·云原生·自动化·logstash
dessler3 小时前
Docker-网络&跨主机通信
linux·运维·docker
余生爱静4 小时前
ubuntu编译ijkplayer,支持rmvb以及mkv
linux·运维·ubuntu
阿川!5 小时前
嵌入式技术之Linux(Ubuntu) 一
linux
运维自动化&云计算5 小时前
Ubuntu中使用miniconda安装R和R包devtools
linux·运维·服务器
下雨天的太阳5 小时前
windows下编写的shell脚本在Linux下执行有问题解决方法
linux
DZSpace5 小时前
在离线环境中安装 `.rpm` 包的步骤
linux·运维