lnmp环境检测工具lnmpcheck

lnmp环境检测工具,检测部署linux,nginx,php,mysql服务机器的问题。通过运行lnmpcheck脚本,就可以将lnmp环境中的各种问题报告出来,如磁盘满了、cpu负载过高、磁盘IO过高、网络出现了问题、遭遇了synflood攻击、php进程hang在了某个地方等等,甚至还会检查nginx日志文件是否有异常。与监控工具不同的是,lnmpcheck能够直接指明问题所在,主要用于对一台已出现服务异常的机器进行具体问题的排查。

lnmpcheck很容易进行扩展添加新的检查项,另外也可以对已有的检测项添加自己的特殊的版本而不影响原来的版本。

检测的问题项

  • 磁盘占用
  • inode使用
  • CPU

    包括CPU idle,CPU负载,CPU在I/O时花费的时间比

  • 内存

    包括内存占用比,swap交换数

  • I/O

    I/O所消耗的CPU时间比

    I/O总共花费时间与实际I/O操作所花费时间比(await/svctm)

  • 网络流量

    检查目前流量占网卡带宽的比

  • 网络错误

    包括网络传输丢包及网络传输缓存区空间不足的错误

  • 文件句柄数

    目前已使用的文件句柄数与系统限制的比

  • core文件

    检查是否由于进程运行异常而产生了core文件

  • synflood攻击

    检测系统是否遭到了synflood攻击

  • nginx压力

    通过网络连接数来估值nginx并发度

    并发度= 请求处理时间 * QPS

    进而评估nginx是否压力过大

  • php压力

    评估方式类似nginx压力

  • nginx存活

    检查nginx进程是否正常运行

  • php存活

    检查php进程是否正常运行

  • nginx日志检查

    检查nginx日志文件中状态码非200的个数,从而发现请求返回不正常的情况

  • php进程hang住检查

    检查php进程是否都hang在了某个操作上,这往往由于某个外部请求超时导致

  • mysql压力

    通过show processlist命令检查mysql正在进行操作处理的线程数

lnmpcheck的检查是多维度的,例如为了检查I/O是否达到了瓶颈,不但检查I/O使用率数值,也会关心 I/O总共花费时间与实际I/O操作所花费时间比(await/svctm),如果这个比值过大,说明I/O请求在队列中等待的时间过长,达到了I/O处理的瓶颈。

使用方法

lnmpcheck用php开发,下载所有php文件,命令行下执行start.php脚本文件即可:

[[email protected] ~/lnmpcheck]# php start.php

checking......

sda1 : 20.00, percentage of CPU time during which I/O requests were issued to the device, the IO is too high

------------------------------

*******************

check completed

*******************

执行完毕会将检查到的问题一项项打印出来。最好以root用户执行,有些检测项需要root权限,用其它帐号会导致这些检测项无效。

添加新的检测项

目前已有的检测项只是最常需要检测的问题,还有许多其它问题需要检测,这只需要添加一个php文件放到checkitems目录下即可,以检查cpu负载的代码为例,在checkitems/linuxCpuLoad.php 文件中实现,基本代码结构如下:

class linuxCpuLoad extends LnmpCheck {

    public function check(){

        $arrRes = Utils::get_cmd_res(‘ mpstat -P ALL | wc -l‘);
        $cpu_num = $arrRes[0] - 4;

        $arrRes = Utils::get_cmd_res_split(‘uptime‘);

        $load_one_minute = trim($arrRes[0][7],‘ ,‘);
        if($load_one_minute > 2*$cpu_num) {
            $msg =  "cpu number: {$cpu_num}, load in 1 minute: {$load_one_minute}";
            Utils::print_error($msg);
        }

    }

}

新的检测项需要继承LnmpCheck类,并在check函数中实现自己的检查逻辑即可。另外可以定义问题检测的优先级,代表了检测的顺序,在类中声明$priority变量即可,值越小,优先级越高,默认是最低检测优先级。

lnmpcheck github地址: https://github.com/micweaver/lnmpcheck

时间: 2024-10-10 16:16:57

lnmp环境检测工具lnmpcheck的相关文章

103-MHA 高可用mysql集群

一.MHA简介 1.1.简介 MHA(Master HA ) 是一款开源的 MySQL高可用程序,它为MYSQL 主从复制架构提供了automating master failover 主节点自动迁移功能.MHA在监控到master节点故障时候,会自动提升拥有的数据最近进于主节点的其他从节点为主节点, 并且在此期间,会通过其他节点获取额外的信息来避免数据不一致性的问题.MHA也提供master节点的在线切换功能, 即按需切换master/slave节点. 1.2.MHA服务角色 MHA Mana

MySQL高可用架构之MHA

1.关于MHA MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating master failover功能.MHA在监控到master节点故障时,会提升其中拥有的最新数据的slave节点成为新的master节点,在此期间,MHA会通过其它从节点获取额外信息来避免一致性方面的问题.MHA还提供了master节点的在线切换功能,即按需切换master/slave节点. MHA服务有两种角色,MHA Manager(管理节点)和MHA No

MySQL主从复制: MHA

MySQL主从复制: MHA 大纲 前言 MHA的架构 环境部署 实验步骤 总结 前言 上篇文章我们实现了MySQL的主从复制, 但是我们之前就说过, 主从复制是有很多问题的, 我们这篇文章为大家介绍一如何使用MHA来实现MySQL复制集群的高可用 MHA的架构 MHA (Master HA) 实现MySQL主从复制主节点高可用 , 主要实现了 Automated master monitoring and failover 自主监控和故障转移 Interactive (manual) Mast

Mysql之运用MHA的功能实现服务高可用

MHA介绍 (Master High Availability) MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供 了 automating master failover 功能.MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的 master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题.MHA 还提供了 master 节点的在线切换功能,即按需切换 master/

mysql实现高可用架构之MHA

一.简介 MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能.MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题.MHA 还提供了 master 节点的在线切换功能,即按需切换 master/slave 节点. MHA 是由日本人 yoshinorim

Step By Step 搭建 MySql MHA 集群

关于MHA ?? MHA(Master High Availability)是一款开源的mysql高可用程序,目前在mysql高可用方面是一个相对成熟的解决方案.MHA 搭建的前提是MySQL集群中已经搭建了MySql Replication环境,有了Master/Slave节点.MHA的主要作用就是监测到Master节点故障时会提升主从复制环境中拥有最新数据的Slave节点成为新的master节点.同时,在切换master期间,MHA会通过从其他的Slave节点来获取额外的信息来避免一致性的问

MySQL(三):MHA实现MySQL主从架构中主服务器的高可用,zabbix完成manager重启

MHA(Master High Availability)是目前在MySQL高可用方面相对成熟的一个解决方案,MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过于其它从节点获取额外信息来避免一致性方面的问题.MHA还提供了master节点的在线切换功能. MHA 服务有两种角色,MHA Manager(管理节点)和 MHA Node(数据节点): MHA Manager:通常单独部署在一台独立机器上管理多个 master/

数据库 之 MHA 简要配置文档

1  概述 当主服务器挂掉的时候,考虑将从服务器提升为主服务器,一般是将数据落后最少的从服务器提升为主服务器,但是,这里有个问题是,如果被提升的从服务器上可能有些没完成的事务在其他从服务器上已经完成,因此,被提升的从服务器还是存在数据不同步的情况,要解决的方法是借助外在的辅助机制,监控所有从服务器的事务完成情况,并将所有进度做并集,将每一个节点完成的事务并集补全在其中一台数据最接近于主服务的从服务器上,因此补上并集的从服务器数据是最完整的.此时,主服务器异常时,就将该从服务器提升为主服务器. 外

Linux自学笔记——mysql基础、备份和恢复、主从复制、MHA

RDBMS:关系型数据库管理系统 C/S:通过专有协议 关系模型:表(行,列),二维关系: 范式:第一范式.第二范式.第三范式(在之前的博客中已经做过说明) 关系运算: 选择      投影 数据库:表,索引,视图(虚表) SQL:Structure Query Language DDL,DML 编程接口: 存储过程 存储函数 触发器 事件调度器 过程式编程:选择.循坏 三层模型: 物理层  逻辑层  视图层 解决方案: Oracle, Sybase, Infomix, DB2 MySQL, M