Linux系统监控模块之Zabbix7添加监控主机
目录
一、操作系统监控
1、Linux操作系统
1.1、被监控端配置
1.2、zabbix-server配置
2、Windows操作系统
2.1、Windows端配置
2.2、Zabbix Server配置
二、网络设备监控
1、GNS模拟器的使用
2、添加Cisco路由器的监控
3、结果展示
三、中间件监控
1、MySQL数据库监控
1.1、拷贝自定义的监控脚本到指定目录
1.2、添加监控用户
1.3、重启zabbix-agent服务
1.4、在zabbix-server服务端测试数据
1.5、在UI界面添加监控模版
1.6、添加自定义监控项及图形
2、Redis数据库监控
3、Nginx服务监控
4、MySQL主从监控
一、Zabbix Server(192.168.52.161)配置
1. 安装 Zabbix 组件
2. 配置数据库
3. 配置 Zabbix Server
4. 配置 PHP 时区
5. 启动服务
二、MySQL Master(192.168.52.162)配置
1. 安装 MySQL
2. 配置主库参数
3. 重启 MySQL 并创建复制用户
三、MySQL Slave(192.168.52.164)配置
1. 安装 MySQL
2. 配置从库参数
3. 重启 MySQL 并配置复制
四、Zabbix Agent 配置(Master 和 Slave)
1. 安装 Agent
2. 配置 Agent
3. 启动 Agent
五、Zabbix Web 配置
六、添加主机和模板
七、自定义复制监控(Slave)
1. 创建监控脚本
2. 创建监控项
3. 创建依赖监控项(用于解析 JSON 值)
八、创建触发器
九、安全优化
1. 创建专用监控用户
2. 使用 Zabbix 宏隐藏密码
十、验证配置
十一、性能优化建议
5、Redis集群监控
一、环境规划
二、软件安装与配置
1. Zabbix Server(192.168.52.161)配置
2. Redis 集群节点(192.168.52.165/166/167)配置
三、创建 Redis 集群
1. 生成集群配置(所有节点)
2. 验证集群状态
四、Zabbix 监控配置
1. 在 Redis 节点安装 Zabbix Agent(所有节点)
2. 在 Zabbix Server 创建 Redis 监控脚本
五、在 Zabbix Web 添加 Redis 监控
1. 导入 Redis 监控模板
2. 添加 Redis 主机
六、自定义 Redis 集群监控项
1. 创建集群节点数监控项
2. 创建集群状态监控项
七、创建触发器
1. 集群节点数异常告警
2. 集群状态异常告警
八、验证监控配置
九、安全与性能优化
1. Redis 安全配置
2. Zabbix 性能优化
3. Redis 性能参数
一、操作系统监控
1、Linux操作系统
1.1、被监控端配置
被监控端安装zabbix-agent
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
yum install -y zabbix-agent
配置zabbix-agent
vim zabbix_agentd.conf
117 Server=192.168.115.240 #zabbix serverIP地址
启动zabbix-agent服务
systemctl enable --now zabbix-agent.service
root@localhost zabbix]# netstat -anptu |grep zabbix_agent
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3562/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 3562/zabbix_agentd
1.2、zabbix-server配置
添加主机
数据采集->主机->创建主机
填写内容后如下:
点击“添加”即可。
查看图形
在“可用性”处显示
监测->主机->图形
2、Windows操作系统
2.1、Windows端配置
下载zabbix-agent安装包,地址如下:
https://cdn.zabbix.com/zabbix/binaries/stable/7.0/7.0.4/zabbix_agent-7.0.4-windows-amd64.zip
在非C盘盘符中创建zabbix-agent目录,拷贝zabbix-agent安装包道该目录下,然后直接解压到该目录,最后打开“cmd”命令行,执行如下命令:
E: cd zabbix-agent\bin zabbix_agentd.exe -i -c D:\zabbix-agent\conf\zabbix_agentd.conf zabbix_agentd.exe -s ##验证启动结果 netstat -ano | findstr 10050TCP 0.0.0.0:10050 0.0.0.0:0 LISTENING 8560TCP [::]:10050 [::]:0 LISTENING 8560
2.2、Zabbix Server配置
添加“windows”主机组
数据采集->主机群组->创建主机组
添加主机
数据采集->主机->创建主机
查看图形
在“可用性”处显示
监测->主机->图形
二、网络设备监控
1、GNS模拟器的使用
2、添加Cisco路由器的监控
3、结果展示
三、中间件监控
1、MySQL数据库监控
1.1、拷贝自定义的监控脚本到指定目录
cp /usr/share/doc/zabbix-agent/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
1.2、添加监控用户
mysql create user root@'192.168.115.%' identified by '123.com'; grant all on *.* to root@'192.168.115.%'; vim /etc/my.cnf [client] protocol=tcp user='root' password='123.com'
1.3、重启zabbix-agent服务
systemctl restart zabbix-agent
1.4、在zabbix-server服务端测试数据
yum install -y zabbix-get zabbix_get -s 192.168.115.224 -p 10050 -k "mysql.ping[192.168.115.224,3306]" zabbix_get -s 192.168.115.224 -p 10050 -k "mysql.version[192.168.115.224,3306]" zabbix_get -s 192.168.115.224 -p 10050 -k "mysql.get_status_variables[192.168.115.224,3306]"
1.5、在UI界面添加监控模版
添加主机
查看图形
1.6、添加自定义监控项及图形
在监控mysql端添加自定义项目
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf UserParameter=mysql.database.count[*], mysql -h"$1" -P"$2" -sN -e "show databases" | wc -l
在zabbix-server测试数据
[root@localhost zabbix]# zabbix_get -s 192.168.115.224 -p 10050 -k "mysql.database.count[192.168.115.224,3306]" 4
在UI界面添加监控项及图形
安装GNS3
点击左上角preference
选择IOS routers
点击new
选择已有镜像
修改以上两个地方,然后点击finish
点击左边第五个all devices,将刚添加的路由器拖出
右键选择start
点击console打开控制台
刷新
点击idle-PC
选择数字最高并带*号的节点
然后添加两台host主机,用左六的线进行连接并修改网口,然后开机
然后在虚拟机里配置网卡vmnet1和vmnet2,并将网卡设置为不要吧DHCP地址分配给主机
然后在windterm终端中用telnet远程连接路由器
点击上方画板添加笔记
查看版本
查看接口
进入全局模式,进行配置
进入接口模式0/0
然后进行配置
同样的步骤配置接口1/0
查看配置结果,已经配置好直连路由
在host1主机中配置IP地址,然后连接路由,然后连接默认路由
然后配置host2主机和路由
之后用host1去pinghost2
用示意图表示出用zabbix主机
用虚拟机连接路由器R2
配置zabbix主机和路由的连接
启动zabbix服务器数据库
启动zabbix客户端服务
测试zabbix服务端和路由的连通性
在路由器R2中创建路由器组
在zabbix中添加主机组
添加主机(服务端端口161,客户端端口162)
修改可用值,然后点击添加
选择模板
然后发现有图形界面
点进图形
客户端安装MySQL数据库
将客户端的配置拷贝过来然后进行修改,然后保存退出,重启服务
查看命令可用性
row代表行,输出为一个xml文档
选择服务端,更新模板
在客户端添加MySQL用户用于监控
修改MySQL配置文件
在zabbix服务端进行数据库测试
修改宏
更新之后等一会就可以在图形界面看到数据
2、Redis数据库监控
创建一台主机 ,并安装zabbix-agent2服务(关闭安全上下文和防火墙)
配置安装源
安装zabbix-agent2
在服务端安装并启动edis服务
修改服务端zabbix配置文件
保存退出后重启zabbix服务端
在zabbix网页上配置redis监控
查看图形
3、Nginx服务监控
在服务端安装nginx
然后启动nginx
然后配置模板
可以查看到图形
4、MySQL主从监控
创建监控脚本
赋予权限
添加以下监控项
重启zabbix服务
以下是基于三台主机已完成时间同步的优化配置步骤,重点关注服务安装、配置细节及安全优化,省略防火墙与时区配置相关内容。
一、Zabbix Server(192.168.52.161)配置
1. 安装 Zabbix 组件
# 添加Zabbix源rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpmdnf clean all# 安装核心组件dnf install -y zabbix-server-mysql zabbix-web-nginx zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
2. 配置数据库
# 安装并启动MySQLdnf install -y mysql-serversystemctl enable --now mysqld# 创建Zabbix数据库mysql -u root -pCREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix@123';GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';FLUSH PRIVILEGES;EXIT;# 导入初始Schemazcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
3. 配置 Zabbix Server
# 编辑配置文件vi /etc/zabbix/zabbix_server.conf
修改以下参数:
# 编辑配置文件vi /etc/zabbix/zabbix_server.conf
4. 配置 PHP 时区
vi /etc/php-fpm.d/zabbix.conf
设置时区:
php_value[date.timezone] = Asia/Shanghai
5. 启动服务
systemctl enable --now zabbix-server zabbix-agent nginx php-fpm
二、MySQL Master(192.168.52.162)配置
1. 安装 MySQL
dnf install -y mysql-serversystemctl enable --now mysqld
2. 配置主库参数
vi /etc/my.cnf.d/mysql-server.cnf
添加以下配置:
[mysqld]server-id = 101log_bin = /var/log/mysql/mysql-bin.logbinlog_do_db = test_db # 需要复制的数据库binlog_format = ROW # 推荐使用ROW格式expire_logs_days = 7sync_binlog = 1 # 确保事务安全innodb_flush_log_at_trx_commit = 1
3. 重启 MySQL 并创建复制用户
systemctl restart mysqld# 创建复制用户mysql -u root -pCREATE USER 'repl_user'@'192.168.52.164' IDENTIFIED BY 'Repl@123';GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.52.164';FLUSH PRIVILEGES;# 查看主库状态SHOW MASTER STATUS;
三、MySQL Slave(192.168.52.164)配置
1. 安装 MySQL
dnf install -y mysql-serversystemctl enable --now mysqld
2. 配置从库参数
vi /etc/my.cnf.d/mysql-server.cnf
添加以下配置:
[mysqld]server-id = 104relay_log = /var/log/mysql/mysql-relay-bin.logread_only = 1log_bin = /var/log/mysql/mysql-bin.log # 可选,用于级联复制log_slave_updates = 1sync_relay_log = 1sync_relay_log_info = 1
3. 重启 MySQL 并配置复制
systemctl restart mysqld# 配置复制关系(替换为实际的File和Position值)mysql -u root -pCHANGE MASTER TOMASTER_HOST='192.168.52.162',MASTER_USER='repl_user',MASTER_PASSWORD='Repl@123',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=156;# 启动复制START SLAVE;# 验证状态SHOW SLAVE STATUS\G
四、Zabbix Agent 配置(Master 和 Slave)
1. 安装 Agent
# 添加Zabbix源并安装Agentrpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpmdnf clean alldnf install -y zabbix-agent
2. 配置 Agent
# 配置Master(162)vi /etc/zabbix/zabbix_agentd.conf
修改以下参数:
Server=192.168.52.161ServerActive=192.168.52.161Hostname=MySQL-Master-162# 配置Slave(164)vi /etc/zabbix/zabbix_agentd.conf
修改以下参数:
Server=192.168.52.161ServerActive=192.168.52.161Hostname=MySQL-Slave-164
3. 启动 Agent
systemctl enable --now zabbix-agent
五、Zabbix Web 配置
- 浏览器访问 http://192.168.52.161/zabbix
- 按向导完成配置:
- Database configuration:
- 主机:localhost
-
-
- 数据库名:zabbix
-
- 用户:zabbix
- 密码:Zabbix@123
- Zabbix server configuration:
- 主机名:localhost
-
-
- 端口:10051
-
- 登录(默认账号:Admin,密码:zabbix)
六、添加主机和模板
- 添加 MySQL Master(162):
- Configuration → Hosts → Create host
- Host name:MySQL-Master-162
- Interfaces:IP 填192.168.52.162,端口10050
- Templates:链接Template DB MySQL
- Groups:添加到Databases组
- 点击 Add
- 添加 MySQL Slave(164):
-
- 重复上述步骤,主机名填MySQL-Slave-164,IP 填192.168.52.164
七、自定义复制监控(Slave)
1. 创建监控脚本
# 在Zabbix Server(161)上创建脚本mkdir -p /usr/lib/zabbix/externalscriptsvi /usr/lib/zabbix/externalscripts/check_mysql_slave.sh
脚本内容:
#!/bin/bash# 用法:check_mysql_slave.sh <slave_ip> <mysql_user> <mysql_password>SLAVE_IP=$1USER=$2PASSWORD=$3RESULT=$(mysql -h $SLAVE_IP -u $USER -p$PASSWORD -e "SHOW SLAVE STATUS\G" 2>/dev/null)IO_RUNNING=$(echo "$RESULT" | grep 'Slave_IO_Running:' | awk '{print $2}')SQL_RUNNING=$(echo "$RESULT" | grep 'Slave_SQL_Running:' | awk '{print $2}')DELAY=$(echo "$RESULT" | grep 'Seconds_Behind_Master:' | awk '{print $2}')# 输出JSON格式,便于解析echo "{\"io_running\":\"$IO_RUNNING\",\"sql_running\":\"$SQL_RUNNING\",\"delay\":$DELAY}"
设置权限:
chmod +x /usr/lib/zabbix/externalscripts/check_mysql_slave.shchown zabbix:zabbix /usr/lib/zabbix/externalscripts/check_mysql_slave.sh
2. 创建监控项
- Configuration → Hosts → MySQL-Slave-164 → Items → Create item
- Name:MySQL Slave Replication Status
- Type:External check
- Key:check_mysql_slave.sh[192.168.52.164,zabbix_monitor,Monitor@123] # 使用专用监控用户
- Type of information:Text
- Update interval:30s
3. 创建依赖监控项(用于解析 JSON 值)
- IO Running 状态:
- Name:MySQL Slave IO Running
- Type:Dependent item
- Master item:选择上面创建的MySQL Slave Replication Status
- Key:jsonvalue[,,io_running]
- Type of information:Character
- SQL Running 状态:
- Name:MySQL Slave SQL Running
- Type:Dependent item
- Master item:选择上面创建的MySQL Slave Replication Status
- Key:jsonvalue[,,sql_running]
- Type of information:Character
- 复制延迟(秒):
- Name:MySQL Slave Replication Delay
- Type:Dependent item
- Master item:选择上面创建的MySQL Slave Replication Status
- Key:jsonvalue[,,delay]
- Type of information:Numeric (unsigned)
八、创建触发器
- 复制失败告警:
- Name:MySQL Slave Replication Stopped
- Expression:
{MySQL-Slave-164:mysql_slave_io_running.str(Yes)}=0 or{MySQL-Slave-164:mysql_slave_sql_running.str(Yes)}=0
- Severity:High
- Recovery expression:
{MySQL-Slave-164:mysql_slave_io_running.str(Yes)}=1 and{MySQL-Slave-164:mysql_slave_sql_running.str(Yes)}=1
- 复制延迟告警:
- Name:MySQL Slave Replication Delay > 30s
- Expression:
{MySQL-Slave-164:mysql_slave_replication_delay.last()} > 30
- Severity:Warning
- Recovery expression:
{MySQL-Slave-164:mysql_slave_replication_delay.last()} <= 30
九、安全优化
1. 创建专用监控用户
-- 在Slave(164)上执行CREATE USER 'zabbix_monitor'@'192.168.52.161' IDENTIFIED BY 'Monitor@123';GRANT REPLICATION CLIENT ON *.* TO 'zabbix_monitor'@'192.168.52.161';FLUSH PRIVILEGES;
2. 使用 Zabbix 宏隐藏密码
- Administration → General → Macros → Create macro
- Macro:{$MYSQL_PASSWORD}
- Value:Monitor@123
- 更新监控项 Key 为:check_mysql_slave.sh[192.168.52.164,zabbix_monitor,{$MYSQL_PASSWORD}]
十、验证配置
- 查看监控数据:
- Monitoring → Latest data
- 筛选 MySQL-Slave-164 主机,确认监控项正常采集
- 测试告警:
- 在 Slave(164)执行STOP SLAVE;
- 等待 30 秒,检查 Zabbix 是否触发告警
- 执行START SLAVE;恢复复制,确认告警解除
十一、性能优化建议
- 调整 Zabbix Server 参数:
vi /etc/zabbix/zabbix_server.conf
优化以下参数:
StartPollers=15 # 增加轮询进程数StartTrappers=5 # 增加主动监控进程数CacheSize=128M # 增加缓存大小HistoryCacheSize=64M # 增加历史数据缓存TrendCacheSize=32M # 增加趋势数据缓存
- MySQL 性能参数:
[mysqld]innodb_buffer_pool_size = 512M # 根据服务器内存调整innodb_log_file_size = 128Mquery_cache_type = 0 # 关闭查询缓存(MySQL 8.0默认关闭)
5、Redis集群监控
一、环境规划
至少需要 3 台主机(1 台 Zabbix Server + 3 节点 Redis 集群):
主机角色 | IP 地址 | 软件安装 |
---|---|---|
Zabbix Server | 192.168.52.161 | Zabbix Server 6.4、Zabbix Agent |
Redis Node 1 | 192.168.52.165 | Redis 6.x、Zabbix Agent |
Redis Node 2 | 192.168.52.166 | Redis 6.x、Zabbix Agent |
Redis Node 3 | 192.168.52.167 | Redis 6.x、Zabbix Agent |
二、软件安装与配置
1. Zabbix Server(192.168.52.161)配置
# 添加Zabbix源并安装
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm
dnf clean all
dnf install -y zabbix-server-mysql zabbix-web-nginx zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
# 配置数据库(已存在则跳过)
mysql -u root -p
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabbix@123';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;
# 导入Zabbix架构
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
# 配置Zabbix Server数据库密码
vi /etc/zabbix/zabbix_server.conf
DBPassword=Zabbix@123
# 启动服务
systemctl enable --now zabbix-server zabbix-agent nginx php-fpm
2. Redis 集群节点(192.168.52.165/166/167)配置
# 添加EPEL源并安装Redis
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf install -y redis
# 配置Redis(所有节点)
vi /etc/redis.conf
修改以下参数:
bind 0.0.0.0 # 允许外部访问
protected-mode no # 关闭保护模式
port 6379 # 端口
cluster-enabled yes # 启用集群模式
cluster-config-file nodes.conf # 集群配置文件
cluster-node-timeout 5000 # 节点超时时间
appendonly yes # 开启AOF持久化
# 启动Redis并设置开机自启(所有节点)
systemctl enable --now redis
三、创建 Redis 集群
1. 生成集群配置(所有节点)
# 所有节点执行,生成集群ID
redis-cli --cluster create \
192.168.52.165:6379 \
192.168.52.166:6379 \
192.168.52.167:6379 \
--cluster-replicas 0
按提示输入yes确认创建集群。
2. 验证集群状态
# 任意节点执行
redis-cli -c -h 192.168.52.165 cluster nodes
确保所有节点状态正常(connected)。
四、Zabbix 监控配置
1. 在 Redis 节点安装 Zabbix Agent(所有节点)
# 添加Zabbix源并安装Agent
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm
dnf clean all
dnf install -y zabbix-agent
# 配置Agent指向Zabbix Server
vi /etc/zabbix/zabbix_agentd.conf
修改以下参数:
Server=192.168.52.161
ServerActive=192.168.52.161
Hostname=Redis-Node-165 # 节点1使用
# 或Hostname=Redis-Node-166 # 节点2使用
# 或Hostname=Redis-Node-167 # 节点3使用
# 启动Agent
systemctl enable --now zabbix-agent
2. 在 Zabbix Server 创建 Redis 监控脚本
mkdir -p /usr/lib/zabbix/externalscripts
vi /usr/lib/zabbix/externalscripts/redis_stats.sh
脚本内容:
#!/bin/bash
# 用法: redis_stats.sh <host> <port> <password> <metric>
HOST=$1
PORT=$2
PASSWORD=$3
METRIC=$4
if [ -n "$PASSWORD" ]; thenAUTH="AUTH $PASSWORD"
elseAUTH=""
fi
# 获取Redis信息
INFO=$(redis-cli -h "$HOST" -p "$PORT" $AUTH INFO 2>/dev/null)
if [ $? -ne 0 ]; thenecho "0"exit 1
fi
# 提取指标
case $METRIC inconnected_clients) echo "$INFO" | grep 'connected_clients:' | cut -d: -f2 | tr -d '\r' ;;used_memory) echo "$INFO" | grep 'used_memory:' | cut -d: -f2 | tr -d '\r' ;;used_memory_rss) echo "$INFO" | grep 'used_memory_rss:' | cut -d: -f2 | tr -d '\r' ;;keyspace_hits) echo "$INFO" | grep 'keyspace_hits:' | cut -d: -f2 | tr -d '\r' ;;keyspace_misses) echo "$INFO" | grep 'keyspace_misses:' | cut -d: -f2 | tr -d '\r' ;;role) echo "$INFO" | grep 'role:' | cut -d: -f2 | tr -d '\r' ;;cluster_enabled) echo "$INFO" | grep 'cluster_enabled:' | cut -d: -f2 | tr -d '\r' ;;cluster_known_nodes) echo "$INFO" | grep 'cluster_known_nodes:' | cut -d: -f2 | tr -d '\r' ;;cluster_size) echo "$INFO" | grep 'cluster_size:' | cut -d: -f2 | tr -d '\r' ;;*) echo "0" ;;
esac
设置权限:
chmod +x /usr/lib/zabbix/externalscripts/redis_stats.sh
chown zabbix:zabbix /usr/lib/zabbix/externalscripts/redis_stats.sh
五、在 Zabbix Web 添加 Redis 监控
1. 导入 Redis 监控模板
-
下载模板:Zabbix Redis Template
-
Configuration → Templates → Import
-
选择下载的 XML 模板文件
2. 添加 Redis 主机
-
Configuration → Hosts → Create host
- Host name:Redis-Node-165
- Interfaces:IP 192.168.52.165,端口 10050
- Templates:链接Template App Redis
- Macros:
- {$REDIS.HOST}:192.168.52.165
-
-
-
{$REDIS.PORT}:6379
-
-
- {$REDIS.PASSWORD}:(如无密码则留空)
-
重复上述步骤添加其他 Redis 节点(166、167)
六、自定义 Redis 集群监控项
1. 创建集群节点数监控项
-
Configuration → Hosts → Redis-Node-165 → Items → Create item
- Name:Redis Cluster Nodes
- Type:External check
- Key:redis_stats.sh[192.168.52.165,6379,,cluster_known_nodes]
- Type of information:Numeric (unsigned)
- Update interval:60s
2. 创建集群状态监控项
-
Name:Redis Cluster Status
- Type:Zabbix agent
- Key:system.run[redis-cli -c -h 192.168.52.165 cluster info | grep cluster_state | cut -d: -f2]
- Type of information:Character
- Update interval:60s
七、创建触发器
1. 集群节点数异常告警
-
Name:Redis Cluster Node Count Changed
- Expression:{Redis-Node-165:redis_stats.sh[192.168.52.165,6379,,cluster_known_nodes].last()}<>3
- Severity:Warning
2. 集群状态异常告警
-
Name:Redis Cluster Not Ok
- Expression:{Redis-Node-165:system.run[redis-cli -c -h 192.168.52.165 cluster info | grep cluster_state | cut -d: -f2].str(ok)}=0
- Severity:High
八、验证监控配置
-
查看监控数据:
- Monitoring → Latest data
- 筛选 Redis 节点,确认各项指标正常显示
-
测试集群状态:
- 临时停止一个 Redis 节点:systemctl stop redis
- 检查 Zabbix 是否触发Redis Cluster Node Count Changed告警
- 重启 Redis 节点,确认告警恢复
九、安全与性能优化
1. Redis 安全配置
# 所有节点设置密码(可选)
vi /etc/redis.conf
requirepass YourRedisPassword # 设置强密码
# 重启Redis
systemctl restart redis
2. Zabbix 性能优化
# 编辑Zabbix Server配置
vi /etc/zabbix/zabbix_server.conf
调整参数:
StartPollers=20
StartTrappers=10
CacheSize=256M
HistoryCacheSize=128M
TrendCacheSize=64M
3. Redis 性能参数
vi /etc/redis.conf
调整参数:
maxmemory 2G # 根据服务器内存调整
maxmemory-policy allkeys-lru # 内存淘汰策略
tcp-keepalive 300 # 保持长连接