一文读懂运维监控之 Ubuntu22.04安装部署Zabbix监控

目录

一、环境规划

二、部署Zabbix服务

1、安装Zabbix仓库

2、安装Zabbix组件

3、创建初始数据库

(1)、创建Zabbix数据库以及数据库用户

(2)、导入zabbix初始数据

(3)、禁用log_bin_trust_function_creators

[4、Zabbix server配置数据库](#4、Zabbix server配置数据库)

5、配置Zabbix前端Nginx端口

6、配置Zabbix相关组件开机自启

7、启动Zabbix相关组件

8、安装中文语言包

[9、配置Zabbix UI界面](#9、配置Zabbix UI界面)

三、监控Linux服务器

1、被监控Linux服务器安装Zabbix仓库

2、被监控Linux服务器安装Zabbix代理

3、启动被监控Linux服务器Zabbix代理并设置开机自启动

(1)、启动Zabbix代理

(2)、设置Zabbix代理开机自启动

4、Zabbix监控管理平台加入被监控Linux服务器

5、查看被监控主机最新数据

四、监控网络设备

1、创建主机组

2、Zabbix监控管理平台加入被监控网络设备

3、查看被监控主机最新数据

五、常见问题

1、确认被监控设备SNMP协议端口监听状态

2、确认被监控设备数据返回

3、安装MIB文件

4、根据MIB名称获取OID值及对应数据

5、根据OID值获取MIB名称及对应数据

6、MIB名称转换为OID值

7、更改Zabbix服务端数据库地址


更多精彩博文详见:

《Linux系统应用运维》专栏总目录(持续更新)

一、环境规划

  • 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监控平台时,需要配置数据库等相关信息。

  • 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

更多精彩博文详见:

《Linux系统应用运维》专栏总目录(持续更新)

相关推荐
Sanse_2 小时前
(二)ubuntu18+ros melodic配置XT-Drone/gazebo无人机仿真平台,无人机添加mid360模型和仿真运行
ubuntu·无人机
纸带2 小时前
USB CDC 配置描述符中对比两个CDC设备配置
java·网络·windows
双层吉士憨包2 小时前
Claude账号共享教程分享
运维·服务器
大聪明-PLUS2 小时前
了解 Docker:镜像是如何创建的
linux·嵌入式·arm·smarc
lllsure3 小时前
Linux 日志管理
linux·运维·服务器
云老大TG:@yunlaoda3603 小时前
华为云国际站代理商DAS的跨境合规适配的应用场景有哪些?
网络·数据库·华为云
BOF_dcb3 小时前
网络设备安装与调试
网络·智能路由器
yewq-cn3 小时前
自动更新 Docker 镜像
运维·docker·容器
haluhalu.3 小时前
Linux系统下进程池设计与实现详解
linux·运维·服务器