Ubuntu 20.04上构建Zabbix 6.0监控平台:从部署到微信告警的完整实践
1. 环境准备与基础配置在Ubuntu 20.04上部署Zabbix 6.0监控平台前需要确保系统环境满足基本要求。我建议使用至少4核CPU、8GB内存的服务器实测下来这个配置可以稳定监控50台以上的主机。操作系统建议选择Ubuntu 20.04 LTS版本长期支持周期能保证系统稳定性。首先更新系统软件包是个好习惯sudo apt update sudo apt upgrade -y安装必要的依赖组件时我发现很多教程会漏掉这两个关键包sudo apt install -y software-properties-common apt-transport-https对于生产环境强烈建议单独准备MySQL数据库服务器。我在实际项目中遇到过Zabbix Server和数据库争抢资源的情况分离部署后性能提升明显。如果资源有限本地安装MySQL 8.0也可以sudo apt install -y mysql-server配置MySQL时需要特别注意字符集设置Zabbix 6.0要求使用utf8mb4编码。我踩过的坑是直接用默认配置导入数据会导致监控项乱码[mysqld] character-set-server utf8mb4 collation-server utf8mb4_bin2. Zabbix Server核心安装2.1 仓库配置与软件安装Zabbix官方仓库的添加方式在6.0版本有所变化这个命令会自动适配Ubuntu 20.04wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4ubuntu20.04_all.deb sudo dpkg -i zabbix-release_6.0-4ubuntu20.04_all.deb sudo apt update安装核心组件时新手常犯的错误是漏装nginx或PHP配置包。完整安装命令应该是sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2.2 数据库初始化创建数据库时要注意权限设置我遇到过因权限不足导致监控数据无法写入的情况CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER zabbixlocalhost IDENTIFIED BY StrongPassword123; GRANT ALL PRIVILEGES ON zabbix.* TO zabbixlocalhost;导入初始数据是个耗时操作在性能较差的机器上可能需要10分钟以上。这个命令中的-v参数可以显示进度zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -v --default-character-setutf8mb4 -uzabbix -p zabbix2.3 服务配置调优Zabbix Server的配置文件位于/etc/zabbix/zabbix_server.conf这几个参数对性能影响最大StartPollers20 StartPollersUnreachable10 StartTrappers15 StartPingers5 CacheSize256M HistoryCacheSize128M启动服务时建议按顺序操作避免端口冲突sudo systemctl restart mysql sudo systemctl start zabbix-server zabbix-agent nginx php7.4-fpm sudo systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm3. Web界面与Grafana集成3.1 前端初始化配置通过浏览器访问http://服务器IP/zabbix时会遇到PHP时区设置的报错。解决方法是在/etc/php/7.4/fpm/php.ini中修改date.timezone Asia/Shanghai安装Grafana时官方源的版本可能不是最新的。我推荐用这个方式安装指定版本sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana_10.0.3_amd64.deb sudo dpkg -i grafana_10.0.3_amd64.deb3.2 Zabbix插件配置Grafana的Zabbix插件需要额外配置才能正常使用grafana-cli plugins install alexanderzobnin-zabbix-app sudo systemctl restart grafana-server在Grafana界面添加Zabbix数据源时URL要填写完整路径http://localhost/zabbix/api_jsonrpc.php4. 监控客户端部署实战4.1 Zabbix Agent标准版对于Ubuntu客户端安装命令与Server端类似wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4ubuntu20.04_all.deb sudo dpkg -i zabbix-release_6.0-4ubuntu20.04_all.deb sudo apt update sudo apt install -y zabbix-agent配置文件/etc/zabbix/zabbix_agentd.conf的关键参数Server192.168.2.20 ServerActive192.168.2.20 Hostname客户端主机名 EnableRemoteCommands1 AllowRoot14.2 Zabbix Agent2高级版Agent2支持更多现代特性特别是对Docker和GPU的监控。安装时需要指定6.2版本的仓库wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4ubuntu20.04_all.deb sudo dpkg -i zabbix-release_6.2-4ubuntu20.04_all.deb sudo apt update sudo apt install -y zabbix-agent2GPU监控需要配置自定义脚本我在实际使用中发现nvidia-smi命令需要特殊权限sudo chmod s /usr/bin/nvidia-smi5. 微信告警集成方案5.1 机器人创建与配置在企业微信群里添加机器人时要记录完整的Webhook地址。测试时可以用这个curl命令curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key你的KEY \ -H Content-Type: application/json \ -d {msgtype: text,text: {content: 测试消息}}5.2 Zabbix告警脚本告警脚本wx_alter.py需要放在特定目录并设置权限sudo mkdir -p /etc/zabbix/alertscripts sudo chown zabbix:zabbix /etc/zabbix/alertscripts sudo chmod 755 /etc/zabbix/alertscripts/wx_alter.py脚本内容要注意处理中文字符我遇到过编码问题导致消息乱码的情况#!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys import requests import json webhook_url 你的Webhook地址 subject sys.argv[1] message sys.argv[2] headers {Content-Type: application/json;charsetutf-8} data { msgtype: markdown, markdown: { content: f**{subject}**\n{message} } } response requests.post(webhook_url, headersheaders, datajson.dumps(data))5.3 告警规则优化在配置触发条件时建议设置合理的告警间隔避免消息轰炸问题持续时间 1m 告警间隔 30m对于重要业务监控可以设置升级机制如果未确认 1h后通知主管 如果未解决 4h后通知运维总监
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2432691.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!