前面的文章已经介绍了部署zabbix server 7.4,接下来介绍使用zabbix server开始对 Linux 机器进行基本监控所需的步骤
网络架构
注意:linux需要安装zabbix agent,使用主动模式
在Zabbix监控环境中,当需要监控数百台Linux主机时,主动模式(Active Mode)通常是更优的选择。
以下是两种模式的详细对比及大规模部署时的建议:
主动模式 vs 被动模式对比
主动模式(Active Mode)
工作原理:Zabbix Agent主动连接Zabbix Server/Proxy,定期请求监控项列表并上报数据。
优势:
- 服务器端负载低:Server不需要维护大量TCP连接,只需接收数据
- 网络穿透能力强:Agent主动向外连接,适合跨越防火墙/NAT环境
- 扩展性好:适合大规模监控环境(数百至数千台主机)
- 配置简单:Server端无需知道所有Agent的IP地址
被动模式(Passive Mode)
工作原理:Zabbix Server主动连接Agent获取数据。
劣势:
- 服务器端压力大:Server需要维护所有Agent的连接
- 网络限制多:需要Agent开放端口,防火墙配置复杂
- 扩展性有限:当主机数量增多时,Server性能成为瓶颈
zabbix server:
ip地址:192.168.52.134
操作系统:openEuler-22.03
Linux监控主机:
ip地址:192.168.52.130
操作系统:openEuler-22.03
由于openEuler默认openssl版本太老,无法直接dnf install在线安装最新版本zabbix agent,因此只能编译安装
1.安装编译依赖
首先安装必要的编译工具和依赖包:
dnf groupinstall -y "Development Tools"dnf install -y net-snmp net-snmp-devel libevent libevent-devel \ openssl openssl-devel curl curl-devel fping \ pcre pcre-devel pkgconfig
2.创建Zabbix用户
为Zabbix Agent创建专用用户和组:
groupadd --system zabbixuseradd --system -g zabbix -d /usr/local/zabbix -s /sbin/nologin zabbix
3.下载并编译Zabbix
下载Zabbix 7.4.7源码并进行编译安装:
# 下载源码wget https://cdn.zabbix.com/zabbix/sources/stable/7.4/zabbix-7.4.7.tar.gztar -xzf zabbix-7.4.7.tar.gzcd zabbix-7.4.7# 配置编译参数(仅安装agent)./configure --prefix=/usr/local/zabbix --enable-agent \ --with-libcurl --with-net-snmp --with-libevent \ --with-openssl --enable-ipv6# 编译安装makemake install
4.配置文件位置
编译安装后,配置文件位置/usr/local/zabbix/etc/zabbix_agentd.conf
先备份配置文件,再清理多余的空行和注释行
cd /usr/local/zabbix/etccp zabbix_agentd.conf zabbix_agentd.conf.bakcat zabbix_agentd.conf.bak |grep -v "^$"|grep -v "^#" > zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.logServer=127.0.0.1ServerActive=127.0.0.1Hostname=Zabbix server
# 日志文件路径LogFile=/tmp/zabbix_agentd.log# 被动模式监听的服务器IP(Zabbix Server地址)Server=192.168.52.134# 主动模式上报的服务器IP(Zabbix Server地址)ServerActive=192.168.52.134# Agent端主机名(必须与Zabbix Web中配置的主机名一致)Hostname=192.168.52.129
5.启动agent(使用新配置)
启动的Zabbix Agent命令改造成systemctl服务管理,需要创建systemd服务文件并进行相应配置
新建文件
vi /etc/systemd/system/zabbix-agent.service
[Unit]Description=Zabbix AgentAfter=network.targetWants=network.target[Service]Type=forkingPIDFile=/tmp/zabbix_agentd.pidExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.confExecStop=/bin/kill -TERM $MAINPIDRestart=on-failureRestartSec=10sUser=zabbixGroup=zabbix[Install]WantedBy=multi-user.target
sudo chown -R zabbix:zabbix /usr/local/zabbixsudo chmod 755 /usr/local/zabbix/sbin/zabbix_agentd
sudo systemctl daemon-reload
# 启动服务sudo systemctl start zabbix-agent# 设置开机自启sudo systemctl enable zabbix-agent# 查看服务状态sudo systemctl status zabbix-agent# 查看日志sudo journalctl -u zabbix-agent -f
登录到zabbix server web管理页面,点击数据采集-->主机-->创建主机
在Zabbix Web界面中创建主机时,需要注意以下配置:
主机名称:必须与Agent配置文件中的Hostname完全一致
模板选择:选择"Linux by Zabbix agent active"模板
主机群组,选择Linux server
接口部分:主动模式下不需要填写接口信息,因为Agent会主动连接Server
添加完成后,效果如下
可以看到状态启动,可用性是绿色的。
点击仪表盘-->新添加的主机-->图形
当然还有一些其他linux指标,这里就不展示了,图片太多了。
如果需要监控TCP端口,比如ssh端口,可以自己添加模版,统一管理22端口监控
1.创建监控22端口的模板
点击数据采集-->模版-->创建模版,填写模版信息:
模板名称:例如“Template SSH Port Monitoring”
群组:选择“Templates/Applications”或创建新群组
描述:可填写“SSH端口状态监控模板”
2.在模板中添加22端口监控项
添加监控项
在新建的模板中,点击“监控项”标签页
点击“创建监控项”,配置以下参数:
名称:SSH端口状态
类型:Zabbix客户端(主动式)
键值:net.tcp.listen[22]
信息类型:数字(无符号)
单位:布尔值
更新间隔:1分钟
3.配置触发器
在模板的“触发器”标签页,点击“创建触发器”
配置触发器参数:
名称:SSH端口关闭
严重性:严重
表达式:不要直接输入,每个版本都一样的。点击添加
模版选择,Template SSH Port Monitoring
4.关联模板到主机
批量关联方法
进入“数据采集 → 主机”
勾选需要监控的多个Linux主机
点击“批量更新”
选择“Template SSH Port Monitoring”模板
文章读完后,你的点赞、分享、推荐,我们都深表感谢!
点击
公众号卡片,关注我们