鼠扑 发表于 2024-8-2 22:38:07

Zabbix实现7x24小时架构监控

上篇:https://blog.csdn.net/Lzcsfg/article/details/138774511


源码链接:https://pan.baidu.com/s/1HbbZJzqD8-l565H9Mb8W1g?pwd=2euj
提取码:2euj

脚本链接:https://pan.baidu.com/s/1Xj5NTw_UdZP8D2T70XuLPw?pwd=pdsn
提取码:pdsn

注意:在进行项目之前,必须先跑一遍初始化脚本。
Zabbix功能介绍

Zabbix 是C语言编写的企业级开源免费的分布式监控解决方案,可监控网络的众多参数以及服务器、虚拟机、应用程序、数据库、网站、云等的康健状态和完整性。
Zabbix 使用灵活的报警通知机制,答应用户为险些任何事件配置电子邮件的警报。这答应对服务器题目做出快速反应。
Zabbix 可通过存储的数据提供精彩的报告和数据可视化功能。
官网地址:https://www.zabbix.com/
常用的监控软件:Cacti、Nagios、Ganglia、Open-Falcon、zabbix、prometheus
选择一款监控软件,需要软件具备什么功能?


[*]指标采集:服务器状态、程序状态、CPU、内存、磁盘、网络
[*]指标存储:实现数据持久化,后期分析监控指标
[*]指标可视化:提供web页面,通过欣赏器访问页面
[*]故障报警:出现题目,实时发送报警通知
Zabbix版本介绍
Zabbix稳固版:LTS代表稳固版,官方提供技术支持时间长达5年时间
Zabbix尺度版:不带LTS标签,官方提供技术支持时间7个月
Zabbix组件介绍
zabbix agent:指标采集器,在被监控主机上采集指标数据,并将采集到的数据发送给zabbix server
zabbix server:负责提供监控功能,负责接收agent发送的数据,统计数据、管理数据
zabbix database:用于存储全部zabbix的配置信息以及监控数据
zabbix web:管理员通过web界面管理、配置以及检察干系监控信息
zabbix proxy:分布式监控,用来分担zabbix server的压力(不是必须)
Zabbix平台选择

https://img-blog.csdnimg.cn/direct/4d2e15b39a734f64ad6dfc99aef8b2f4.png#pic_center




安装Zabbix监控端

主机名IP地址操作体系硬件环境zbx-server192.168.226.133CentOS 72 Core/4G Memory 更改主机名
hostnamectl set-hostname zbx-server
下载Zabbix5.0存储库(二进制安装方式)
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

安装zabbix软件包
yum install zabbix-server-mysql zabbix-agent -y
下载centos-release-scl堆栈(提供zabbix前端所需的一些软件包)
yum install centos-release-scl -y
启用zabbix前端堆栈
vim /etc/yum.repos.d/zabbix.repo
#...

name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1   #改为1启用仓库
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
安装Zabbix前端软件包(两个软件中内置PHP与Apache)
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y


部署MySQL数据库

下载MySQL堆栈
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
导入GPG密钥文件
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装MySQL
yum install mysql-server -y
启动MySQL
systemctl enable mysqld --now
检察MySQL的root初始密码
grep -i password /var/log/mysqld.log
通过初始密码登录到数据库
mysql -uroot -p'密码'
修改密码复杂度计谋(即不验证复杂度)
mysql> set global validate_password_policy=0;
设置root本机登录密码(长度须满足8位)
mysql> alter user root@"localhost" identified by "admin123456";
退出数据库,修改my.cnf文件,在文件中定义密码计谋,让计谋永世见效
vim /etc/my.cnf
#...

validate_password_policy=0
重启MySQL
systemctl restart mysqld
登录数据,创建一个名为 zabbix 的数据库用于存储监控指标,并支持中文
mysql> create database zabbix character set utf8 collate utf8_bin;
创建一个名为 zabbix 的用户用于连接数据库,并设置密码
mysql> create user zabbix@localhost identified by '12345678';
授权 zabbix 用户对 zabbix 库的全部权限
mysql> grant all privileges on zabbix.* to zabbix@localhost;
导入数据库所需的表文件
zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql -uzabbix -p12345678 zabbix
配置zabbix连接数据库
vim /etc/zabbix/zabbix_server.conf
#...
DBName=zabbix         #数据库名称,在100行
DBUser=zabbix         #连接数据库的用户名,在116行
DBPassword=12345678   #用户密码,在124行
为PHP配置精确时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#修改参数,记得修改注释
php_value = Asia/Shanghai
启动全部服务并设置服务随机自启
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm


Zabbix参数介绍

zabbix-server 端口:10051
zabbix-agent 端口:10050
zabbix server主配置文件:/etc/zabbix/zabbix_server.conf
zabbix agent主配置文件:/etc/zabbix/zabbix_agentd.conf
zabbix自定义监控项路径:/etc/zabbix/zabbix_agentd.d
zabbix日记文件路径:/var/log/zabbix/


登录Zabbix WEB

从欣赏器上访问Zabbix前端URL:http://192.168.226.133/zabbix
https://img-blog.csdnimg.cn/direct/2f1dff0af8b141679f4673c6a3e66210.png#pic_center
环境检查
请确保这里的 Check of pre-requisites 全部OK后点击下一步
https://img-blog.csdnimg.cn/direct/8d42d0abf4ab4f20bf2c71e5459f46ae.png#pic_center
配置数据库连接
https://img-blog.csdnimg.cn/direct/d7d9dba3221a4622a2b3cd241f31256d.png#pic_center
Zabbix server信息
https://img-blog.csdnimg.cn/direct/6b69459f6b704be383ed64399f3277cd.png#pic_center
安装前回顾全部配置
https://img-blog.csdnimg.cn/direct/dfbe0dbc84564cda8011f55f666ffd5b.png#pic_center
完成安装
https://img-blog.csdnimg.cn/direct/ea63b74c26794cb7b2ea8cbc37438830.png#pic_center
登录Zabbix:管理员 Admin , 密码 zabbix
https://img-blog.csdnimg.cn/direct/55a88f829c26401f84dafd3d879a0518.png#pic_center




WEB界面概览

侧边栏的菜单可使用Zabbix各功能,菜单可以整个折叠或隐藏


[*] 折叠, 单击Zabbix logo旁边的 https://img-blog.csdnimg.cn/img_convert/d520192a2753027e840963c5d784a1ed.png
[*] 隐藏, 单击Zabbix logo旁边的 https://img-blog.csdnimg.cn/img_convert/0875a066f6ee43994365fbcba4972795.png
https://img-blog.csdnimg.cn/direct/41901241684c4ae28e7a678862fbf4eb.png#pic_center


修改WEB界面语言

https://img-blog.csdnimg.cn/direct/491b48a2552a468592214e23a1a1de60.png#pic_center
https://img-blog.csdnimg.cn/direct/e8a9af9cd1e34dbc9418e1874648ab5a.png#pic_center




添加被控主机

在主机discuz-db discuz01 discuz02 master-proxy backup-proxy 中安装 zabbix-agent 客户端程序用于采集主机指标
下载Zabbix5.0存储库(二进制安装方式)
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
安装zabbix agent
yum install zabbix-agent -y
修改zabbix-agent配置文件,定义zabbix server地址
vim /etc/zabbix/zabbix_agentd.conf
#大约在117行,这里意思是谁可以监控我,统一修改成zbx-server主机的IP,代表监控服务端主机可以监控这些集群机器
Server=192.168.226.133
启动服务并设置服务随机自启
systemctl start zabbix-agent
systemctl enable zabbix-agent
上述步调是针对这discuz-db discuz01 discuz02 master-proxy backup-proxy,下面是对 zbx-server 主机操作。
回到Zabbix WEB界面,通过配置 → 主机 → 创建主机 添加被控主机
https://img-blog.csdnimg.cn/direct/02a9d37538334b1fbff86548c79a40e5.png#pic_center
https://img-blog.csdnimg.cn/direct/2e923cfeb05d4fef9a675541b4f782b1.png#pic_center
其他主机均按照以上方法添加
https://img-blog.csdnimg.cn/direct/359ccb14bc7e47cea1040325ea3d3d06.png#pic_center




导入监控模板

通过配置 → 模板单击右上角的导入按钮,选择要导入的文件,单击导入按钮。
https://img-blog.csdnimg.cn/direct/32d06203e14f44d3b4ccb0a4e7d2ab03.png#pic_center


主机绑定模板

通过配置 → 主机找到你的主机,然后选择模板,选择好模板后,点击更新
https://img-blog.csdnimg.cn/direct/1a7826890ab24ddbb4a121ed185604bc.png#pic_center
https://img-blog.csdnimg.cn/direct/3a389cc8a71749ddb6199a2bf4c96696.png#pic_center
https://img-blog.csdnimg.cn/direct/f4e7cda797eb473cbce80d8c7bb8fd8b.png#pic_center
https://img-blog.csdnimg.cn/direct/61245ff759ff4c12a17fbc95e0507096.png#pic_center
https://img-blog.csdnimg.cn/direct/3ade53f867154d9598e2ad59aa76736e.png#pic_center
https://img-blog.csdnimg.cn/direct/1df2102cad71401b856c35d4457bb56d.png#pic_center
提示:其他主机均按照以上方法绑定模板。

检察主机状态

通过监测→主机检察Zabbix Server是否采集到主机指标
https://img-blog.csdnimg.cn/direct/e15a2d9b51fd436bbe88763a6c8c6ac6.png#pic_center
灰色 未采集到指标
https://img-blog.csdnimg.cn/img_convert/d4ad6218bf0cfc6c9b40b13f90f0f809.png 以采集到指标
https://img-blog.csdnimg.cn/img_convert/5e1df331d248eb5ee6b36d20935a10fe.png 指标采集失败
检察监控数据

可通过主机右边的最新数据来检察监控的指标项
https://img-blog.csdnimg.cn/direct/e618b5436a154bfcab40ea3c39a0c2b6.png#pic_center


解决Zabbix乱码

在 zbx-server 主机将准备好的字体文件传到zabbix存放字体文件路径,并覆盖原文件内容。
cd /usr/share/zabbix/assets/fonts/
从windows中C:\Windows\Fonts这个目录里选择一款字体,要选正常字体,规整细点的,不然下面图中的数据看不清,对工作不利。
选择一款字体上传到/usr/share/zabbix/assets/fonts/目录里,**覆盖**原字体文件的内容即可。
cp SIMSUN.TTC graphfont.ttf
会有个提示是否覆盖,输入y回车,原字体文件删不删除都行
革新界面即可
https://img-blog.csdnimg.cn/direct/7290a0a84979411087ed91333d2d330b.png#pic_center


监控Nginx状态信息

通过监控NGINX的状态可实时了解服务器处理惩罚请求的情况,及服务器的负载情况。
以下都对master-proxy 与 backup-proxy 主机操作
在 master-proxy 与 backup-proxy 主机创建目录用于存放监控脚本
mkdir /etc/zabbix/script/


cd /etc/zabbix/script


将脚本 ngx_status.sh 上传到该目录并为脚本添加实验权限
chmod +x ngx_status.sh
进入自定义监控路径,将自定义监控文件 nginx_status.conf 上传到该目录
cd /etc/zabbix/zabbix_agentd.d/


修改zabbix agent配置文件,开启自定义监控功能
vim /etc/zabbix/zabbix_agentd.conf
#...
#自定监控路径对照下不要错,大概在314行
Include=/etc/zabbix/zabbix_agentd.d/*.conf

#改为1为开启自定义监控功能,默认该功能为关闭状态,大概在333行
UnsafeUserParameters=1   
重启zabbix agent服务
systemctl restart zabbix-agent


这里开始对zbx-server主机操作
zabbix server获取监控项数据,下载zabbix-get软件包,用于在命令行获取客户端监控项的值
yum install zabbix-get -y
获取客户端监控项数据,命令如下(按照本身的环境修改IP)
#当前活动用户的连接数量
zabbix_get -s 192.168.226.131 -k nginx.active

#已接收的客户端连接总数量
zabbix_get -s 192.168.226.131 -k nginx.accepts

#已处理的连接总数量
zabbix_get -s 192.168.226.131 -k nginx.handled

#客户端请求的总数量
zabbix_get -s 192.168.226.131 -k nginx.requests

#正在读取请求的连接数
zabbix_get -s 192.168.226.131 -k nginx.reading

#将响应反回客户端的连接数
zabbix_get -s 192.168.226.131 -k nginx.writing

#客户端正在等待服务器的响应数量
zabbix_get -s 192.168.226.131 -k nginx.waiting
通过配置 → 模板 → 导入 将模板导入到zabbix中
https://img-blog.csdnimg.cn/direct/d8ace1ecb63949dea706150e488e7369.png#pic_center
通过配置 → 主机 找到你的主机,将master-proxy和backup-proxy主机的新增的模板文件绑定到主机
https://img-blog.csdnimg.cn/direct/595d15ce50d74250b14bfe0804a27104.png#pic_center
随后通过 监测 → 最新数据 检察监控指标
https://img-blog.csdnimg.cn/direct/eee3a084a45f4737956f67ff2bf85957.png#pic_center


监控PHP状态信息

通过监控PHP的状态,可实时了解到PHP进程干系信息及PHP处理惩罚请求的情况。
对discuz01 与 discuz02 主机主机操作
在 discuz01 与 discuz02 主机创建目录用于存放监控脚本
mkdir /etc/zabbix/script/


cd /etc/zabbix/script


将脚本 phpfpm_status.sh 上传到该目录并为脚本添加实验权限
chmod +x phpfpm_status.sh
进入自定义监控路径,将自定义监控文件 phpfpm_status.conf 上传到该目录
cd /etc/zabbix/zabbix_agentd.d/


修改zabbix agent配置文件,开启自定义监控功能
vim /etc/zabbix/zabbix_agentd.conf
#...
#自定监控路径,大概在314行
Include=/etc/zabbix/zabbix_agentd.d/*.conf

#改为1为开启自定义监控功能,默认该功能为关闭状态,大概在333行
UnsafeUserParameters=1   
重启zabbix agent服务
systemctl restart zabbix-agent


zabbix server获取客户端监控项数据,命令如下(按照本身的环境修改IP),这里是在zbx-server主机操作的检察命令
#php-fpm运行时长
zabbix_get -s 192.168.226.129 -k phpfpm_status

#当前接收的连接数
zabbix_get -s 192.168.226.129 -k phpfpm_status

#等待连接的请求数
zabbix_get -s 192.168.226.129 -k phpfpm_status

#请求等待队列最高的数量
zabbix_get -s 192.168.226.129 -k phpfpm_status

#socket等待队列长度
zabbix_get -s 192.168.226.129 -k phpfpm_status

#空闲进程数量
zabbix_get -s 192.168.226.129 -k phpfpm_status

#活跃进程数量
zabbix_get -s 192.168.226.129 -k phpfpm_status

#总进程数量
zabbix_get -s 192.168.226.129 -k phpfpm_status

#最大的活跃进程数量
zabbix_get -s 192.168.226.129 -k phpfpm_status

#进程最大数量限制的次数
zabbix_get -s 192.168.226.129 -k phpfpm_status

#php-fpm慢请求
zabbix_get -s 192.168.226.129 -k phpfpm_status
通过配置 → 模板 → 导入 将模板导入到zabbix中
https://img-blog.csdnimg.cn/direct/384b61958b4049f1a2122f5df0b3e31b.png#pic_center
通过配置 → 主机 找到你的discuz01和discuz02主机,把模板文件绑定到主机
https://img-blog.csdnimg.cn/direct/b2b1ef426f1c4d949408d5b72a4be830.png#pic_center
随后通过 监测 → 最新数据 检察监控指标
https://img-blog.csdnimg.cn/direct/63b328856ad24d59b18be514e7d00689.png#pic_center


监控Redis状态信息

通过监控Redis的状态信息,可实时了解到Redis进程干系、内存消耗、Redis处理惩罚请求数量、Redis持久化情况。
在discuz-db 主机创建目录用于存放监控脚本
mkdir /etc/zabbix/script/


cd /etc/zabbix/script


将脚本 redis_status.sh 上传到该目录并为脚本添加实验权限
chmod +x redis_status.sh
进入自定义监控路径,将自定义监控文件 custom_redis_status.conf 上传到该目录
cd /etc/zabbix/zabbix_agentd.d/


修改zabbix agent配置文件,开启自定义监控功能
vim /etc/zabbix/zabbix_agentd.conf
#...
#自定监控路径,大概在314行
Include=/etc/zabbix/zabbix_agentd.d/*.conf

#改为1为开启自定义监控功能,默认该功能为关闭状态,大概在333行
UnsafeUserParameters=1   
重启zabbix agent服务
systemctl restart zabbix-agent


通过配置 → 模板 → 导入 将模板导入到zabbix中
https://img-blog.csdnimg.cn/direct/f3c49aba4a874a92869f699983ee86fd.png#pic_center
通过配置 → 主机 找到你的主机,把模板文件绑定到主机
https://img-blog.csdnimg.cn/direct/b84def6573df45f1ab97bb44a54a4ab1.png#pic_center
随后通过 监测 → 最新数据 检察监控指标
https://img-blog.csdnimg.cn/direct/a2b2e6b515f4467f85db7d0fc975e439.png#pic_center

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Zabbix实现7x24小时架构监控