云平台之Zabbix 监控网站

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

云平台之Zabbix 监控网站
技能目标:
-
了解 Zabbix 模板
-
会创建 Zabbix 模板
-
会监控 Nginx Redis MySQL 主机

4.1.1 案例概述

Zabbix 是一个基于 Web 界面的提供分布式系统监控以及网络监控功能的企业级开源解
决方案。本案例将展示如何使用 Zabbix 实现一个网站的全面监控。
当运维人员有 10 台服务器需要添加监控,应该怎么做呢?运维人员可以一台一台的添
加每一个监控项,一个一个设置触发器。如果动作快,一天之内就能搞定。但是,如果服务
器数量变成 20 台、 30 台、 100 台呢?如果还是运维人员一台一台设置就很耗费人力。 Zabbix
中的监控模板可以解决该问题,只需提前创建一个监控模板,然后将建好的模板应用在所有
服务器上。如此一来无论服务器的数量有多少,只需简单几个动作即可搞定。
平时工作中,运维人员需要监控 Web MySQL Redis Nginx 等服务,众多服务器的
业务都是一样的。所以只要事先创建好模板,然后所有服务器链接这个模板。如果后续有修
改或新增一些功能,只需要修改模板即可。

4.1.2 案例环境

1. 本案例实验环境

本案例共使用四台主机,分别作为 Zabbix Server 服务器、 Nginx 服务器、 Redis 服务
器以及 MySQL 服务器。服务器具体环境信息如表 4-1 所示。
4-1 服务器具体环境信息
角色系统主机名/IP 地址安装软件
Zabbix ServerCentOS 7.3zabbix/192.168.101.128
Zabbix ServerZabbix Web
MariaDBNginxphp-fpm
NginxCentOS 7.3nginx/192.168.101.129Nginx
RedisCentOS 7.3redis/192.168.101.130Redis
MySQLCentOS 7.3mysql/192.168.101.131MariaDB

MariaDB案例拓扑如图 4.1 所示。

4.1 Zabbix 监控网站网络拓扑

2. 案例需求

1 )部署 Zabbix 服务器。
2 )创建 Nginx Redis MySQL 模板。
3 )应用 Nginx Redis MySQL 模板。

3. 案例实现思路

1 )安装 LNMP + Zabbix Server
2 )安装 Nginx
3 )安装 Redis
4 )安装 MySQL
5 )创建 Nginx Redis MySQL 模板。
6 )应用 Nginx Redis MySQL 模板。

4.2 案例实施

4.2.1 服务器基本配置

执行服务器基本配置,需要四步完成:服务器环境初始化、安装 YUM 源、安装 Zabbix
Server 数据库,安装 Nginx Redis MariaDB 服务。
1. 服务器环境初始化

(1)关闭防火墙与 SELinux

在所有主机上执行以下操作。
[root@zabbix ~]# systemctl stop firewalld
[root@zabbix ~]# systemctl disable firewalld
[root@zabbix ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
[root@zabbix ~]# setenforce 0

(2)启动 NTP 服务

在所有主机上执行以下操作。
[root@zabbix ~]# yum -y install ntp
[root@zabbix ~]# systemctl start ntpd
[root@zabbix ~]# systemctl enable ntpd
Created
symlink
from
/etc/systemd/system/multi-user.target.wants/ntpd.service
to
/usr/lib/systemd/system/ntpd.service.

2. 安装 YUM 源

在所有主机上执行以下命令,安装 Zabbix 所需 YUM 源。
[root@zabbix ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@zabbix ~]# rpm -Uvh
http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

3. 在 Zabbix Server 主机上安装数据库

[root@zabbix ~]# yum install -y mariadb-server
[root@zabbix ~]# s ystemctl start mariadb
[root@zabbix ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
[root@zabbix ~]# mysql
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED
BY 'password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED
BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

4. 安装 Nginx 服务、Redis 服务和 MariaDB 服务

分别在 Nginx 主机、 Redis 主机和 MySQL 主机上安装 Nginx 服务、 Redis 服务和
MariaDB 服务。
[root@nginx ~]# yum install -y nginx
[root@nginx ~]# systemctl start nginx
[root@nginx ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to
/usr/lib/systemd/system/nginx.service.
[root@redis ~]# yum install -y redis
[root@redis ~]# systemctl start redis
[root@redis ~]# systemctl enable redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to
/usr/lib/systemd/system/redis.service.
[root@mysql ~]# yum install -y mariadb-server
[root@mysql ~]# systemctl start mariadb
[root@mysql ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.

4.2.2 部署 Zabbix Server

1.安装配置 Zabbix Server 与 Zabbix Web

安装基于 MySQL Zabbix Server Zabbix Web
[root@zabbix ~]# yum install -y zabbix-server-mysql-3.2.11 zabbix-web-mysql-3.2.11
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix
-p zabbix
//Zabbix 数据库初始化
编辑 Zabbix Server 配置文件,修改数据库连接信息。
[ root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
[root@zabbix ~]# systemctl start zabbix-server
[root@zabbix ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to
/usr/lib/systemd/system/zabbix-server.service.
安装 Nginx php-fpm
[root@zabbix ~]# yum install -y nginx php-fpm
编辑 Nginx 配置文件,添加如下加粗部分内容。
[root@zabbix ~]# vim /etc/nginx/nginx.conf
......
// 省略部分内容
server {
listen
80 default_server;
listen
[::]:80 default_server;
server_name _;
index index.html index.php;
root
/usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
location ~ \.php$ {
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param
SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
......
// 省略部分内容
编辑 php.ini 文件,修改如下配置项。
[root@zabbix ~]# vim /etc/php.ini
post_max_size = 16M
// 最大 POST 数据限制
max_execution_time = 300
// 每脚本最大执行时间
max_input_time = 300
// 每脚本可用于分析请求数据的最大时间量
memory_limit = 128M
// 脚本可使用的最大内存量
upload_max_filesize = 2M
// 最大上传文件限制
date.timezone = Asia/Shanghai
// 时区设置
拷贝 Zabbix Server Web 目录至 Nginx 主目录。
[root@zabbix ~]# cp -rp /usr/share/zabbix /usr/share/nginx/html/
启动 Nginx php-fpm
[root@zabbix ~]# systemctl start nginx php-fpm
[root@zabbix ~]# systemctl enable nginx php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to
/usr/lib/systemd/system/nginx.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to
/usr/lib/systemd/system/php-fpm.service.

2.安装 Zabbix Web 接口

在浏览器中,输入访问地址 http://192.168.101.128/zabbix ,将会进入到 Zabbix 安装引
导页面,如图 4.2 所示。
4.2 Zabbix 安装引导页面
点击图 4.2 中的 “Next step” 按钮, Zabbix 将自动检测自身运行所依赖的 php 配置项,
如图 4.3 所示。绿色的 “OK” 表示检测通过;红色的 “Fail” 表示检测失败。此时用户可根据建
议值继续修改 php.ini 文件,然后重启 php-fpm 服务,并刷新页面继续安装步骤。
图 4.3 Zabbix 检测 php 配置项
如检测全部通过,点击图 4.3 中的 “Next step” 按钮进入数据库配置页面,并填写正确的
配置,如图 4.4 所示。
4.4 配置数据库连接
点击图 4.4 中的 “Next step” 按钮进入细节设置页面。在该页面可以设置 Zabbix Server
的主机名及端口等信息。本案例中保持默认值,如图 4.5 所示。
图 4.5 配置 Zabbix 主机名及端口
点击图 4.5 中的 “Next step” 按钮进入信息确认页面,如图 4.6 所示。
图 4.6 信息确认页面
点击图 4.6 中的 “Next step” 按钮进入安装完成页面,如图 4.7 所示。
图 4.7 安装完成页面
点击 “Finish” 按钮,完成安装并进入 Zabbix Web 登录页面,如图 4.8 所示。
图 4.8 Zabbix Web 登录页面
输入默认用户名 / 密码: Admin/zabbix ,点击“ Sign in ”按钮,进入监控仪表页面,如
4.9 所示。
 
4.9 Zabbix 监控仪表页面

3.修改 Zabbix Web 接口的页面语言及登录密码

点击右上角的管理员图标
,进入管理员设置页面。在 Password 处修改管理员密码,
并在 Language 处设置页面语言为中文,如图 4.10 所示。
图 4.10 修改密码设置语言
修改完成后,点击“ Update ”按钮更新修改配置。 Dashboard 页面语言可自动变为中
文,如图 4.11 所示。
4.11 中文页面效果

4.2.3 添加 Nginx 监控

1. 创建 Nginx 模板

创建 Nginx 模板需要依次点击 配置 模板 创建模板 ,如图 4.12 所示。
图 4.12 创建模板
设置 模板名称 “Templates App Nginx” ,并加入 “Zabbix Templates” 群组中,点击
按钮完成模板的创建操作,如图 4.13 所示。
图 4.13 添加模板信息
创建完成后,在模板列表中可以看到刚刚创建完成的 “Template App Nginx” ,如图 4.14
所示。
图 4.14 模板创建完成
2. 创建应用集
点击 “Template App Nginx” 开始编辑模板。首先需要创建应用集,依次点击 应用集
创建应用集 ,在 名称 一栏中输入 “Nginx” ,并点击 添加 按钮,完成新应用集的创建,如
图 4.15 所示。
4.15 创建应用集
3. 创建监控项
创建 “Nginx 应用集后,开始创建监控项,依次点击 监控项 创建监控项 ,进入监控
项创建页面。输入名称 “Nginx $1” 、键值 “nginx[active_connections]” ,信息类型选择 浮点
,应用集选择 “Nginx” 后点击 添加 按钮,完成一个监控项的创建。监控名称中 “$1” 的值等
于键值中方括号中的内容。
此处键值一项按图 4.16 所示输入即可,后面将在 Zabbix 中设置键值获取的方式。
配置 Nginx 活跃连接数
图 4.16 创建监控项
按照上面的方式,继续创建如下几个监控项。
配置监控 Nginx 客户端的连接数
输入名称 “Nginx $1” ,输入键值 “nginx[writing]” ,信息类型选择 浮点数 ,应用集选择
“Nginx” 。然后,点击 添加 按钮,如图 4.17 所示。
图 4.17 监控 Nginx 客户端的连接数配置
配置监控 Nginx 等待下一次请求指令的驻留连接数
输入名称 “Nginx $1”, 输入键值 “nginx[waiting]” ,信息类型选择 浮点数 ,应用集选择
“Nginx” 。然后,点击 添加 按钮,如图 4.18 所示。
4.18 Nginx 等待下一次请求指令的驻留连接数配置
配置监控 Nginx 读取客户端的连接数
输入名称 “Nginx $1” ,输入键值 “nginx[reading]” ,信息类型选择 浮点数 ,应用集选择
“Nginx” 。然后,点击 添加 按钮,如图 4.19 所示。
4.19 Nginx 读取客户端的连接数配置
配置监控 Nginx 总共处理的请求数
输入名称 “Nginx $1/sec” ,输入键值 “nginx[handled_requests]” ,信息类型选择 浮点数
应用集选择 “Nginx” 。然后,点击 添加 按钮,如图 4.20 所示。
图 4.20 Nginx 总共处理的请求数
配置监控 Nginx 接受的连接数
输入名称 “Nginx $1/sec” ,输入键值 “nginx[accepted_connections]” ,信息类型选择
点数 ,应用集选择 “Nginx” 。然后,点击 添加 按钮,如图 4.21 所示。
图 4.21 Nginx 接受的连接数配置
配置监控 Nginx 处理的连接数
输入名称 “Nginx $1/sec” ,输入键值 “nginx[handled_connections]” ,信息类型选择 浮点
,应用集选择 “Nginx” 。然后,点击 添加 按钮,如图 4.22 所示。
图 4.22 Nginx 处理的连接数配置
配置监控 Nginx 开机启动
输入名称 “Nginx is enable autostart” ,输入键值 “chkconfig[nginx]” ,信息类型选择 数字
(无正负) ,数据类型选择 布尔 ,应用集选择 “Nginx” 。然后,点击 添加 按钮,如图 4.23
所示。
图 4.23 监控 Nginx 开机启动配置
配置监控 Nginx 版本
输入名称 “Nginx Version” ,输入键值 “nginx.version” ,信息类型选择 字符 ,应用集选
“Nginx” 。然后,点击 添加 按钮,如图 4.24 所示。
4.24 监控 Nginx 版本配置
配置监控 Nginx 进程数
输入名称 “Number of $1 process” ,输入键值 “proc.num[nginx]” ,信息类型选择 数字(无
正负) ,数据类型选择 十字位数字 ,应用集选择 “Nginx” 。然后,点击 添加 按钮,如图
4.25 所示。
图 4.25 监控 Nginx 进程数配置

4. 创建触发器

创建触发器,依次点击 触发器 创建触发器 ,创建如下触发器。
配置 Nginx 开机启动触发器
输 入名 称 “Nginx is not enabled in autostart” ,严 重性 选 择 警 告 , 表达 式 输入
“{Templates App Nginx:chkconfig[nginx].last(0)}=0” 。然后,点击最下方的 添加 按钮,如
4.26 所示。
图 4.26 Nginx 开机启动触发器配置
配置 Nginx 运行状态触发器
输入名称 “Nginx is not running” ,严重性选择 严重 ,表达式输入 “{Templates App
Nginx:proc.num[nginx].last(0)}=0” ,。然后,点击最下方的 添加 按钮,如图 4.27 所示。
图 4.27 Nginx 运行状态触发器配置
配置 Nginx 版本变化触发器
输入名称 “version of nginx server was changed” ,严重性选择 信息 ,表达式输入
“{Templates App Nginx:nginx.version.diff(0)}=0” 。然后,点击最下方的 添加 按钮,如图 4.28
所示。
4.28 Nginx 版本变化触发器配置

5. 创建图形

创建图形,依次点击 图形 创建图形 ,创建 Nginx 连接数和请求数趋势图、 Nginx
线程状态图。
配置 Nginx 连接数和请求数趋势图
输入名称 “Nginx-Connections and Requested status” ,监控项添加刚才创建的三个连
接请求数监控项。然后,点击最下方的 添加 按钮,如图 4.29 所示。
图 4.29 Nginx 连接数和请求数趋势图配置
配置 Nginx 线程状态图
输入名称 “Nginx-Threads status” ,监控项添加刚才创建的三个线程监控项。然后,点
击最下方的 添加 按钮,如图 4.30 所示。
图 4.30 Nginx 线程状态图配置
至此, Nginx 创建完成。

6. Nginx 主机添加监控脚本

Nginx 主机上进行如下操作。
[root@nginx ~]# yum install -y zabbix-agent
[root@nginx ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to
/usr/lib/systemd/system/zabbix-agent.service.
[root@nginx ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.101.128
ServerActive=192.168.101.128
Hostname=Zabbix Agent
[root@nginx ~]# mkdir /etc/zabbix/scripts
// 创建目录保存监控脚本,目录自定义
[root@nginx ~]# vim /etc/zabbix/scripts/nginx-check.sh
// 创建监控脚本,脚本名称自定义
#!/bin/bash
# Zabbix requested parameter
ZBX_REQ_DATA="$1"
ZBX_REQ_DATA_URL="$2"
# Nginx defaults
NGINX_STATUS_DEFAULT_URL="http://localhost:10080/nginx_status"
# 设置 Nginx 监 控
URL
WGET_BIN="/usr/bin/wget"
# 定义监控工具
#
# 设置错误返回值 :
# - 能够在 Zabbix 中展示 ( 避免 NOT_SUPPORTED)
#
ERROR_NO_ACCESS_FILE="-0.9900"
ERROR_NO_ACCESS="-0.9901"
ERROR_WRONG_PARAM="-0.9902"
ERROR_DATA="-0.9903" # either can not connect /bad host / bad port
# 如果没有设定 URL 则取默认值
if [ ! -z "$ZBX_REQ_DATA_URL" ]; then
URL="$ZBX_REQ_DATA_URL"
else
URL="$NGINX_STATUS_DEFAULT_URL"
fi
# nginx 状态数据存入变量中
NGINX_STATS=$($WGET_BIN -q $URL -O - 2> /dev/null)
# 处理访问过程中的错误
if [ $? -ne 0 -o -z "$NGINX_STATS" ]; then
echo $ERROR_DATA
exit 1
fi
#
# 获取 nginx 状态数据中的特定数值(即 zabbix 模板中添加的监控项)
#
case $ZBX_REQ_DATA in
active_connections)
echo "$NGINX_STATS" | head -1
| cut -f3 -d' ';;
accepted_connections) echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f2 -d' ';;
handled_connections) echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f3 -d' ';;
handled_requests)
echo "$NGINX_STATS" | grep -Ev '[a-zA-Z]' | cut -f4 -d' ';;
reading)
echo "$NGINX_STATS" | tail -1
| cut -f2 -d' ';;
writing)
echo "$NGINX_STATS" | tail -1
| cut -f4 -d' ';;
waiting)
echo "$NGINX_STATS" | tail -1
| cut -f6 -d' ';;
*) echo $ERROR_WRONG_PARAM; exit 1;;
esac
exit 0
[root@nginx ~]# chmod +x /etc/zabbix/scripts/nginx-check.sh
// 为脚本添加可执行权限

1. 添加 Zabbix Agent 配置,并重启 Zabbix Agent

[root@nginx ~]# vim /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx[*],/etc/zabbix/scripts/nginx-check.sh "$1" "$2"
// 创建 nginx.conf 文件,写入以上代码
[root@nginx ~]# systemctl restart zabbix-agent

2. 添加 Nginx 配置,创建监控 URL

[root@nginx ~]# vim /etc/nginx/conf.d/nginx-status.conf
server {
listen 10080;
server_name _;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
[root@nginx ~]# systemctl restart nginx

3. 验证 Nginx 监控数值获取

Zabbix Server 主机执行如下命令测试。
[root@zabbix ~]# yum install -y zabbix-get
[root@zabbix ~]# zabbix_get -s 192.168.101.129 -k nginx[active_connections]
1
// 如有数值返回则证明配置成功 , 可用多个浏览器访问测试,此连接数会增加

4. 添加客户端主机

添加客户端主机,依次选择 配置 主机 创建主机 ,如图 4.31 所示。
图 4.31 添加客户端主机配置
填写客户端相关信息,输入主机名称 “Nginx”, 输入可见的名称 “Nginx-01” ,群组选择
“Linux servers” ,新的群组输入 “Nginx server” IP 地址输入 “192.168.101.129” 。然后,点
添加 按钮,完成主机创建,如图 4.32 所示。
图 4.32 添加 Nginx 主机

5. 关联模板和主机

依次选择 配置 模板 “Template App Nginx” ,在 主机 / 模板 处添加刚刚创建的
“Nginx-01” 主机,并点击 更新 按钮,如图 4.33 所示。
图 4.33 关联模板和主机配置

6. 结果验证

依次点击 监测中 最新数据 ,在 主机 一栏输入 “Nginx-01”, 点击 应用 按钮,在下方
可以看到 Nginx 主机最新数据获取结果,如图 4.34 所示。
图 4.34 Nginx 主机监控结果
4.2.4 添加 Redis 监控
1. 创建 Redis 模板
创建 Redis 模板的方法同上,依次点击 配置 模板 创建模板 ,设置 模板名称
“Templates App Redis” ,并添加到 “Zabbix Templates” 群组。点击 添加 按钮完成创建,
如图 4.35 所示。
图 4.35 创建 Redis 模板配置
2. 创建应用集
创建 Redis 应用集, 应用集 创建应用集 ,名称输入 “Redis” 。再点击 添加 按钮,
如图 4.36 所示。
图 4.36 创建 Redis 应用集
3. 创建 Redis 监控项
需要创建的 Redis 监控项有:监控 Redis 开机启动、监控 Redis 版本、监控 Redis
否宕机、监控 Redis 总连接数、监控 Redis 执行的操作命令总数、监控 Redis 最近一次存
盘的状态。
监控 Redis 开机启动
应用集创建完成后,开始创建监控项。依次点击 监控项 创建监控项 ,进入监控项
创建页面。输入名称 “Redis enabled autostart” ,输入键值 “chkconfig[redis]” ,信息类型选择
数字(无正负) ,数据类型选择 布尔 ,应用集选择 “Redis” 。然后,点击 添加 按钮,完
成监控项的创建。如图 4.37 所示。
图 4.37 Redis 监控项配置
监控 Redis 版本
依次点击 监控项 创建监控项 ,进入监控项创建页面。输入名称 “Redis Version”
输入键值 “redis.version” ,信息类型选择 字符 ,应用集选择 “Redis” 。然后,点击 添加 按钮,
完成监控项的创建,如图 4.38 所示。
图 4.38 监控 Redis 版本
监控 Redis 是否宕机
依次点击 监控项 创建监控项 ,进入监控项创建页面。输入名称 “[Redis]server is
running” ,输入键值 “net.tcp.port[,6379]” ,信息类型选择 数字(无正负) ,数据类型选择
进位数字 ,应用集选择 “Redis” 。然后,点击 添加 按钮,完成监控项的创建。如图 4.39
示。
图 4.39 监控 Redis 是否宕机
监控 Redis 总连接数
输入名称 “[Redis]$1” ,输入键值 “redis[total_connections_received]” ,信息类型选择
字(无正负) ,数据类型选择 十进位数字 ,应用集选择 “Redis” 。然后,点击 添加 按钮,
完成监控项的创建,如图 4.40 所示。
图 4.40 监控 Redis 总连接数
监控 Redis 执行的操作命令总数
输入名称 “[Redis]$1” ,输入键值 “redis[total_commands_processed]” ,信息类型选择
字(无正负) ,数据类型选择 十进位数字 ,应用集选择 “Redis” 。然后,点击 添加 按钮,
完成监控项的创建,如图 4.41 所示。
图 4.41 监控 Redis 执行的操作命令总数
监控 Redis 最近一次存盘的状态
输入名称 “[Redis]$1” ,输入键值 “redis[rdb_last_bgsave_status]” ,信息类型选择 文本
应用集选择 “Redis” 。然后,点击 添加 按钮,完成监控项的创建,如图 4.42 所示。
图 4.42 监控 Redis 最近一次存盘的状态
4. 创建 Redis 触发器
Redis 开机启动触发器
创建 Redis 开机启动触发器,即如果 Redis 未开机启动,则触发警报。名称输入 “Redis
is not enabled in autostart” , 严 重 性 选 择 警 告 , 表 达 式 输 入 “{Templates App
Redis:chkconfig[redis].last(0)}=0” ,如图 4.43 所示。
图 4.43 Redis 开机启动触发器配置
Redis 宕机触发器
创建 Redis 宕机触发器,即如果 Redis 宕机,则触发警报。名称输入 “Redis is down”,
严重性选择 灾难 ,表达式输入 “{Templates App Redis:net.tcp.port[,6379].last(0)}=0” ,如
4.44 所示。
图 4.44 Redis 宕机触发器配置
Redis 响应触发器
创建 Redis 响应触发器,名称输入 “Redis is not responding” ,严重性选择 严重 ,表达
式输入 “{Templates App Redis:redis[total_commands_processed].nodata(2m)}=1” ,如图
4.45 所示。
图 4.45 Redis 响应触发器配置
5. 添加 Redis 图形
创建图形,依次点击 图形 创建图形 ,创建 Redis 总连接数、总命令数趋势图。
输入名称 “[Redis]Total” ,监控项添加刚才创建的监控项。然后,点击最下方的 添加
钮,如图 4.46 所示。
图 4.46 Redis 总连接数、总命令数趋势图配置
至此, Redis 模板创建完毕。
6. Redis 主机添加模板
(1)添加 Redis 配置
Redis 主机上进行如下操作。
[root@redis ~]# yum install -y zabbix-agent
[root@redis ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.101.128
ServerActive=192.168.101.128
Hostname=Zabbix Agent
[root@redis ~]# systemctl start zabbix-agent
[root@redis ~]# systemctl enable zabbix-agent
Created symlink from
/etc/systemd/system/multi-user.target.wants/zabbix-agent.service to
/usr/lib/systemd/system/zabbix-agent.service.
[root@redis ~]# vim /etc/zabbix/zabbix_agentd.d/redis.conf
UserParameter=redis[*],redis-cli info | grep $1":" | cut -d ':' -f 2
UserParameter=redis.version, redis-server --version | cut -d " " -f 3 | cut -d "=" -f 2
// 创建 redis.conf 文件,写入以上代码
[root@redis ~]# systemctl restart zabbix-agent
zabbix 主机上验证 Redis 监控数据获取。
[root@zabbix ~]# zabbix_get -s 192.168.101.130 -k
redis[total_commands_processed]
1
// 如有数值返回则证明配置成功
(2)添加 Redis 主机
Zabbix 的管理界面,依次选择 配置 主机 创建主机 ,在创建主机界面,填入
主机信息。主机名称输入 “redis” ,可见的名称输入 “redis-01” ,新的群组输入 “Redis Server”
然后输入 Redis 主机 IP 地址 “192.168.101.130”, 其他保持默认。点击最下方 添加 按钮,如
图 4.47 所示。 4.47 添加 Redis 主机
(3)关联模板和主机
依次选择 配置 模板 “Templates App Redis” ,在 主机 / 模板 处添加刚刚创建的
“Redis-01” 主机,并点击 更新 按钮,如图 4.48 所示。
图 4.48 关联模板和主机配置
结果验证,依次点击 监测中 最新数据 ,在 主机 一栏输入 “redis-01” ,点击 应用
按钮,在下方可以看到 Redis 主机最新数据获取结果,如图 4.49 所示。
图 4.49 Redis 主机监控结果
4.2.5 添加 MySQL 监控
1. MySQL 模板
MySQL 模板默认包含在 Zabbix 中,依次选择 配置 模板 。在默认的模板中,可以
找到 “Template App MySQL” 模板,如图 4.50 所示。因此,用户只需要设置客户端。
图 4.50 默认 MySQL 模板
2. 配置 MySQL
创建 MySQL 监控账户。
[root@mysql ~]# mysql
MariaDB [(none)]> GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED
BY '654321';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
[root@mysql ~]# yum install -y zabbix-agent
[root@mysql ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.101.128
ServerActive=192.168.101.128
Hostname=Zabbix agent
[root@mysql ~]# systemctl start zabbix-agent
[root@mysql ~]# systemctl enable zabbix-agent
Created
symlink
from
/etc/systemd/system/multi-user.target.wants/zabbix-agent.service
to
/usr/lib/systemd/system/zabbix-agent.service.
创建配置文件 /etc/zabbix/.my.cnf 以提供 Zabbix Agent 访问数据库。
[root@mysql ~]# vim /etc/zabbix/.my.cnf
# Zabbix Agent
[mysql]
host=localhost
user=zabbix
password=654321
[mysqladmin]
host=localhost
user=zabbix
password=654321
// 创建 .my.cnf 文件,写入以上内容
修改监控配置文件 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf ,将所有的
“/var/lib/zabbix” 修改为当前 .my.cnf 文件的路径 “/etc/zabbix”
[root@mysql
~]#
sed
-i
's/\/var\/lib\/zabbix/\/etc\/zabbix/g'
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
[root@mysql ~]# systemctl restart zabbix-agent
Zabbix Server 主机执行下列命令,验证获取 MySQL 状态数据的效果。
[root@zabbix ~]# zabbix_get -s 192.168.101.131 -k mysql.status[Com_begin]
0
// 如有数值返回则证明配置成功
3. 添加 MySQL 主机
Zabbix 的管理界面,依次选择 配置 主机 创建主机 。在创建主机界面,填入
主机信息。主机名称输入 “MySQL” ,可见的名称输入 “MySQL-01” ,新的群组输入 “MySQL
Server” ,然后输入 MySQL 主机 IP 地址 “192.168.101.131” ,其他保持默认值。点击最下方
添加 按钮,如图 4.51 所示。
图 4.51 添加 MySQL 主机
关联模板和主机,依次选择 配置 模板 “Templates App MySQL” ,在 主机 / 模板
处添加刚刚创建的 “MySQL-01” 主机,其他保持默认值。然后,点击 更新 按钮,如图 4.52
所示。
4.52 关联 MySQL 模板和主机
结果验证,依次点击 监测中 最新数据 ,在 主机 一栏输入 “MySQL-01” 。点击 应用
按钮,下方可以看到 MySQL 主机最新数据获取结果,如图 4.53 所示。
图 4.53 MySQL 主机监控结果
至此, Nginx Redis MySQL 模板创建及应用已完成。当后续有新增的需要被监控的
Nginx Redis MySQL 主机,直接创建主机并关联对应的模板即可实现监控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux运维老纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值