lnmpcheck

lnmp 环境检测工具
授权协议 GPL
开发语言 PHP
所属分类 建站系统、 服务器软件套件
软件类型 开源软件
地区 国产
投 递 者 楚皓君
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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脚本文件即可:

[root@xsl1x-nova ~/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变量即可,值越小,优先级越高,默认是最低检测优先级。

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

 相关资料
  • 问题内容: 我正在开发一个需要同时在客户端和服务器端工作的JS-app(在浏览器中的Javascript和Node.js中),并且我希望能够重用部分代码。用于双方。 我发现这是一个只能在浏览器和节点上访问的变量,因此我可以检测代码在哪个环境中执行(假设没有脚本声明该变量) 他们是两个问题。 我应该如何检测代码在哪个浏览器中运行。例如,此代码是否可以。(此代码是内联代码,这意味着它被一些全局代码包围

  • 我对Environment env有问题。getproperty、env无法找到本地属性,但它可以找到系统属性。我不知道这么多,我需要解决它。请帮帮我。附上我的代码及其配置。 控制器。xml: Paremeters.properties: 控制器: 在此处输入图像描述

  • 本文向大家介绍phpnow php探针环境检测代码,包括了phpnow php探针环境检测代码的使用技巧和注意事项,需要的朋友参考一下

  • 更新时间:2018-10-30 11:32:46 简介 本文介绍一个模拟”环境监测“的简单常用示例,搭载 AliOS Things 的设备,并结合 Link Develop (以下简称LD) 可快速实现手机远程打开web app进行环境监测。 本示例源码: env_monitor env_monitor ├── devkit_display │ ├── AliOS_Things_logo.c

  • Yii 2 官方兼容 Codeception 测试框架, 你可以创建以下类型的测试: 单元测试 - 验证一个独立的代码单元是否按照期望的方式运行; 功能测试 - 在浏览器模拟器中以用户视角来验证期望的场景是否发生 验收测试 - 在真实的浏览器中以用户视角验证期望的场景是否发生。 Yii 为包括 yii2-basic 和 yii2-advanced 在内的应用模板脚手架提供全部三种类型的即用测试套件

  • 如果你使用了 vux2 模板或者 webpack 模板,默认你可以直接通过判断 process.env.NODE_ENV 来区分 比如统计代码仅放在 production 环境,在不同环境里使用不同的 API 接口地址。 if (process.env.NODE_ENV === 'production') { // 干一些线上才要做的事情 } if (process.env.NODE_ENV

  • 问题内容: 如何检测expressJS应用程序在什么环境中运行?(开发,测试,生产?)。没有任何迹象表明环境… 我知道您可以在每种环境下的配置文件中声明变量,但这对动态加载模块没有帮助… 问题答案: 您可以通过选中(可以在Express中使用)检查环境,也可以通过直接检查(在该变量中找到的环境或默认为“开发”中的环境)来更直接地进行操作。其他库,例如Socket.IO等)。

  • VS代码拒绝在我的Mac上使用虚拟环境。< br >我认为这与Python没有被直接添加到venv中,而是作为一种快捷方式有关。 如何使 VSCode 能够识别我的虚拟环境?