💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
技能目标:
-
了解
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 Server | CentOS 7.3 | zabbix/192.168.101.128 |
Zabbix Server、Zabbix Web、
MariaDB、Nginx、php-fpm
|
Nginx | CentOS 7.3 | nginx/192.168.101.129 | Nginx |
Redis | CentOS 7.3 | redis/192.168.101.130 | Redis |
MySQL | CentOS 7.3 | mysql/192.168.101.131 | MariaDB |
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
主机,直接创建主机并关联对应的模板即可实现监控。