监控运维系统不是一件一蹴而就的事情,也不是一朝一夕就能轻易完成的,监控运维系统的规模与服务器规模和软件规模息息相关,需要仔细分析和筹划才能实现一个可用的监控运维系统。
为了直观的表示当前系统(除非特殊说明都指操作系统)和应用的运行状态,能让不熟悉运维知识的leader看明白当前的运行状态,最好的方法就是运用图的方式将这些系统和应用之间的逻辑关系展示出来。根据系统和业务两种区分可以将它们分成三张图(这些图可以叫做系统架构图、软件架构图和业务逻辑图)。
1.系统架构图:表示所有系统的堆叠关系,例如物理服务器和虚拟服务器用不同的形式在图中展示出来,通过此图一眼就能看到那些系统存在问题,存在什么问题
2.业务逻辑图:单独表示业务逻辑,将业务逻辑之间的依赖关系和其他关系表示出来,便于在发现整体故障时,确定哪里存在问题能导致整体故障的发生,通过此图一眼就能看到那些业务存在问题,存在什么问题
3.软件架构图:表示业务与系统的对应关系,即那些业务运行在哪些系统中,或每个系统运行着那些业务,便于当出现问题时该去排查哪些系统或者哪些模块
为了达到较好的监控效果,需要准备以下一些内容:
1.硬件层面:当前服务器的实际使用情况,例如服务器的数量,主机名称(规范的FQDN),IP地址(有多少地址写多少地址),操作系统类别,管理方式和管理信息(如何远程登录、用户名和密码等);如果可能,最好包含有网络设备的相关信息,如与服务器的连接方式、带宽等相关信息
2.操作系统层面:不管操作系统是虚拟的还是非虚拟的,对于监控来说都是一个完整的监控实体,与硬件层面的服务器一样,它也需要确切的知道主机名称(规范的FQDN),IP地址(有多少地址写多少地址,并区分管理地址和业务地址等),操作系统类别,管理方式和管理信息(如何远程登录、用户名和密码等)
3.软件(业务)层面:每一个业务模块的名称、提供的功能,依赖关系(该业务模块需要哪些其他的业务模块,哪些业务模块需要该业务模块),进程或服务名称,监听的IP地址和端口(socket),每一个业务模块正常运行时的可监控状态(如返回值是多少正常,输出什么字符串是正常等)
4.软件层面中每一个业务模块与操作系统层面的对应关系,业务模块需要操作系统中那些软件包(依赖关系)、安装路径、可用的诊断程序和维护工具等
一些可参考的表格
表1:服务器监控列表
服务器序号 | 主机名称 | IP地址1 | IP地址2 | 操作系统类别 | 登录方式 | 管理地址 | 管理用户名 | 管理密码 | 备注 |
1 | rc220.domain.cn | 221.0.92.31 | 192.168.1.100 | Linux Ubuntu | iDRAC | 221.0.93.31 | username | password | |
2 | bb200.domian.cn | - | 192.168.1.200 | VMware ESXi5.5 | UCS Manager | 192.168.1.200 | username | password | |
表2:操作系统监控列表
操作系统序号 | 主机名称 | IP地址1 | IP地址2 | 操作系统类别 | 是否虚拟机 | 登录方式 | 用户名 | 密码 | 备注 |
1 | node1.domain.cn | 221.0.92.31 | 192.168.1.100 | Linux Ubuntu | - | SSH | username | password | |
2 | node2.domain.cn | - | 192.168.1.101 | Linux Ubuntu | - | SSH | username | password | |
3 | vcenter.domian.cn | - | 192.168.1.201 | Linux SUSE | 是 | vSphere Client | username | password | |
表3:业务模块监控列表
业务模块序号 | 模块名称 | 模块功能描述 | 依赖关系A | 依赖关系B | 进程名称(完整命令行) | 监听IP地址 | 监听端口 | 正常状态描述 |
1 | 关系数据库 | MySQL数据库 | - | 信息收集服务 信息查询服务 |
mysqld_safe --datadir=/data/mysql | 192.168.1.100 | 3306 | 3306端口已监听,进程存在,允许连接,数据库存在,数据库表存在,数据库字段存在 |
2 | 信息采集服务 | 收集用户信息 | 关系数据库 Web服务器1 |
最终用户 信息查询服务 |
command --parameter=/path | 192.168.1.101 | 8081 | xxx端口已监听,xxx进程存在,返回值为xxx,xxx URL返回xxx |
3 | 信息查询服务 | 查询用户信息 | 关系数据库 信息采集服务 |
最终用户 | command --parameter=/path | 192.168.1.102 | 8082 | xxx端口已监听,xxx进程存在,返回值为xxx,xxx URL返回xxx |
4 |
表4:业务模块与操作系统对应关系
编号 | 模块名称 | 业务模块序号 | 操作系统序号 | 软件包/编译参数 | 安装路径 | 可用诊断程序 | 维护工具 | 备注 |
1 | 关系数据库 | 1 | 1 | mysql-server,mysql,musql-libs,mysql-devel | /usr | msyql,mysqladmin | mysql,mysqladmin | |
2 | 信息采集服务 | 2 | 2 | - | /usr/local/wwwroot | curl,wget | - |
参考图形:
参考图形可以用Visio绘制,构图需要根据上述表格制作,由系统架构师、软件架构师或者在公司多年了解系统架构和软件架构的系统运维人员制作。
以上三图依次为系统架构图,软件架构图,业务与操作系统对应关系图的大体示例。
--end--