news 2026/9/25 20:12:45

CentOS7下Zabbix5.0与MariaDB完美搭配:从零搭建到邮件告警全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS7下Zabbix5.0与MariaDB完美搭配:从零搭建到邮件告警全攻略

CentOS7下Zabbix5.0与MariaDB企业级监控系统实战指南

1. 环境准备与基础配置

在CentOS7系统上部署Zabbix5.0监控系统前,需要确保基础环境配置正确。以下是关键步骤和注意事项:

系统初始化配置:

  • 更新系统软件包至最新版本:
    yum update -y
  • 关闭防火墙和SELinux(生产环境需根据安全策略调整):
    systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

时间同步配置: 监控系统对时间同步要求严格,建议配置NTP服务:

yum install -y ntpdate echo "0 */6 * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1" >> /var/spool/cron/root

提示:Zabbix Server与Agent时间差超过30秒会导致监控数据异常

2. MariaDB数据库优化部署

Zabbix5.0推荐使用MariaDB作为后端数据库,以下是专为监控场景优化的安装配置:

数据库安装与初始化:

yum install -y mariadb-server mariadb systemctl enable --now mariadb mysql_secure_installation

Zabbix专用数据库配置:

CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'StrongPassword@123'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES;

性能优化参数(/etc/my.cnf.d/zabbix.cnf):

[mysqld] innodb_buffer_pool_size = 1G innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT max_connections = 200 query_cache_size = 0

3. Zabbix5.0服务端深度配置

安装Zabbix仓库与核心组件:

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo yum install -y zabbix-server-mysql zabbix-web-mysql-scl zabbix-apache-conf-scl

数据库初始化与导入:

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

关键配置文件优化(/etc/zabbix/zabbix_server.conf):

DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=StrongPassword@123 StartPollers=20 StartPollersUnreachable=10 StartTrappers=15 StartPingers=10 CacheSize=256M HistoryCacheSize=128M TrendCacheSize=64M

4. Web界面与告警系统集成

PHP环境调优(/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf):

php_value[max_execution_time] = 600 php_value[memory_limit] = 256M php_value[post_max_size] = 32M php_value[upload_max_filesize] = 16M php_value[max_input_time] = 600 php_value[date.timezone] = Asia/Shanghai

邮件告警配置实战:

  1. 创建告警媒介类型:

    • 类型:Email
    • SMTP服务器:smtp.163.com
    • SMTP HELO:163.com
    • SMTP电邮:monitor@163.com
    • 认证:用户名/密码认证
  2. 配置触发器动作:

    触发器表达式:{主机:监控项.last()} > 阈值 动作操作:发送消息至用户组"运维团队" 消息内容模板: 告警主机:{HOST.NAME} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME} 当前状态:{TRIGGER.STATUS} 监控取值:{ITEM.NAME}:{ITEM.VALUE}

图形中文乱码解决方案:

yum install -y wqy-microhei-fonts cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

5. 大规模部署优化策略

Agent自动注册方案:

  1. Agent端配置(/etc/zabbix/zabbix_agent2.conf):

    ServerActive=zabbix-server-ip HostnameItem=system.hostname HostMetadata=Linux server
  2. Web界面自动注册规则:

    • 条件:HostMetadata包含"Linux"
    • 操作:链接模板"Linux servers"
    • 添加到主机组"Linux Servers"

Proxy分布式部署:

代理节点配置(/etc/zabbix/zabbix_proxy.conf):

Server=zabbix-server-ip Hostname=proxy-node1 DBName=zabbix_proxy DBUser=zabbix DBPassword=ProxyPass@123 ConfigFrequency=120 DataSenderFrequency=5

性能监控指标参考值:

监控项正常范围告警阈值
Zabbix队列<10>30
数据库连接数<50% max_connections>80% max_connections
服务器负载<CPU核心数>CPU核心数×2
可用内存>总内存20%<总内存10%

6. 常见故障排查指南

数据库连接问题:

# 检查数据库连接 mysql -uzabbix -p -e "SHOW STATUS LIKE 'Threads_connected'" # 查看Zabbix日志 tail -f /var/log/zabbix/zabbix_server.log

Agent通信故障排查:

# 服务端测试Agent连通性 zabbix_get -s agent-ip -k agent.ping # Agent端检查配置 grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf

性能瓶颈分析工具:

# 监控Zabbix内部状态 zabbix_server -R config_cache_reload zabbix_server -R housekeeper_execute # 数据库慢查询分析 mysqldumpslow -s t /var/lib/mysql/mysql-slow.log

7. 高级监控场景实现

自定义监控项开发:

  1. 创建Agent配置文件(/etc/zabbix/zabbix_agent2.d/custom.conf):

    UserParameter=app.thread.count,ps -eLf | grep -c 'java' UserParameter=app.queue.size,curl -s http://localhost:8080/health | jq '.queue'
  2. Web界面配置:

    • 创建监控项:键值为app.thread.count
    • 设置数据更新时间间隔
    • 配置触发器与图形展示

业务级监控看板:

  1. 创建聚合图形
  2. 添加业务关键指标
  3. 设置幻灯片播放
  4. 配置大屏展示模式

监控数据保留策略:

-- 历史数据保留30天 UPDATE config SET history_period='30d' WHERE name='HistoryPeriod'; -- 趋势数据保留365天 UPDATE config SET trends_period='365d' WHERE name='TrendsPeriod';

8. 安全加固与维护建议

Zabbix安全配置:

  • 修改默认Admin密码
  • 创建细分权限用户角色
  • 启用HTTPS访问
  • 配置审计日志

定期维护任务:

# 数据库优化 mysqlcheck -uzabbix -p --optimize zabbix # 日志轮转 logrotate -f /etc/logrotate.d/zabbix-server # 配置备份 mysqldump -uzabbix -p zabbix > zabbix_backup_$(date +%F).sql

容量规划参考:

监控主机数推荐服务器配置数据库配置
<5004C8G4C8G, 50G存储
500-20008C16G8C16G, 200G存储
>200016C32G+Proxy16C32G集群, 500G+存储
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 20:10:26

Linux 锁 (4) - seqlock

文章目录1. 前言2. seqlock 实现3. 小结4. 参考资料1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. seqlock 实现 seqlock 通过一个初始为 0 计数器&#xff0c;实现 writer 和 reader 共享数据…

作者头像 李华
网站建设 2026/9/25 20:11:58

基于Docker与DDNSTO的Nas内网穿透Web服务实战指南

1. 为什么需要内网穿透&#xff1f; 很多朋友买了Nas后&#xff0c;发现只能在局域网内访问存储的文件和部署的服务&#xff0c;这就像买了一栋别墅却只能在后院活动一样浪费。想象一下这样的场景&#xff1a;你在公司想查看家里Nas上的文档&#xff0c;出差时想用手机访问家里…

作者头像 李华
网站建设 2026/9/25 20:10:35

最长公共子序列(LCS)——从零开始的动态规划

LCS最长公共子序列&#xff1a;从理解到实现&#xff0c;一次讲透在字符串和动态规划的学习中&#xff0c;LCS&#xff08;Longest Common Subsequence&#xff0c;最长公共子序列&#xff09;是一个绕不开的经典问题。很多人一开始觉得它和“最长公共子串”差不多&#xff0c;…

作者头像 李华
网站建设 2026/8/23 9:39:55

计算机毕业设计:Python豆瓣图书数据分析平台 Flask框架 可视化 爬虫 书籍 大数据 机器学习(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…

作者头像 李华
网站建设 2026/8/23 9:39:56

用HTML5 Canvas和原生JS手搓一个Emoji消消乐(附完整源码和算法解析)

用HTML5 Canvas和原生JS手搓一个Emoji消消乐&#xff08;附完整源码和算法解析&#xff09; 在移动游戏风靡的今天&#xff0c;消除类游戏因其简单易上手、又兼具策略性的特点&#xff0c;始终占据着一席之地。作为前端开发者&#xff0c;自己动手实现一个消除游戏不仅能巩固Ca…

作者头像 李华