首页 帮助中心 听云Server Php

查看日志

如果系统工作不正常或者没有数据,通常可以从日志里获取更多的信息来定位问题.

日志默认路径: /var/log/networkbench/
汇总进程日志: /var/log/networkbench/daemon.log
php扩展日志:/var/log/networkbench/php-agent.log

运行

ll /var/log/networkbench

正常情况下会存在2个日志( daemon.log 和php-agent.log)
1)如果php-agent.log不存在说明PHP扩展有问题, 请检查php扩展模块
2)如果daemon.log不存在说明汇总进程有问题, 请检查汇总进程

如果2个日志都存在说明安装没有问题,请运行

grep -E 'CRITICAL|ERROR|error' /var/log/networkbench/php-agent.log

如果php-agent输出有ERROR信息,说明PHP扩展运行时有错误

grep -E 'CRITICAL|ERROR|error' /var/log/networkbench/daemon.log

如果daemon输出有ERROR信息,说明可能和服务器通信有问题

默认情况,日志级别为info, 审计模式是关闭的,这种情况得到的信息量比较小.
通过修改日志级别为debug,开启审计模式,让汇总进程和php扩展输出更多日志信息,通过日志得到的信息定位问题.

检查php扩展模块

将info.php放在网站某个目录下

echo "<?php phpinfo(); ?>" > /path/to/info.php
  1. 通过浏览器访问info.php

  2. 查找页面内是否存在networkbench扩展

    正常情况下的信息和以下截图类似

  3. 若没有networkbench模块信息,请重新安装扩展模块。
    重新安装后, 如果仍未出现networkbench模块信息,则很有可能您的php版本不符合安装条件.

检查汇总进程

  1. 确认汇总进程文件是否存在

    ll /usr/bin/networkbench
    

    如果 /usr/bin/networkbench 不存在,说明被误删了,请重新安装探针

  2. 确认汇总进程在运行:

    ps -e | grep networkbench
    

    正常情况下的信息和以下截图类似:

    如果networkbench进程不存在,请重启web server

    sudo service httpd restart
    

    sudo service php-fpm restart
    

    然后再次运行 ps -e | grep networkbench, 查看输出结果

安装失败

  1. 安装RPM包时,出现 error: Failed dependencies 提示

    [nb@localhost tmp]$ rpm -Uvh tingyun-agent-php-1.0.3.x86_64.rpm 
    error: Failed dependencies:
    	ld-linux-x86-64.so.2()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libc.so.6()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libc.so.6(GLIBC_2.2.5)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libc.so.6(GLIBC_2.3)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libc.so.6(GLIBC_2.3.2)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libc.so.6(GLIBC_2.4)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libdl.so.2()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libdl.so.2(GLIBC_2.2.5)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libgcc_s.so.1()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libgcc_s.so.1(GCC_3.0)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libgcc_s.so.1(GCC_3.3)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libgcc_s.so.1(GCC_4.2.0)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libm.so.6()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libpthread.so.0()(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    	libpthread.so.0(GLIBC_2.2.5)(64bit) is needed by tingyun-agent-php-1.0.3-1.x86_64
    

    出现此提示的原因是您的操作系统为32位,但您尝试安装64位的RPM包,请更换为32位的RPM包。

  2. 安装安装BIN包时,提示 permission denied

    error:unpacking of archive failed on file /usr/bin/networkbench: cpio:rename failed - permission denied 
    

    一般这种报错跟权限有关,大多是因为防火墙或一些安全类的软件,可以把相关安全软件关闭,再进行安装

  3. 运行networkbench-install.sh时,出现 PHP install path not found, please enter the path. 提示

    PHP install path not found, please enter the path.
    

    出现此提示的原因是在系统环境变量里面找不到php的安装路径,需要手工指定php的安装路径

    录入php所在的文件夹路径,例如: php的位置是/opt/php5/bin/php,就录入/opt/php5/bin

  4. 运行networkbench-install.sh时,出现“The Networkbench agent is not installed.”提示

    The Networkbench agent is not installed
    

    PHP环境中缺少探针安装相关的必要信息,导致无法自动安装PHP扩展。
    解决方法请参见:手动安装PHP扩展

  5. 运行networkbench-install.sh时,PHP版本选择步骤中,没有用户期望的PHP路径

    Below is a list of the directories in which we found a copy of PHP
    

    在系统环境变量里面找不到用户期望的PHP安装路径
    解决方法:将此php的安装路径加入到PATH环境变量中,然后重新运行安装脚本

安装成功但无数据

  1. 初次安装后需要一段时间才能看到数据,通常需要5分钟或更长时间,请多等一段时间

  2. 有的用户浏览器缓存有问题,即使有数据如果不强制刷新也可能看不到,请尝试清空缓存或强制刷新或更换浏览器

  3. 探针安装成功后,必须重启apache或php-fpm,否则探针不生效

  4. 请确认授权码是否正确

  5. 请确认web服务器有没有用户访问
    探针数据是基于http请求的性能,如果没有访问,就不会有性能数据。
    如果没有用户访问,请使用浏览器访问相应的应用,再过5分钟后查看报表

其他问题

  1. PHP探针都能采集哪些数据?

    目前,探针可以采集php运行时的性能数据和错误信息。

    性能数据包括:
    * HTTP请求的总响应时间
    * 从负载均衡服务器到web服务器的排队时间
    * 数据库耗时
    * NOSQL耗时
    * web service耗时
    * 超过阈值的性能瓶颈函数
    * 慢sql语句及调用堆栈

    错误信息包括:
    * 数据库连接错误
    * sql语法错误
    * php语法错误
    * php运行时未捕获的异常
    * http状态码为4xx 5xx的错误

  2. PHP探针都支持哪些组件的监控?

    类型 支持的组件 说明
    HTTP curl
    HTTP file_get_contents
    HTTP fopen
    HTTP HttpRequest
    HTTP Snoopy
    HTTP drupal_http_request
    HTTP Zend_HTTP_Client
    RPC thrift thrift client端 不支持thrift server端
    Database MySQL old native driver
    Database MySQLi Extension
    Database Oracle(oci8)
    Database PDO
    Database Postgres(pgsql )
    Database MongoDB
    Database Mongo
    Database SQLite
    Database SQLite3
    Cache Memcache
    Cache Memcached
    Cache Redis
    Cache Predis
    Web Service SOAPClient
    Web Service NuSOAP
    Framework Drupal
    Framework WordPress
    Framework Zend
    Framework CodeIgniter
    Framework CakePHP
    Framework Joomla
    Framework Yii
    Framework PHPWind
    Framework ThinkPHP
    Framework Laravel
    Framework Discuz
    Protocol RabbitMQ client端 不支持server端
    Protocol ActiveMQ client端 不支持server端
  3. 我在多台服务器上部署了应用探针,报表查看时,如何将不同的应用区分开?

    默认数据汇总在同一个应用,如果需要分开看,把配置文件内的 nbs.app_name 改为不同名称就可以了。

  4. 我在一台服务器上部署了多个Virtual Host,报表查看时,如何将不同的应用区分开?

    把配置文件内的 nbs.auto_app_naming 修改为1或2 即可自动命名不同Virtual Host下的应用

  5. 服务器权限要求比较严格,无法在/usr下安装探针,怎么办?

    可以使用BIN安装包指定安装路径, 假设您有 /home/tingyun 权限

    ./tingyun-agent-php-2.5.0.x86_64.bin -prefix=/home/tingyun
    
  6. php探针对我们服务器的性能会有多大影响

    听云server探针对服务器的性能影响小于3%