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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

前言

记得刚来这家公司的时候,我部门就我一个运维工程师,然后就是经理,刚开始公司平台什么监控都没有,在我与经理的努力下,先搭建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,如需转载请自行联系原作者



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
存储 安全 PHP
PHP中实现简单身份验证系统的步骤
【8月更文挑战第31天】在构建Web应用程序时,确保用户身份的合法性和数据的安全性是至关重要的。本文将引导你通过使用PHP语言来实现一个简单的身份验证系统,从数据库设计到前端登录界面的创建,再到后端逻辑的处理,我们将一步步地走过整个流程。无论你是PHP新手还是希望复习相关知识,这篇文章都将为你提供清晰的指导和实用的代码示例。
|
16天前
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
33 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
8天前
|
运维 监控 应用服务中间件
自动化运维:打造高效、稳定的系统环境
【8月更文挑战第30天】本文将探讨如何通过自动化运维技术,提升系统的稳定性和效率。我们将从基础概念出发,逐步深入到实践应用,分享一些实用的工具和技术,以及如何将这些工具和技术融入到日常的运维工作中。无论你是运维新手,还是有一定经验的老手,都能在这篇文章中找到有价值的信息。让我们一起探索自动化运维的世界,提升我们的工作效率,让系统运行得更加平稳。
|
14天前
|
运维 Cloud Native 容灾
核心系统转型问题之支撑高效研发与运维发布如何解决
核心系统转型问题之支撑高效研发与运维发布如何解决
|
15天前
|
运维 监控 安全
构建高效自动化运维系统:DevOps在企业级应用的实现路径
【7月更文挑战第54天】在当今IT领域,DevOps作为一种文化和实践,旨在弥合开发与运维之间的鸿沟,以实现更快速、更可靠的产品交付。本文将深入探讨在企业环境中如何构建一个高效的自动化运维系统,不仅涵盖理论框架,还包括具体实施步骤和最佳实践。通过持续集成(CI)、持续部署(CD)、基础设施即代码(IaC)等关键概念的融合运用,文章旨在为读者提供一个清晰的指导,以便在其组织中落实DevOps策略,并实现运维效率的显著提升。
|
7天前
|
数据采集 运维 监控
自动化运维:用Python打造简易监控系统
【8月更文挑战第31天】在追求高效的IT世界里,自动化运维不再是奢侈品而是必需品。本文将通过一个Python示例,展示如何构建一个简单的系统监控工具。从数据采集到警报触发,我们将一步步解锁自动化的秘密,让你的服务器管理变得轻松而高效。
|
9天前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
27 0
|
12天前
|
运维 Cloud Native 容灾
核心系统转型问题之云原生分布式核心运维成本如何降低
核心系统转型问题之云原生分布式核心运维成本如何降低
|
17天前
|
运维 关系型数据库 MySQL
在Linux中,MySQL数据库日常运维中涉及哪些关键任务?
在Linux中,MySQL数据库日常运维中涉及哪些关键任务?
|
18天前
|
关系型数据库 MySQL 机器人
【MySQL】两个脚本自动化搞定 MySQL 备份恢复--XtraBackup
【MySQL】两个脚本自动化搞定 MySQL 备份恢复--XtraBackup
下一篇
DDNS