当前位置:首页 > 数据库 > 正文

zabbix怎么监控数据库

bbix监控数据库可通过官方模板实现,如MSSQL by ODBC或PostgreSQL插件,配置数据源、账号权限及宏变量即可采集指标并告警

是关于如何使用Zabbix监控数据库的详细说明,涵盖不同数据库类型的配置步骤、关键技术要点及最佳实践:

核心监控方式选择

根据目标环境和需求灵活选用以下三种机制:

  1. Zabbix Agent模式(推荐主流方案)
    • 适用场景:大多数物理/虚拟机上的数据库服务(如MySQL、PostgreSQL)
    • 实现原理:在被监控服务器部署Agent组件,自动采集预设指标并上报至Server端
    • 优势特点:支持本地命令执行、进程级监控,适合细粒度数据采集
  2. SNMP协议模式
    • 典型应用:网络设备集成的数据库模块或无法安装Agent的特殊环境
    • 配置重点:需预先在设备启用SNMP服务,通过OID获取基础性能数据
  3. External Check外部脚本
    • 特殊价值:当标准协议不可用时,可自定义Python/Shell脚本实现高级逻辑判断
    • 注意事项:该方式会增加Server端负载,建议控制并发实例数量

主流数据库适配方案对比

数据库类型 关键依赖包 认证配置路径 特有权限要求
Oracle cx_Oracle + Instant Client /etc/profile环境变量 CONNECT, SELECT ANY DICTIONARY
MySQL mysql-client库 /etc/zabbix/.my.cnf文件 USAGE权限+socket文件定位
SQL Server unixODBC驱动 /etc/odbcinst.ini配置段 VIEW SERVER STATE级权限
PostgreSQL pg_monitor角色授权 pg_hba.conf信任策略设置 继承默认权限体系

实施步骤详解(以Oracle为例)

前置环境准备

# 安装Oracle客户端基础包
rpm -ivh oracle-instantclient11.2-basic.rpm
rpm -ivh oracle-instantclient11.2-devel.rpm
rpm -ivh oracle-instantclient11.2-sqlplus.rpm
# 配置动态链接库路径
echo 'export ORACLE_HOME=/usr/lib/oracle/11.2/client64' >> /etc/profile
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib' >> /etc/profile
source /etc/profile
ldconfig

Python脚本部署

将自定义监控脚本放置于指定目录并赋权:

mv pyora.py /usr/lib/zabbix/externalscripts/
chmod 755 /usr/lib/zabbix/externalscripts/pyora.py

数据库用户创建

CREATE USER zabbix IDENTIFIED BY zabbix;
GRANT CONNECT, SELECT ANY DICTIONARY TO zabbix;

功能验证测试

执行命令行测试确保连通性:

python pyora.py --username zabbix --password zabbix --address <IP> --port 1521 --database orcltest show_tablespaces

成功返回JSON格式数据即表示基础环境就绪。

zabbix怎么监控数据库  第1张

MySQL监控专项配置

凭证管理优化

创建专用配置文件避免明文存储密码:

# /etc/zabbix/.my.cnf内容示例
[mysql]
host=localhost
user=zabbix
password=zabbix
socket=/var/lib/mysql/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=zabbix
socket=/var/lib/mysql/mysql.sock

Agent参数映射调整

使用sed批量修正路径指向:

sed -i 's@/var/lib/zabbix@/etc/zabbix@g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
systemctl restart zabbix-agent

此操作确保Agent能正确加载新的认证配置。

SQL Server监控体系搭建

ODBC驱动安装与验证

yum -y install unixODBC unixODBC-devel
# 微软官方驱动安装略过...
isql -v TEST "username" "password" # 测试连接有效性

Zabbix模板应用技巧

在主机配置中关联内置模板时,特别注意三个核心宏变量设置:
| 宏名称 | 对应值示例 | 作用范围 |
|——————|————————–|———————|
| {$MSSQL.DSN} | TEST | DSN名称映射 |
| {$MSSQL.USER} | zbx_monitor | 认证账号 |
| {$MSSQL.PASSWORD}| 加密后的凭证字符串 | 安全存储机制 |
建议启用密文模式存储敏感信息。

PostgreSQL监控增强方案

专用监控账号创建

CREATE USER zbx_monitor WITH PASSWORD 'zbx_monitor';
GRANT pg_monitor TO zbx_monitor;

HBA规则配置强化安全性

编辑pg_hba.conf添加如下条目:

host    all            zbx_monitor        127.0.0.1/32        trust
host    all            zbx_monitor        0.0.0.0/0          md5
host    all            zbx_monitor        ::0/0              md5

重启服务使配置生效:

systemctl restart postgresql

该策略实现本地环回地址免认证访问,同时限制外部网络必须使用密码验证。

常见问题解决方案

Q1: Zabbix无法获取MySQL数据提示访问拒绝?
A: 检查三点:①确认.my.cnf文件中socket路径与实际MySQL Unix套接字路径一致;②验证Agent进程是否具有读取该文件的权限;③执行mysqladmin ping命令手动验证连接可行性。

Q2: SQL Server监控出现TLS证书错误?
A: 在ODBC连接字符串中增加TrustServerCertificate=yes参数,该选项允许跳过不受信任的CA颁发的证书验证流程。

通过以上结构化部署方案,可实现对各类数据库的全生命周期监控,涵盖可用性检查、性能趋势分析及容量规划等多个维度,建议结合具体业务场景定制触发器阈值,例如设置表空间使用率超过85%时触发告

0