云平台之Zabbix 监控网站

news2024/9/21 20:53:31

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

推荐: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 主机,直接创建主机并关联对应的模板即可实现监控。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NMPC非线性模型预测控制经验分享与代码实例

NMPC非线性模型预测控制经验分享与代码实例 原本做完本科毕设之后就应该动笔写这一部分,但是做的过程中慢慢意识到自己懂的只是一点点。最近重新接触一些优化相关的问题,希望能够做出我认知之下比较好的解答。本人知识有限,难免写的有问题&am…

ClickHousez中如何定时清理过期数据库?

一、脚本清理 要在ClickHouse中自动删除过期的数据库,你可以使用ClickHouse的SQL命令结合外部脚本(如Shell脚本)和计划任务(如cron)来实现。下面是一个示例,展示如何创建一个Shell脚本来检查数据库的创建时…

1、.Net UI框架:Avalonia UI - .Net宣传系列文章

Avalonia UI是一个开源的跨平台UI框架,它允许开发者使用C#和XAML来创建应用程序,这些应用程序可以在多个平台上运行,包括Windows、macOS、Linux、Android和iOS。Avalonia UI的设计目标是提供一个现代化、可移植的UI框架,它具有类似…

C++之搜索二叉树(上)

目录 搜索二叉树的概念 搜索二叉树的操作 递归版本 二叉树的插入 二叉树的查找 二叉树的删除 非递归版本 二叉树的递归插入 二叉树的递归查找 二叉树的递归删除 在之前我们已经学习过了二叉树这一数据结构,本期我们将学习一种新的数据结构------搜索二…

Ubuntu服务器时间和本地时间不一致怎么解决——Linux的Local Time和RTC time

最近一直在搞大模型的相关工作,所以一直在用Linux服务器,前面的文章里也提到了,我用的是一台Dell PowerEdge R730xd。 但在使用中发现,IDRAC中的日志时间和本地时间存在时差,大概相关8小时。 对于技术人员&#xff0c…

UE5学习笔记19-服务器的更新频率,根骨骼旋转节点

一、服务器向客户端发送数据的频率 在Config中的DefaultEngine.ini文件添加 [/Script/OnlineSubsystemUtils.IpNetDriver] NetServerMaxTickRate60; 二、角色类中,角色蓝图类中在细节面板收缩net可以在界面中找到下面两个变量 NetUpdateFrequency 66.f; //净更…

代码随想录Day 32|leetcode题目:501.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划理论基础一、理论基础1.1 什么是动态规划1.2 动态规划的解题步骤1.3 动态规划应该如何debug 二、题目题目一: 509. 斐波那契数解题思路:动态规划递归解法 题目二&a…

spring boot 项目 prometheus 自定义指标收集区分应用环境集群实例ip,使用 grafana 查询--方法耗时分位数指标

spring boot 项目 prometheus 自定义指标收集 auth author JellyfishMIX - github / blog.jellyfishmix.comLICENSE LICENSE-2.0 说明 网上有很多 promehteus 和 grafana 配置,本文不再重复,只介绍自定义部分。目前只介绍了分位数指标的收集和查询&a…

基于nodejs+vue+uniapp的摄影竞赛小程序

开发语言:Nodejs框架:expressuniapp数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:VS Code 系统展示 管理员登录 管理员主界面 用户管理 书籍分类管理 书籍信息管理 系统管理…

五种常见的人工智能错误以及如何避免它们?

目录 常见错误一:忘乎所以 常见错误二: 未能整合 常见错误三: 过于“以技术为中心”的方法 常见错误四:事后才考虑治理 常见错误五: 没有规模规划 对于肩负着为股东带来收益的重大赌注的高管来说,将人…

使用模块化流简化 RHEL 8 上的 NVIDIA 驱动程序部署

目录 DNF 模块化 使用预编译驱动程序 使用包管理器安装 选择模块化流 切换流 使用模块化配置文件 RHEL 的支持矩阵 概括 相关资源 NVIDIA GPU 已成为加速机器学习、高性能计算 (HPC)、内容创建工作流程和数据中心应用程序等各种工作负载的主流。对于这些企业用例,NV…

【个人笔记】VCS工具与命令

Title:VCS工具学习 一 介绍 是什么? VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件,竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code,同时内置了 仿…

ubuntu环境下实现ROS 2 与 Arduino 通信

本教程为https://blog.csdn.net/2301_81924597/article/details/141757091?spm1001.2014.3001.5501的进一步拓展 ROS 2 与 Arduino 通信指南 准备工作 确保已安装 ROS 2(本指南基于 ROS 2 Humble)确保已安装 Arduino IDE 并能正常使用安装必要的 ROS…

系统架构师考试学习笔记第三篇——架构设计高级知识(10)系统质量属性与架构评估

本章知识点: 第10课时主要学习软件系统质量属性、系统架构评估以及ATAM方法评估实践等内容。 本课时内容侧重于概念知识,根据以往全国计算机技术与软件专业技术资格(水平)。考试的出题规律,考查的知识点多来源于教材&a…

在Web服务应用中,如何编程使用Redis的缓存功能?包括缓存页面内容、缓存数据库查询结果、用户会话信息等代码分享

目录 一、概述 二、redis介绍 1、简介 2、Redis作为缓存的原理 (1)内存存储 (2)数据结构 (3)工作原理 3、Redis作为缓存的作用 三、redis缓存页面内容 1、作用 2、实现方法 3、示例代码&#x…

python07-单元测试框架unittest1-2

5 fixture 可以看作case的前置条件、后置条件 5.1 fixture的用例执行顺序 fixture分为 方法级别类级别模块级别 5.1.1方法级fixture 每个测试用例之前要调用setUp每个测试用例执行后要调用tearDowntestCase中有多少测试用例,那么setUp和tearDown就被调用多少次 def add(…

【Java】Spring-AOP与拦截器简洁实操 (上手图解)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 认识依赖4.2 使用AOP与拦截器4.2.1 使用AOP4.2.1.1 设置DemoAop类4.2.2.2 设…

【SpringBoot】电脑商城-11-显示购物车功能

加入购物车 1 购物车-创建数据表 1.使用use命令先选中store数据库。 USE store;2.在store数据库中创建t_cart用户数据表。 CREATE TABLE t_cart (cid INT AUTO_INCREMENT COMMENT 购物车数据id,uid INT NOT NULL COMMENT 用户id,pid INT NOT NULL COMMENT 商品id,price BIG…

java fastxml json 科学计数法转换处理

背景: 由于 canal 切换为 tx dbbridge后,发现dbbridge对于canal的兼容性存在较大问题,从而引发 该文档的实践。 就目前发现 dbbrige 的字段 大小写 和 数据类型格式 从binlog 写入kafka 同canal 都会存在差异。 canal之前导出都是小写&…

编程要由 “手动挡” 变 “自动挡” 了?Cursor+Claude-3.5-Sonnet,Karpathy 大神点赞的 AI 代码神器!如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使…