官方文档:zabbix安装文档
环境如下
环境 | 版本 |
---|---|
nginx | 1.26.3 |
zabbix | 7.0.16 |
mysql | 8.0.41 |
安装nginx和mysql
一键部署脚本
部署zabbix
#!/bin/bash
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu22.04_all.debdpkg -i zabbix-release_latest_7.0+ubuntu22.04_all.debapt updateapt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent# 在数据库主机上运行以下代码。
mysql -uzabbix -p123456 -h 192.168.100.153create database zabbix character set utf8mb4 collate utf8mb4_bin;
CREATE USER 'zabbix'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
set global log_bin_trust_function_creators = 1;
quit;# 由于我的数据库和zabbix不在同一台主机,所以要指定主机IP
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p123456 -h 192.168.100.153 zabbix#导入数据库架构后禁用 log_bin_trust_function_creators 选项。
mysql -uzabbix -p123456 -h 192.168.100.153
set global log_bin_trust_function_creators = 0;
quit;#编辑配置文件 /etc/zabbix/zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
DBPassword=123456
DBHost=192.168.100.153# 编辑配置文件 /etc/zabbix/nginx.conf 取消注释并设置 'listen' 和 'server_name' 指令。
mv /etc/zabbix/nginx.conf /usr/local/nginx1/conf/conf.d/zabbix.conf# 启动Zabbix server和agent进程,并为它们设置开机自启:
systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm#注意nginx的用户和php的用户是否一致,可能会出现权限问题,导致无法进入zabbix的网页
初始化zabbix
初始化之后登录zabbix如下:
Zabbix 的默认用户名是 “Admin”,密码是 “zabbix”。
监控其它主机
其它主机安装zabbix-agent,zabbix主机安装zabbix-get命令
被监控主机执行:
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.0+ubuntu22.04_all.deb
dpkg -i zabbix-release_latest_7.0+ubuntu22.04_all.deb
apt update
apt install zabbix-agent#修改配置文件,是zabbix主机可以通过认证,访问到被监控主机的agent
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.50.0/24 # 允许访问的服务器/客户端 IP 段
#Server=192.168.50.230,127.0.0.1 #也可以这样写#重启生效配置
systemctl restart zabbix-agent
zabbix服务器验证
zabbix_get -s 192.168.50.113 -k agent.ping
1
zabbix_get -s 192.168.50.113 -k vm.memory.size[free]
2195476480
以下是 zabbix_get
命令中 -k
参数(监控项键值)的常见用法表格:
监控项键值(Item Key) | 描述 | 返回值示例 |
---|---|---|
system.cpu.load[percpu,avg1] | 获取系统 CPU 1 分钟平均负载(按 CPU 核心) | 0.25 |
system.cpu.util[,idle] | 获取 CPU 空闲时间百分比 | 95.2 |
vm.memory.size[free] | 获取空闲内存大小(字节) | 4294967296 |
vm.memory.size[total] | 获取总内存大小(字节) | 17179869184 |
vm.memory.size[pavailable] | 获取可用内存百分比 | 24.8 |
system.hostname | 获取主机名 | server01 |
system.uname | 获取系统信息(类似 uname -a ) | Linux server01 5.4.0-104-generic #118-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 |
net.if.in[eth0] | 获取网络接口(eth0)接收的字节数 | 123456789 |
net.if.out[eth0] | 获取网络接口(eth0)发送的字节数 | 987654321 |
disk.space[/,free] | 获取根分区(/)的空闲空间(字节) | 50000000000 |
disk.space[/,pfree] | 获取根分区(/)的空闲空间百分比 | 45.2 |
proc.num[] | 获取正在运行的进程总数 | 289 |
agent.ping | 测试 Zabbix Agent 是否响应 | 1 (成功)或 0 (失败) |
zabbix[host,items] | 获取 Zabbix 服务器上该主机的监控项数量 | 568 |
system.swap.size[,free] | 获取空闲交换空间大小(字节) | 2147483648 |
system.swap.size[,total] | 获取总交换空间大小(字节) | 4294967296 |
system.cpu.intr | 获取 CPU 中断频率 | 1234 |
system.localtime | 获取主机本地时间(Unix 时间戳) | 1689580800 |
vfs.file.size[/etc/passwd] | 获取文件大小(字节) | 2048 |
vfs.file.age[/etc/passwd] | 获取文件修改时间(秒) | 86400 |
如果出现如下报错,证明配置文件未修改,或者改错
root@ubuntu:~# zabbix_get -s 192.168.50.113 -k vm.memory.size[free]
ZBX_NOTSUPPORTED: Received empty response from Zabbix Agent at [192.168.50.113]. Assuming that agent dropped connection because of access permissions.