运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:

前言

记得刚来这家公司的时候,我部门就我一个运维工程师,然后就是经理,刚开始公司平台什么监控都没有,在我与经理的努力下,先搭建nagios+cacti监控平台,后来随着公司业务的增加,平台的功能与服务也不断的扩展,nagios+cacti监控不太适合平台的需要,为了解决此问题我就使用shell来搭建了脚本监控系统,根据平台的应用服务需求与领导要求,使用shell的脚本监控系统监控整个平台的运行情况,但随着公司业务的扩大,平台数量的增加,服务器的数量也随之增加,从以前的30台变为现在的120台左右,之前的shell脚本监控系统虽然能够顺利的监控平台的运行情况,但在日常服务器巡检的时候没有什么便利,我这里管理很严格,每天9、13、17都需要对平台进行一下巡检,服务器少的时候还好说,但120台巡检就是个噩梦,为了美好的生活,我决定使用自己设计一个新的监控系统,主要是能在服务器端,使用shell脚本监控继续的监控平台运气情况,使用mysql数据库记录监控数据,使用php设计一个web平台,能在web里展示这些服务器的监控数据,经过2个月的努力,我独自一人的完成了这项任务,经过3个月的试运行与生产环境的测试,成功的完成了我之前的需求,使我的时间变的更充裕,不必把时间浪费到日常巡检里,当然也有副作用,就是每天什么事都没有,实在太闲了(主要是我在搭建shell监控的时候,如果发现有服务宕掉,就根据错误代码自动的解决这个问题并重启服务,所以每天实在很闲)。

由于本监控系统我本人独立自主开发,所以具有决定本监控系统是否开源的权利,为了发展开源精神,我决定把本分布式监控系统open source,借此向开源致敬。其中php程序与shell脚本已经放到最后一页,也就是第七页,希望本文对各位如何的搭建分布式私有监控系统能有更多的启发,也希望各位同仁能多提意见,谢谢!

闲话不说,下面是我的“运维自动化之PHP+MYSQL+SHELL监控系统”的界面展示。

为了方便大家的理解,我画了一个php+mysql+shell的流程图

 

 本监控系统的流程为(部署的顺序是从右到左):

1 、需要在各省的机房里的所有服务器安装shell监控脚本,然后把监控服务与资源的数据写入到mysql数据库里;
2 mysql收到各省服务器发送的监控数据,把他们按照先前定义的数据表分别的存储起来;
3 php程序按照之前编辑好的显示方式,从mysql数据库里提前相应的数据,在web端显示,同时在部署php程序的images目录里,运行数据视图化脚本,生成各省监控的数据资源图;
4 、用户可以通过web来浏览监控服务与资源的数据、资源的监控数据图。


 由于本文文章与代码描述过多,所以分成7篇文章,下面是文章网页地图。

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(一)

http://dl528888.blog.51cto.com/2382721/1034992

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(二)

http://dl528888.blog.51cto.com/2382721/1035131

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(三)

http://dl528888.blog.51cto.com/2382721/1035142

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(四)

http://dl528888.blog.51cto.com/2382721/1035145

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(五)

http://dl528888.blog.51cto.com/2382721/1035252

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(六)

http://dl528888.blog.51cto.com/2382721/1035297

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(七)

http://dl528888.blog.51cto.com/2382721/1035335

1 、先查看资产管理

资产管理下面有 2个功能,一个是 新增的设备,一个是浏览设备
新增设备

可以增加以上的内容
浏览设备

可以展示之前添加的内容,是从数据库的 device表里获得数据
2 、监控详情
此页面里展示了所以的监控省份

比如我监控的省份就有甘肃、天津、广西、贵州、海南、河北、湖南、青海、新疆、河南、西藏、包头、湖北、江西、宁夏、陕西工 16个省份,每个省份5台服务器,共计80个服务器,目前还在继续添加服务器,预计半个月后,监控的服务器会增加到105个。
下面我们以天津为例
A 、应用服务监控详情

 

以上监控,显示的是应用服务的监控主要显示的内容是通过 shell脚本监控的,通过shell写入到mysql,然后php通过设置好的表单来进行展示来自mysql的数据。
B 、硬盘使用率监控详情

C cpu使用率监控详情

D 、硬件信息错误监控详情

E I/O使用率监控详情

F 15分钟内的负载

G 、内存使用率监控详情

H 、日志错误信息监控详情

I 、用户登录数监控详情

3 、当日报警
以天津为例

可以看到天津今天只有内存报警
4 、监控视图

可以看到监控视图有 3种,分别有日、月、年的,下面我们分别的查看一下
A 、当日报警,以新疆数据库为例
1)新疆数据库的硬盘使用率

2)新疆数据库的cpu使用率

3)新疆数据库的io使用率

4)新疆数据库的load使用率
5)新疆数据库的内存使用率

6)新疆数据库的用户登录数

以上为什么在hour为13,是因为我设置的hour为当前时间的,比如当前为2012年10月23日13:49分,那么当前的hour为13.而右上角的2行文字内容是:

2012 10月23日,database数据库的用户登录不正常的使用红色线表示
 

2012 10月23日,database数据库的用户登录正常的使用绿色线表示
 
B 、当月报警,以湖南引擎为例
1)湖南引擎的硬盘使用率

2)湖南引擎的cpu使用率

 
3)湖南引擎的io使用率

4)湖南引擎的load使用率

5)湖南引擎的内存使用率

6)湖南引擎的用户登录数

注意,month(31)是本月有多少天,通过shell脚本进行计算的。
C 、当年报警,以贵州引擎为例
1)贵州引擎的cpu使用率
2)贵州引擎的cpu使用率

3)贵州引擎的io使用率

4)贵州引擎的load使用率

5)贵州引擎的内存使用率

6)贵州引擎的用户登录数

5、邮件接收的shell报警截图

挑选几个真实的服务器报警给大家展示一下shell脚本监控服务器的报警系统。

A 、服务宕掉的报警

 

B hardware硬件错误信息报警

Cload负载报警

D、内存报警

Eswap报警

由于本文文字与脚本内容过多,超过每篇8万字的限制,所以不得不分成多篇博文,尽请见谅。

下一篇文章地址:

运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(二)

http://dl528888.blog.51cto.com/2382721/1035131

BTW:如果大家认为我写的不错,希望能给我的博客投个票,谢谢!

http://blog.51cto.com/contest2012/2382721





 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1034992,如需转载请自行联系原作者



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1485 1
|
5月前
|
机器学习/深度学习 人工智能 JSON
PHP从0到1实现 AI 智能体系统并且训练知识库资料
本文详解如何用PHP从0到1构建AI智能体,涵盖提示词设计、记忆管理、知识库集成与反馈优化四大核心训练维度,结合实战案例与系统架构,助你打造懂业务、会进化的专属AI助手。
649 6
|
11月前
|
消息中间件 缓存 弹性计算
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
422 11
|
6月前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
410 0
PHP和Mysql前后端交互效果实现
|
8月前
|
小程序 安全 关系型数据库
专业打造一款圈子源码软件系统 / 后端 PHP 搭建部署一样实现利益化
本教程详解基于PHP后端与Uni-app的小程序开发全流程,涵盖技术选型、环境搭建、源码导入、接口对接及功能实现。采用Laravel/Symfony框架,结合MySQL/PostgreSQL数据库,使用WebSocket实现实时通信,并集成IM SDK实现音视频聊天。前端使用Uni-app开发,支持跨平台运行。教程包含完整部署流程与安全优化方案,助力快速搭建高性能、安全稳定的小程序系统。
513 5
|
10月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
554 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
10月前
|
监控 安全 Linux
Arista CloudVision 2025.1 - 多云和数据中心网络自动化、监控和分析
Arista CloudVision 2025.1 - 多云和数据中心网络自动化、监控和分析
426 2
Arista CloudVision 2025.1 - 多云和数据中心网络自动化、监控和分析
|
8月前
|
数据采集 存储 监控
Python爬虫自动化:定时监控快手热门话题
Python爬虫自动化:定时监控快手热门话题
|
9月前
|
监控 安全 BI
医院不良事件管理系统,PHP不良事件系统源代码
医院不良事件管理系统(HAEMS)是医院质量管理体系的核心,用于系统化收集、报告、分析和处理各类不良事件及近似差错,以提升患者安全和运营效率。系统涵盖事件报告、调查分析、改进追踪、统计分析及知识库管理等功能模块,支持多渠道上报、根本原因分析(RCA)、改进措施闭环管理及多维度数据分析。同时,系统注重用户体验与数据安全,符合医疗行业法规标准,通过标准化接口实现与其他系统的无缝集成。HAEMS不仅是工具,更是推动医院安全文化与持续质量改进的核心引擎,助力构建更安全的医疗环境。
358 0
|
11月前
|
Ubuntu PHP Apache
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
282 28