目录
(3)、禁用log_bin_trust_function_creators
[4、Zabbix server配置数据库](#4、Zabbix server配置数据库)
[9、配置Zabbix UI界面](#9、配置Zabbix UI界面)
3、启动被监控Linux服务器Zabbix代理并设置开机自启动
更多精彩博文详见:
一、环境规划
- Zabbix监控服务端主机
IP地址:192.168.7.7
- 操作系统版本
本文使用Ubuntu 22.04.5系统版本进行演示,所有操作均使用root用户执行。
- MySQL数据库版本
MySQL数据库使用mysql-8.0.44-linux-glibc2.17-x86_64版本,此处已经提前安装在Zabbix监控服务端主机。MySQL服务安装过程可以参考《一文读懂MySQL数据库之 CentOS 7下安装MySQL数据库服务》
二、部署Zabbix服务
1、安装Zabbix仓库
安装Zabbix仓库,用于安装Zabbix组件。
root@zabbixserver:~# wget https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.2+ubuntu22.04_all.deb root@zabbixserver:~# dpkg -i zabbix-release_latest_7.2+ubuntu22.04_all.deb root@zabbixserver:~# apt update
2、安装Zabbix组件
安装Zabbix server、Web前端、agent等组件。
root@zabbixserver:~# apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
3、创建初始数据库
(1)、创建Zabbix数据库以及数据库用户
创建名为zabbix的数据库,以及可以从任何IP地址链接的zabbix用户。
root@zabbixserver:~# /usr/local/mysql/bin/mysql -uroot -p123456 mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@'%' identified by '123456'; mysql> grant all privileges on zabbix.* to zabbix@'%'; mysql> set global log_bin_trust_function_creators = 1; mysql> quit
(2)、导入zabbix初始数据
导入Zabbix服务安装后的初始化数据库脚本。
执行初始数据库脚本
root@zabbixserver:~# zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
查看数据是否成功导入
root@zabbixserver:~# /usr/local/mysql/bin/mysql -uroot -p123456
mysql> USE zabbix;
mysql> SHOW tables;由上图可见,数据已经成功导入。
(3)、禁用log_bin_trust_function_creators
禁用log_bin_trust_function_creators配置项。
root@zabbixserver:~# /usr/local/mysql/bin/mysql -uroot -p123456 mysql> set global log_bin_trust_function_creators = 0; mysql> quit;
4、Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf,根据实际情况修改zabbix数据库访问密码以及socket文件位置。
root@zabbixserver:~# vim /etc/zabbix/zabbix_server.conf 修改如下内容: DBPassword=123456 DBSocket=/usr/local/mysql/mysql.sock
5、配置Zabbix前端Nginx端口
打开8080端口注释。
root@zabbixserver:~# vim /etc/zabbix/nginx.conf
6、配置Zabbix相关组件开机自启
配置zabbix-server、zabbix-agent、nginx、php8.1-fpm组件的开机自启动。
root@zabbixserver:~# systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
7、启动Zabbix相关组件
启动zabbix-server、zabbix-agent、nginx、php8.1-fpm组件。
root@zabbixserver:~# systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm root@zabbixserver:~# netstat -tnlp由上图可见,zabbix-server(10051端口)、zabbix-agent(10050端口)、nginx(8080端口)等进程已经启动。
8、安装中文语言包
需要安装中文语言包,否则Zabbix监控管理平台无法选择中文显示。
安装
root@zabbixserver:~# apt-get install -y language-pack-zh-han*
查看
root@zabbixserver:~# localectl list-locales
由上图可见,中文简体包zh_CN.UTF-8已经安装。
重启PHP组件
root@zabbixserver:~# systemctl restart php8.1-fpm
root@zabbixserver:~# ps -ef | grep php
9、配置Zabbix UI界面
第一次访问Zabbix监控平台时,需要配置数据库等相关信息。
- 使用浏览器打开Zabbix监控平台:http://192.168.7.7:8080/
- Default language选择Chinese(zh_CN),点击"下一步"
- 点击"下一步"
- 根据上面第3步的数据库信息,配置好zabbix数据库相关内容,点击"下一步"
- 配置Zabbix主机名称,此处配置为"zabbix_office_monitor",点击"下一步"
- 核对情况无误,点击"下一步"
- 点击"完成"
- 自动跳转到登录页面
- 输入默认账号密码登录
用户名称:Admin
密码:zabbix
- 登录后显示如下页面
至此,Zabbix服务端部署完成!
三、监控Linux服务器
此处演示使用agent方式将一台运行Ubuntu 16.04系统的Linux服务器纳入Zabbix监控。
以下操作均使用root用户执行。
1、被监控Linux服务器安装Zabbix仓库
安装Zabbix仓库,用于安装zabbix-agent组件。
root@ubuntu:~# wget https://repo.zabbix.com/zabbix/7.2/release/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_7.2+ubuntu16.04_all.deb root@ubuntu:~# dpkg -i zabbix-release_latest_7.2+ubuntu16.04_all.deb root@ubuntu:~# apt update
2、被监控Linux服务器安装Zabbix代理
安装并配置zabbix-agent组件。
安装
root@ubuntu:~# apt install -y zabbix-agent
- 配置
修改zabbix配置文件,填写Zabbix监控服务端IP地址
root@ubuntu:~# vim /etc/zabbix/zabbix_agentd.conf
3、启动被监控Linux服务器Zabbix代理并设置开机自启动
(1)、启动Zabbix代理
启动zabbix-agent组件。
root@ubuntu:~# systemctl restart zabbix-agent root@ubuntu:~# netstat -tnlp由上图可见,10050端口启动说明Zabbix代理已经正常运行。
(2)、设置Zabbix代理开机自启动
设置zabbix-agent组件开机自启动。
root@ubuntu:~# systemctl enable zabbix-agent
4、Zabbix监控管理平台加入被监控Linux服务器
在Zabbix监控管理平台将被监控Linux服务器纳入监控。
登录Zabbix监控管理平台,此处是http://192.168.7.7:8080/
- 选择"数据采集"-->"主机"
- 点击"创建主机"
根据实际情况填写主机信息
**主机名称:**ubuntu_1604
**模板:**Linux by Zabbix agent(选择合适的模板)
**主机群组:**Linux servers(可以自己新建一个主机群组,此处选择默认的主机群组)
**接口:**新增一个Agent类型的接口,填入被监控服务器的IP地址、端口号
点击"添加"
由上图可见,该主机可用性状态已经转变为绿色"可用"
5、查看被监控主机最新数据
选择"监测"-->"主机",点击"最新数据"、"图形"、"仪表盘"等,都可以看到ubuntu_1604主机的最新监控数据。
点击最新数据,查看可用内存监控数据
至此,Linux主机服务器成功纳入Zabbix监控。
四、监控网络设备
此处演示使用SNMP方式将一台交换机纳入Zabbix监控。此处演示的交换机已经开启SNMP并配置好SNMP团体字。
1、创建主机组
- 选择"数据采集"-->"主机群组",点击"创建主机组"
- 填写组名后,点击"添加"
由上图可见,已经成功添加名为"网络设备"的主机群组。
2、Zabbix监控管理平台加入被监控网络设备
在Zabbix监控管理平台将被监控Linux服务器纳入监控。
登录Zabbix监控管理平台,此处是http://192.168.7.7:8080/
- 选择"数据采集"-->"主机"
- 点击"创建主机"
根据实际情况填写主机信息
**主机名称:**jiaohuanji
**模板:**Network Generic Device by SNMP(选择合适的模板)
**主机群组:**网络设备(选择上面创建的"网络设备"群组)
**接口:**新增一个SNMP类型的接口,填入被监控交换机的IP地址、端口号、SNMP团体字。
点击"添加"
由上图可见,该主机可用性状态已经转变为绿色"可用",说明添加成功。
3、查看被监控主机最新数据
- 选择"监测"-->"主机",点击"最新数据"、"图形"、"仪表盘"等,都可以看到jiaohuanji主机的最新监控数据。
- 点击最新数据,查看Interface Gi0/1接口的发送流量监控数据
至此,交换机成功纳入Zabbix监控。
五、常见问题
1、确认被监控设备SNMP协议端口监听状态
在Zabbix图形化界面添加使用SNMP协议进行监控的设备主机前,可以从Zabbix服务端主机扫描SNMP设备主机的161端口监听状态,确认网络可达。
此处Zabbix服务端主机是Ubuntu 22.04系统版本。
安装nmap工具
root@ubuntuserver:~# apt install -y nmap
确认端口监听状态
root@ubuntuserver:~# nmap -sU -p 161 172.16.254.1
-sU: UDP协议扫描;
-p: 扫描指定的端口号,此处是161;
172.16.254.1: 只需要扫描的IP地址。由上图可见,IP地址为172.16.254.1的设备主机的161端口正在监听网络连接,说明网络可达。
2、确认被监控设备数据返回
在Zabbix图形化界面添加使用SNMP协议进行监控的设备主机前,可以从Zabbix服务端主机执行snmpwalk命令,确认Zabbix服务端主机可以接收到被监控设备主机的数据。
此处Zabbix服务端主机是Ubuntu 22.04系统版本。
安装snmp工具集
root@zabbixserver:~# apt install -y snmp
确认数据是否可以正常返回
root@zabbixserver:~# snmpwalk -v 2c -c SNMP团体字 172.16.254.3
-v: 指定设备使用的SNMP版本,此处是2c版本;
-c: 指定设备使用的SNMP团体字;
172.16.254.3: 指定被监控设备主机的IP地址。由上图可见,IP地址为172.16.254.3的设备主机可以正常返回监控数据给Zabbix服务端主机。
3、安装MIB文件
MIB文件有助于Zabbix将数字OID转换为可读名称和描述。若缺少MIB支持,我们可能仅能看到数值,这将增加配置监控项和故障排查问题的难度。
安装MIB下载工具包
root@zabbixserver:~# apt-get update
root@zabbixserver:~# apt-get install snmp-mibs-downloader
修改SNMP配置文件
root@zabbixserver:~# vim /etc/snmp/snmp.conf
必须注释以"mibs :"开头的行,以加载所有可用MIB。
- 验证结果
安装配置MIB文件前,数据可读性较差。
安装配置MIB文件后,数据可读性较好
4、根据MIB名称获取OID值及对应数据
根据MIB名称IF-MIB::ifDescr.10获取数据。
root@zabbixserver:~# snmpget -v 2c -c SNMP团体字 -On 172.16.254.1 IF-MIB::ifDescr.10 -v: 指定设备使用的SNMP版本,此处是2c版本; -c: 指定设备使用的SNMP团体字; -On:指定被监控设备主机的IP地址,此处是172.16.254.1; IF-MIB::ifDescr.10: 指需要转换为OID的MIB名称,此处是端口名称。
5、根据OID值获取MIB名称及对应数据
根据指定的数字OID:1.3.6.1.2.1.31.1.1.1.6.10获取数据。
root@zabbixserver:~# snmpwalk -v 2c -c SNMP团体字 172.16.254.1 1.3.6.1.2.1.31.1.1.1.6.10 -v: 指定设备使用的SNMP版本,此处是2c版本; -c: 指定设备使用的SNMP团体字; 172.16.254.1: 指定被监控设备主机的IP地址; 1.3.6.1.2.1.31.1.1.1.6.10:指定的OID。
6、MIB名称转换为OID值
将MIB名称 IF-MIB::ifHCInOctets.10和IF-MIB::ifHCInOctets,转换为对应的OID值。
root@zabbixserver:~# snmptranslate -On IF-MIB::ifHCInOctets.10 root@zabbixserver:~# snmptranslate -On IF-MIB::ifHCInOctets
7、更改Zabbix服务端数据库地址
当Zabbix数据库服务器的IP地址有变动时(如DHCP分配IP地址),需要修改zabbix.conf.php中的$DB['SERVER']的值,否则无法正常访问Zabbix监控平台。
root@zabbixserver:~# vim /etc/zabbix/web/zabbix.conf.php
更多精彩博文详见:



























































