内容

Similar documents
基调听云探针说明

内容

内容

安装 nginx 添加 nginx 源 命令 :rpm -ivh gx.noarch.rpm 安装 nginx 命令 :yum install

运行环境

基调网络听云 Ruby 探针说明 基调网络听云 Ruby 探针说明 2


安装 Nginx 命令 :yum install -y nginx 接着将 Nginx 设置为开机启动, 输入命令 :chkconfig nginx on Web 默认根目录为 :/usr/share/nginx/html/ 开放 80 端口 :iptables -I INPUT -p tcp --

本文由筱驀釹贡献

Linux服务器构建与运维管理

短信服务器 安装向导 深圳市得伯乐科技有限公司 年 4 月 3 日

Microsoft Word - PS2_linux_guide_cn.doc

05_資源分享-NFS及NIS.doc

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

ebook62-1

Guide to Install SATA Hard Disks

深圳市亚可信息技术有限公司 NetWeaver 7.3 EhP1 ABAP on Redhat Enterprise Linux Server 62 for Oracle112 High Availability System Installation Created by

Java 探针 1 简介兼容性及系统要求常见问题 2 安装 2.1 下载探针文件 2.2 安装 Java 探针 2.3 不同 Web 容器安装说明 在 Glassfish 上安装 Java 探针 在 JBoss 上安装 Java 探针 在 Play 上安装 Jav

untitled

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

Microsoft Word - linux命令及建议.doc

PowerPoint 演示文稿

Microsoft PowerPoint - 03.IPv6_Linux.ppt [相容模式]

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

ansoft_setup21.doc

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

SIM 卡管理服务器 安装向导 深圳市得伯乐科技有限公司 年 4 月 3 日

puppet 简介 3 puppet 是什么 3 Hello world 4 puppet 安装 5 debian 系发行版安装 puppet 5 redhat 系发行版安装 puppet 5 源代码安装 puppet 6 配置 c/s 模式的 puppet 试验环境 6 puppet 语法 8 资

ebook35-2

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

Linux Ubuntu Part Linux Ubuntu Linux UNIX...19 Linux...19 Linux Linux...21 Linux GNU FSF Open So urce.

AL-MX200 Series

untitled

epub 61-2

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

ArcIMS ArcIMS Shape ArcIMS Monitor ArcIMS Tasker ArcIMS Windows NT UNIX ArcIMS ArcIMS MapService ArcIMS ArcIMS ArcIMS ArcIMS JAVA Windows NT UNIX ArcI


untitled

untitled

A9RF716.tmp

Paratune用户手册

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

目 录(目录名)

Basic System Administration

スライド 1

投影片 1

Chapter 2

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD University of California UNIX X/Open Company, Ltd.

Windows 2000 Server for T100

目 录(目录名)

Windows 2000 Server for T100

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

ebook70-5

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / SunSun MicrosystemsSun

天津天狮学院关于修订2014级本科培养方案的指导意见

スライド 1

1

Pchome

手册 doc

ebook140-9

软件概述

K7VT2_QIG_v3

投影片 1

IP505SM_manual_cn.doc

目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9

ebook 185-6

<4D F736F F D20EEA3BDDDB7FECEF1C6F7CCD7BCFED3C3BBA7CAD6B2E156332E302E646F63>

Windows XP

Parallels Plesk Panel 安裝與升級指南

ebook70-11

一 Grass 是 什 么 1 简 介 GRASS (Geographic Resources Analysis Support System, 地 理 资 源 分 析 支 持 系 统 ) 是 最 负 盛 名 的 开 源 地 理 信 息 系 统 (GIS) 以 下 是 它 的 一 些 特 点 : 1

简易 Linux Server 部署教程系列之 06 使用 Samba 实现文件共享服务 ( 作者信息 : 阮晓龙投稿时间 :2018 年 5 月 4 日 ) 一 需求描述 1 需求说明支持 Windows Linux Unix Mac 等操作系统支持 Android ios 等移动平台支持计算机

網路安全:理論與實務 第二版

Abstract arm linux tool-chain root NET-Start! 2

P X-M PowerChute Business Edition v8.0 Basic 85

Azure_s

ebook70-22

User Group SMTP

Microsoft Word - template.doc

第 3 章 LAMP 的 基 本 安 装 与 配 置 3 LAMP 的 基 本 安 装 与 配 置 知 识 点 Apache 的 安 装 与 配 置 MySQL 的 安 装 与 配 置 PHP 的 安 装 与 配 置 LAMP 是 Linux + Apache + MySQL + PHP 的 首 字

目录 1 简介 1 2 配置前提 1 3 配置环境 服务器 软件 1 4 配置指导 组网拓扑 操作步骤 Red Hat Enterprise Linux Server Red Hat Enterprise Lin

ChinaBI企业会员服务- BI企业

Microsoft Word - install_manual-V _CN.docx

简述 听云 python 探针 ( 也称 Python Agent) 是基于 Python 语言而研发的性能监测工具客户端, 其主要目标为支持 WSGI 协议的 python web 框架 理论上基于只要是基于 WSGI 协议的 web 框架都能对其监测, 比如 django tornado fla

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

资源管理软件TORQUE与作业调度软件Maui的安装、设置及使用

Linux 操作系统课程社区创作

AL-M200 Series

jdbc:hsqldb:hsql: jdbc:hsqldb:hsqls: jdbc:hsqldb:http: jdbc:hsqldb:https: //localhost // :9500 / /dbserver.somedomain.com /an_alias /enrollme

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

达内Linux云计算学院

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

. Outline 编译 Linux 在 QEMU 模拟器上运行制作带 grub 启动的磁盘映像...1 编译 Linux 在 QEMU 模拟器上运行...2 制作带 grub 启动的磁盘映像

.. 3 N

Transcription:

基调网络听云 PHP 探针说明

PHP 探针 1 简介运行环境探针架构常见问题 2 安装 2.1 安装包 RPM 安装包 (RHEL,CentOS,SUSE) DEB 安装包 (Debian,Ubuntu) BIN 安装包 ( 其他 linux 发行版 ) 2.2 安装脚本 2.3 守护进程启动方式 2.4 卸载 基调网络听云 PHP 探针说明 2.5 快速安装 2.6 更新 3 配置排队时间启用 / 禁用探针授权序号应用命名日志管理汇总进程审计模式 sql 数据选项数据传输方式 4 故障排查 4.1 排除安装故障 4.2 检查守护进程 4.3 检查 php 扩展模块 4.4 查看日志 4.5 手动安装 PHP 扩展版权

PHP 探针运行环境 1 确认您的系统满足兼容性要求 2 如果您还没有听云 server 帐户, 请注册听云 server 帐户 3 从听云 server 探针安装页面复制您的授权序号 4 安装 PHP 探针 5 配置 PHP 探针的授权序号 6 重启 PHP 宿主程序 (Apache 或者 PHP-FPM) 7 通过管理页面察看数据, 有问题请参考安装和排除故障章节 兼容性和要求 安装 PHP 探针之前, 请确保您的系统满足如下这些条件 要求 Linux (x86 and x86_64): 操作系统 RedHat Enterprise Linux (RHEL) 5.0 或更高版本 CentOS 5.0 或更高版本 Suse Linux 10.0 或更高版本 Debian 5.0 ("lenny") 或更高版本 Ubuntu 9.10 ("Karmic Koala") 或更高版本任何其他内核版本高于 2.6.13,GLIBC 版本高于 2.5 并且提供本地 Posix 线程库支持的 linux 发行版 PHP Web 服务器 5.2 5.3 5.4 5.5 5.6 7.0 Apache 2.2 以上 (apache module 方式 ) Nginx + PHP-FPM (fastcgi 的方式 ) 或者任何其它支持 fastcgi 的 PHP 服务器

PHP 探针架构 1. 探针的文件组成 : 默认探针安装根路径 %prefix% = /usr, 使用 bin 安装包可以利用 prefix 参数指定探针安装路径默认探针运行根路径 %runtime% = /var, 可以在 php 扩展配置文件内更改运行路径探针安装后, 对 Linux 系统的文件更改如下 : 守护进程 %prefix%/bin/networkbench PHP 扩展 %prefix%/lib/networkbench/ 探针日志路径 %runtime%/log/networkbench/ 辅助运行路径 %runtime%/run/networkbench/ PHP 扩展文件 {PHP 扩展路径 }/networkbench.so PHP 扩展配置文件 {PHP 附加配置文件路径 }/networkbench.ini 或 {PHP 主配置文件 } 探针安装日志 /tmp/nbinstall- 安装日期.tar 2. PHP 扩展模块 PHP 扩展模块负责收集 PHP 运行时的性能, 并将性能数据发送给守护进程 PHP 扩展本身不与听云服务器进行数据交换,PHP 扩展通过将数据发送到守护进程进行处理来减少对系统 资源的消耗 3. 守护进程 守护进程是介于听云服务器和 PHP 扩展之间的一个汇总进程, 接收 php 扩展模块捕获的运行时性能数据, 汇 总压缩后传送到听云系统后台 不启用代理守护进程, 就不会有数据发送到听云系统 汇总进程会被 PHP 自动启动, 不需要用户手动启动 ;

常见问题 1. PHP 探针都能采集哪些数据? 目前, 探针可以采集 php 运行时的性能数据和错误信息 性能数据包括 :HTTP 请求的总响应时间 从负载均衡服务器到 web 服务器的排队时间 数据库耗时 NOSQL 耗时 web service 耗时等性能 ; 数据库性能统计 ;NOSQL 性能统计 ; 超过阈值的性能瓶颈函数 ; 慢 sql 语句及调用堆栈 ; 错误信息包括 : 数据库连接错误 sql 语法错误 php 语法错误 php 运行时未捕获的异常 http 状态码为 4xx 5xx 的错误等 ; 2. 我在多台服务器上部署了应用探针, 报表查看时, 如何将不同的应用区分开? 默认数据汇总在同一个应用, 应用名称为 PHP Application, 如果需要分开看, 把配置文件内的 nbs.app_name( 应用名称 ) 改为不同名称就可以了 3. 我在一台服务器上部署了多个 Virtual Host, 报表查看时, 如何将不同的应用区分开? 把配置文件内的 nbs.auto_app_naming 修改为 1 或 2 即可自动命名不同 Virtual Host 下的应用 4. 服务器权限要求比较严格, 无法在 /usr 下安装探针, 怎么办? 可以使用 bin 安装包指定安装路径, 假设您有 /home/tingyun 权限./tingyun-agent-php-xxx.x86_64.bin -prefix=/home/tingyun 安装包会将探针先解压到指定路径, 在安装过程中如果出现其他权限问题, 请参考 故障排查 一节的 手工安装 步骤

安装包 对应基于 x86/x86_64 处理器的各个 Linux 发行版本, 基调网络提供 6 个安装包, 请选择适合您系统的安装包安 装 安装包适用 Linux 发行版 32 位版本 64 位版本 RPM 安装包 RedHat Enterprise Linux (RHEL) 5.0 或更高版本 CentOS 5.0 或更高版本 Suse Linux 10.0 或更高版本 tingyun-agentphp- 版本.i386.rpm tingyun-agent-php- 版本.x86_64.rpm DEB 安装包 Debian 5.0 ("lenny") 或更高版本 Ubuntu 9.10 ("Karmic Koala") 或更高版本 tingyun-agentphp- 版本.i386.deb tingyun-agent-php- 版本.x86_64.deb BIN 安装包 任何其他内核版本高于 2.6.13,GLIBC 版本高于 2.5 并且提供本地 Posix 线程库支持的 linux 发行版 tingyun-agentphp- 版本.i386.bin tingyun-agent-php- 版本.x86_64.bin

RPM 安装包 (RHEL,CentOS,SUSE) RPM 安装包适用于已经安装了 rpm 系统的 linux 发行版, 包括 ( 但不限于 ) CentOS5 及以后版本 RHEL5 及以后版本 SUSE 10.0 及以后版本 安装步骤 : 执行 rpm 安装 32 位版本 rpm 包安装 sudo rpm -Uvh tingyun-agent-php- 版本.i386.rpm 64 位版本 rpm 包安装 sudo rpm -Uvh tingyun-agent-php- 版本.x86_64.rpm 将探针关联到 PHP sudo networkbench-install.sh 在接下来的录入界面输入 license 重启 php 宿主服务器 (apache, php-fpm) 此后, 当您的 php 后台服务有 http 请求进入, 几分钟后性能数据将发送到听云后台 卸载步骤 : 首先卸载 php 扩展文件和依赖的 so 文件 networkbench-install.sh uninstall 或手工移除 php 扩展路径下的 networkbench.so 及 networkbench.ini 然后移除探针 sudo rpm -e tingyun-agent-php 重启 php 宿主服务器 (apache, php-fpm) 更新步骤 : 安装新版本 php 探针 sudo rpm -Uvh tingyun-agent-php- 版本.x86_64.rpm

停止守护进程 sudo killall networkbench 重启 php 宿主服务器 (apache, php-fpm)

DEB 安装包 (Debian,Ubuntu) RPM 安装包适用于已经安装了 dpkg 系统的 linux 发行版, 包括 ( 但不限于 ) Debian5 及以后版本 Ubuntu9.10 及以后版本 安装步骤 : 执行 deb 安装 32 位版本 rpm 包安装 sudo dpkg -i tingyun-agent-php- 版本.i386.deb 64 位版本 deb 包安装 sudo dpkg -i tingyun-agent-php- 版本.x86_64.deb 将探针关联到 PHP sudo networkbench-install.sh 在接下来的录入界面输入 license 重启 php 宿主服务器 (apache, php-fpm) 此后, 当您的 php 后台服务有 http 请求进入, 几分钟后性能数据将发送到听云后台 卸载步骤 : 首先卸载 php 扩展文件和依赖的 so 文件 networkbench-install.sh uninstall 或手工移除 php 扩展路径下的 networkbench.so 及 networkbench.ini 然后移除探针 sudo dpkg -r tingyun-agent-php 重启 php 宿主服务器 (apache, php-fpm) 更新步骤 : 安装新版本 php 探针 sudo dpkg -i tingyun-agent-php- 版本.x86_64.deb

停止守护进程 sudo killall networkbench 重启 php 宿主服务器 (apache, php-fpm)

BIN 安装包 ( 其他 linux 发行版 ) 与 RPM 安装包和 DEB 安装包相比,BIN 安装包的适用范围更广,BIN 安装包适用于基于 x86/x86_64 内核版 本高于 2.6.13,GLIBC 版本高于 2.5 的 linux 服务器发行版 在没有 dpkg 和 rpm 的系统中可以使用 bin 包安装 在需要探针以非 root 权限安装 运行或需要将探针安装到用户指定目录下时, 必须使用 bin 包进行安装 安装步骤 : 下载 bin 包 32 位版本 bin 包 wget -q http://download.networkbench.com/agent/php/ 版本 /tingyun-agent-php- 版本.i386.bin && chmod 755 tingyun-agent-php- 版本.i386.bin 64 位版本 bin 包 wget -q http://download.networkbench.com/agent/php/ 版本 /tingyun-agent-php- 版本.x86_64.bin && chmod 755 tingyun-agent-php- 版本.x86_64.bin 执行 bin 安装 运行 bin 包进行安装, 默认安装到 /usr 下./tingyun-agent-php- 版本.x86_64.bin 如果您需要将 bin 包安装到指定位置, 请使用 --prefix 参数./tingyun-agent-php- 版本.x86_64.bin --prefix=/path/to 在接下来的配置界面输入 license 和应用名称 如果指定的安装路径没有写权限, 安装过程中会提示更改安装路径, 安装路径下为 so 文件和 bin 文件 如果默认安装路径不在 /usr, 安装过程中会提示指定运行路径, 默认 /var, 运行路径下为 log 文件 和 pid 文件 如果提示由于权限原因导致失败, 可以走手工安装步骤, 见 故障排查 中 手动安装 PHP 扩展 重启 php 宿主服务器 (apache, php-fpm)

此后, 当您的 php 后台服务有 http 请求进入, 几分钟后性能数据将发送到听云后台 卸载步骤 : 首先卸载 php 扩展文件和依赖的 so 文件 networkbench-install.sh uninstall 或手工移除 php 扩展路径下的 networkbench.so 及 networkbench.ini 然后移除探针./tingyun-agent-php- 版本.x86_64.bin uninstall 重启 php 宿主服务器 (apache, php-fpm) 更新步骤 : 更新 php 探针需要执行 3 个步骤停止守护进程 sudo killall networkbench 卸载 php 探针安装新版本 php 探针并重启 php 宿主服务器 (apache, php-fpm)

安装脚本 用途 PHP 探针程序需要安装 php 扩展模块到 php 环境中才能正常工作, 并且需要授权序号才能提供数据服务 并且, 各个系统的 php 版本和环境有很大差别, 因此, 我们需要有程序来做检测和安装的工作 安装脚本充当了这个角色 安装脚本需要在首次安装听云 php 探针 或者重新安装 php 之后运行 安装脚本位置 /usr/bin/networkbench-install.sh 安装步骤及选项含义 1 启动安装脚本 sudo sh /usr/bin/networkbench-install.sh 2 选择安装或解除安装 安装脚本启动后, 首先需要您选择是安装到 php 环境还是从 php 环境卸载探针 Please select from one of the following options: 1) Install 2) Uninstall 0) Exit Enter choice (1-2, 0 to exit): 键盘输入 "1" 将继续安装 3 输入授权码和网站应用名称 授权码是您从听云获得的服务授权号, 请勿泄漏 Enter license key ( 请录入授权码 ):

输入您的授权序号, 继续安装 应用名称是给您的网站起一个名称, 方便在报表显示 Enter App name ( 请输入应用名称 ): 输入网站的应用名称 ( 直接回车则默认应用名称为 PHP Application), 继续安装 4 php 版本选择 如果您的系统中安装了多个版本的 php, 安装脚本会提示您做出选择, 安装到某个指定版本的 php 或全部安装 Below is a list of the directories in which we found a copy of PHP. Please select the directory or directories for which you wish to install Networkbench. You can select either a single directory or multiple directories by separating each choice with either a space or a comma. To select all of the directories shown, please enter the special keyword 'all' (without the quotes). 1) /usr/bin 2) /usr/local/php/5.3.23/bin 0) Exit Selection (1-2, 0 to exit or all): 键入您选择的序号, 或者 all 全部安装 5 安装结束 如果一切顺利, 您将看到如下提示 : Networkbench is now installed on your system. Congratulations! 6 重启 apache 或者您的 fast-cgi 服务器 卸载 使用此脚本卸载 php 探针扩展 : sudo sh /usr/bin/networkbench-install.sh 选择 2

或者 : sudo sh /usr/bin/networkbench-install.sh uninstall

守护进程启动方式 完成安装后, 重启 php 的宿主程序 (apache 或者 php-fpm) 后, 守护进程就已经被启动了 随 Apache 或 PHP-FPM 启动而启动 宿主程序 (apache 或者 php-fpm) 会自动生成守护的配置文 件 (/var/run/networkbench/.networkbench.cfg), 并且尝试自动启动守护进程 (/usr/bin/networkbench) 如果进程列表内缺少了 networkbench 进程, 请使用下面的命令启动守护进程 sudo networkbench -f /var/run/networkbench/.networkbench.cfg

卸载 卸载 PHP 探针需要 3 个步骤 : 1 停止守护进程 : sudo killall networkbench 2 从 PHP 环境中卸载探针扩展 : sudo sh /usr/bin/networkbench-install.sh uninstall 如果为手工安装, 请手工移除 php 扩展路径下的 networkbench.so 及配置文件 networkbench.ini 3 移除安装包 : rpm 安装版本 : sudo rpm -e tingyun-agent-php deb 安装版本 : sudo dpkg -r tingyun-agent-php bin 安装版本 : sudo./tingyun-agent-php-latest.x86_64.bin uninstall 4 重启 php 相关服务, 例如 apache 或 php-fpm

快速安装 安装步骤 : 1 软件包安装 RPM 适用于 CentOS,RHEL,SUSE 32 位系统 sudo rpm -Uvh tingyun-agent-php- 版本.i386.rpm 64 位系统 DEB sudo rpm -Uvh tingyun-agent-php- 版本.x86_64.rpm 适用 Debian, Ubuntu 32 位系统 sudo dpkg -i tingyun-agent-php- 版本.i386.deb 64 位系统 BIN sudo dpkg -i tingyun-agent-php- 版本.x86_64.deb 适用其他内核高于 2.6.13 的 Linux 发行版 32 位系统 sudo./tingyun-agent-php- 版本.i386.bin 64 位系统 sudo./tingyun-agent-php- 版本.x86_64.bin

2 安装配置 sudo sh /usr/bin/networkbench-install.sh 3 重启 apache 或者 fast-cgi 服务器, 安装完毕

更新 1 停止 web 容器和守护进程 sudo service httpd stop 或 sudo service php-fpm stop sudo killall networkbench 2 软件包更新 RPM 适用于 CentOS,RHEL,SUSE 32 位系统 sudo rpm -Uvh tingyun-agent-php- 版本.i386.rpm 64 位系统 DEB sudo rpm -Uvh tingyun-agent-php- 版本.x86_64.rpm 适用 Debian, Ubuntu 32 位系统 sudo dpkg -i tingyun-agent-php- 版本.i386.deb 64 位系统 BIN sudo dpkg -i tingyun-agent-php- 版本.x86_64.deb 适用其他内核高于 2.6.13 的 Linux 发行版 32 位系统 sudo./tingyun-agent-php- 版本.i386.bin update 64 位系统

sudo./tingyun-agent-php- 版本.x86_64.bin update 3 重启 web 容器 sudo service httpd start 或 sudo service php-fpm start

听云 PHP 探针配置 1) 编辑配置文件 vi 配置文件 2)kill 探针的守护进程 sudo killall networkbench 3) 重启 web server sudo service httpd restart 或 sudo service php-fpm restart 配置文件位置会根据软件环境不同而不同, 几个典型的位置包括 : /etc/php.d/networkbench.ini 或 /etc/php5/fpm/conf.d/networkbench.ini, 如果 php 是通过源码编译安装的, 那么配置文件的位置依赖于编译时选项指定的位置 1) 如果编译 php 时指定了 --with-config-file-scan-dir 选项, 那么 networkbench.ini 会放在编译时指定的位置运行 php -i grep.ini, 其中的 Scan this dir for additional.ini files 标明了配置文件的具体位置 例如 Scan this dir for additional.ini files => /opt/php.d/, 相应配置文件为 /opt/php.d/networkbench.ini 2) 如果编译 php 时禁止了 --with-config-file-scan-dir 选项, 那么配置文件会合并在 php 主配置文件中 运行 php -i grep.ini, 其中的 Scan this dir for additional.ini files =>(none) 表示编译 php 时禁止了 --withconfig-file-scan-dir 选项, 其中的 Loaded Configuration File 标明了 php 主配置文件的具体位置 例如 Loaded Configuration File=> /opt/php55/lib/php.ini, 说明配置在 /opt/php55/lib/php.ini 文件内

启用 / 禁用探针 配置选项格式 : nbs.agent_enabled = true 数据类型 : boolean 取值 : true/false 本选项设置为 false 时,php 探针将不再采集性能数据 默认情况下, 当您想临时禁用探针时, 应该通过性能报表内的开关来临时禁用和启用探针 当多个虚拟主机的性能数据汇总在同一名称的应用下时, 通过报表禁用应用会造成全部虚拟主机的数据都无法采集, 此时可以通过下述配置来禁用其中某一虚拟主机的性能数据 1.Apache 方式 : 修改 httpd.conf 或.htaccess, 这需要有 AllowOverride Options 或 AllowOverride All 权限对需要禁用的 virtual hosts 增加 php_flag nbs.agent_enabled off, 例如 : <VirtualHost 192.168.1.3> ServerName www.test2.com DocumentRoot "/path/to/vhost2/"... <IfModule PHP_MODULE> php_flag nbs.agent_enabled off </IfModule> </VirtualHost> 注意 IfModule 语句中 PHP_MODULE 应该和引入 php 模块时的名称一致, 如果您加载 PHP 时使用 LoadModule php5_module modules/libphp5.so, 则对应语句应该修改为 "<IfModule php5_module>" 2. php-fpm 方式 : 修改 php-fpm.conf

[app2] listen=/tmp/pool-app2.sock php_flag[nbs.agent_enabled] = off 3. nginx 方式 : 修改 nginx.conf location /app1{ fastcgi_param PHP_VALUE "nbs.agent_enabled=false";... }

授权序号 配置选项格式 : nbs.license_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 数据类型 : string 取值 : 字符串 默认值 : 无 说明 本条配置项是您在安装时输入的授权序号

应用命名 自动命名 nbs.auto_app_naming = 0 数据类型 : 整型 0 - 禁用自动命名, 默认禁用 1 - 启动自动命名, 命名规则 : 使用虚拟主机的域名 + 端口作为应用名称 2 - 启动自动命名, 命名规则 : 使用 nbs.app_name+ 端口作为应用名称当您在同一台服务器上部署多个应用, 并且使用了虚拟主机 (Virtual Host) 时, 建议打开此选项当使用域名区分虚拟主机时 ( 即 Virtual Host 中配置了 ServerName), 建议使用 nbs.auto_app_naming = 1 当仅使用端口号区分虚拟主机时, 建议使用 nbs.auto_app_naming = 2, 否则由于未配置域名, 可能会产生一些非预期之内的应用名称 应用名称 nbs.app_name = "PHP Application" 数据类型 : string, 默认值 : "PHP Application" 如果通过自动命名的方式获取的应用名称不满足您的要求, 您需要将 nbs.auto_app_naming 设置为 0, 然后通过修改 APACHE 或 php-fpm 或 NGINX 的配置文件来区分不同的应用 1.Apache 方式 : 修改 httpd.conf 或.htaccess, 这需要有 AllowOverride Options 或 AllowOverride All 权限对每个 virtual hosts 增加 php_value nbs.app_name "my app", 例如 : <VirtualHost 192.168.1.2> ServerName www.test.com DocumentRoot "/path/to/vhost/"

... <IfModule PHP_MODULE> php_value nbs.app_name "my app name" </IfModule> </VirtualHost> <VirtualHost 192.168.1.3> ServerName www.test2.com DocumentRoot "/path/to/vhost2/"... <IfModule PHP_MODULE> php_value nbs.app_name "another app" </IfModule> </VirtualHost> 注意 IfModule 语句中 PHP_MODULE 应该和引入 php 模块时的名称一致, 如果您加载 PHP 时使用 LoadModule php5_module modules/libphp5.so, 则对应语句应该修改为 "<IfModule php5_module>" 2. nginx 方式 : 修改 nginx.conf 对 virtual host 每个站点内增加配置参数即可, 例如 : server { listen 80; } server_name www.web.com; location ~ /.php$ { fastcgi_param PHP_VALUE "nbs.app_name=www.web.com";... } server { listen 80;

} server_name bbs.web.com; location ~ /.php$ { fastcgi_param PHP_VALUE "nbs.app_name=bbs.web.com";... } 或对按路径区分的站点, 例如 location /app1 { fastcgi_param PHP_VALUE "nbs.app_name=my app name"; }... location /app2{ fastcgi_param PHP_VALUE "nbs.app_name=another app"; }... 3. php-fpm 方式 : 修改 php-fpm.conf [app1] listen=/tmp/pool-app1.sock php_value[nbs.app_name] = "my app name" [app2] listen=/tmp/pool-app2.sock php_value[nbs.app_name] = "another app"

日志管理 PHP 探针有两个模块 : 守护进程和 PHP 扩展 每个模块都有单独的日志管理 1 PHP 扩展日志 : 日志文件路径 配置选项格式 : nbs.agent_log_file_name = "/var/log/networkbench/php-agent.log" 数据类型 : string 默认值 : "/var/log/networkbench/php-agent.log" 说明 : 指定 php 扩展的日志文件路径 日志级别 配置选项格式 : nbs.agent_log_level = "info" 数据类型 : string 取值 : "OFF", "CRITICAL", "ERROR", "WARNING", "INFO", "VERBOSE", "DEBUG" 默认值 : "INFO" 说明 : 本选项是控制日志数据写入日志文件的级别 "DEBUG" 是最低级, 允许所有日志信息写入日志 文件 "OFF" 是最高级, 禁止所有日志信息写入日志文件 2 汇总进程日志 :

日志文件路径 配置选项格式 : nbs.daemon_log_file_name = "/var/log/networkbench/daemon.log" 数据类型 : string 默认值 : "/var/log/networkbench/daemon.log" 说明 : 指定守护进程的日志文件路径 日志级别 配置选项格式 : nbs.daemon_log_level = "info" 数据类型 : string 取值 : "OFF", "CRITICAL", "ERROR", "WARNING", "INFO", "VERBOSE", "DEBUG" 默认值 : "INFO" 说明 : 本选项是控制日志数据写入日志文件的级别 "DEBUG" 是最低级, 允许所有日志信息写入日志 文件 "OFF" 是最高级, 禁止所有日志信息写入日志文件

守护进程选项 守护进程路径 配置选项格式 : nbs.daemon.location = "/usr/bin/networkbench" 数据类型 : string 默认值 : "/usr/bin/networkbench" 说明 : 守护进程的路径

审计模式 配置选项格式 : nbs.audit_mode = false 数据类型 : boolean 取值 : true/false 默认值 : false 说明 : 本选项设定是否在日志文件中写入更详尽的信息, 包括所有的向听云后台上传和下载的数据

SQL 数据选项 禁止发送 SQL 详情 配置选项格式 : nbs.action_tracer.log_sql = false 数据类型 : boolean 取值 : true/false 默认值 : false 说明 : 若本选项为 true, 向服务器提交的数据中将只包含数据库汇总性能, 不包含 sql 详情数据,sql 详情记录 在本地 log 中

数据传输方式 是否启用 http 安全连接 nbs.ssl = true 数据类型 : boolean 取值 : true/false 是否使用安全连接 (https) 发送数据 若设定为 true, 则向服务器发送数据时期用 https 方式 否则, 使用普通 http 方式 代理服务器地址 nbs.proxy_host = 数据类型 : string 默认值 : 无 代理服务器的地址 若选项不为空, 并且未启用安全连接, 则本选项值为 http 代理服务器的 ip 地址 代理服务器端口 nbs.proxy_port = 数据类型 : 数字 默认值 : 无 本选项指定代理服务器的端口 代理服务器 user 配置选项格式 : nbs.proxy_user =

数据类型 : string 默认值 : 无 同前, 若代理服务器需要用户名密码, 本选项指定代理服务器的登陆名 代理服务器 password nbs.proxy_password = 数据类型 : 数字 默认值 : 无 同前, 若代理服务器需要用户名密码, 本选项指定代理服务器的登陆密码

排队时间 定义 : 从负载均衡服务器到 web 应用服务器的时间 原理 : 负载均衡设备或容器收到请求后, 增加请求的 http 头 [X-QUEUE-START], 内容为收到请求的毫秒数, 负载均衡将请求转发给 WEB 应用服务器 WEB 应用服务器在处理请求时, 获取当前时间的毫秒数, 两个时间差值即为请求排队时间 例如 web 应用服务器配置了队列, 大量请求在队列内排队后请求才被处理时, 排队时间会变长 如果要配置排队时间, 必须保证相关服务器的时钟同步 配置方法 1. Apache 配置 RequestHeader set X-QUEUE-START "%t" 2. Nginx 配置 (1.2.6 版本以上 ) A) 使用 proxy_set_header proxy_set_header X-QUEUE-START "s=$msec"; B) 或使用 fastcgi_param fastcgi_param HTTP_X_QUEUE_START "s=$msec"; C) 或使用 Passenger passenger_set_cgi_param HTTP_X_QUEUE_START "s=${msec}";

D) 或使用 uwsgi uwsgi_param HTTP_X_QUEUE_START "s=${msec}"; 3. HaProxy 配置 http-request set-header X-Queue-Start t=%ts%ms 4. F5 配置, 使用以下脚本 when HTTP_REQUEST_SEND { set secs [clock seconds] set ms [clock clicks -milliseconds] set base [expr { $secs * 1000 }] set fract [expr { $ms - $base }] if { $fract >= 1000 } { set diff [expr { $fract / 1000 }] incr secs $diff incr fract [expr { -1000 * $diff }] } set micros [format "%d%03d000" $secs $fract] clientside { HTTP::header insert X-QUEUE-START "t=${micros}" }

}

排除安装故障 探针安装日志在 /tmp/ 下, 名称为 nbinstall-xxxx.tar 1. 安装 RPM 包时, 出现 error: Failed dependencies 提示 [nb@localhost tmp]$ rpm -Uvh tingyun-agent-php-latest.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-agentphp-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-agentphp-1.0.3-1.x86_64 出现此提示的原因是您的操作系统为 32 位, 但您尝试安装 64 位的 RPM 包, 请更换为 32 位的 RPM 包 2. 安装 PHP 探针时, 提示 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 的安装路径, 需要手工指定 php 的安装路径 录入 php 所在的文件夹路径, 例如 : php 的位置是 /opt/php5/bin/php, 就录入 /opt/php5/bin

4. 运行 networkbench-install.sh 时, 出现 The Networkbench agent is not installed. 提示 PHP 环境中缺少探针安装相关的必要信息, 导致无法自动安装 PHP 扩展 解决方法请参见 : 文档内 故障排查 的 手动安装 PHP 扩展 一节 5. 运行 networkbench-install.sh 时,PHP 版本选择步骤中, Below is a list of the directories in which we found a copy of PHP 列表中, 没有用户期望的 PHP 路径在系统环境变量里面找不到用户期望的 PHP 安装路径解决方法 : 将此 php 的安装路径加入到 PATH 环境变量中, 然后重新运行安装脚本 6 安装成功但报表内无数据 1) 初次安装后需要一段时间才能看到数据, 通常需要 5 分钟或更长时间, 请多等一段时间 2) 有的用户浏览器 ( 比如猎豹 ) 缓存有问题, 即使有数据如果不强制刷新也可能看不到, 请尝试清空缓存或强制刷新或更换浏览器 3) 探针安装成功后, 必须重启 apache 或 php-fpm, 否则探针不生效 4) 确认 PHP 的扩展配置文件中授权序号正确通常 networkbench.ini 位于 /etc/php.d/networkbench.ini 或 /etc/php5/fpm/conf.d/networkbench.ini, 如果 php 是通过源码编译安装的, 那么配置文件的位置依赖于编译时选项指定的位置 nbs.license_key = " 此处修改为您的授权序号 " 5) 确认 web 服务器有没有用户访问探针数据是基于 http 请求的性能, 如果没有访问, 就不会有性能数据 如果没有用户访问, 请使用浏览器访问一下相应的应用, 再过 5 分钟后查看报表

检查守护进程 确认守护进程在运行 : ps aux grep networkbench 正常情况下的信息和以下截图类似 : 如果 networkbench 进程不存在, 请重启 web server sudo service httpd restart 或 sudo service php-fpm restart 然后再次运行 ps -e grep networkbench, 查看输出结果如果 networkbench 进程仍不存在, 请运行 ll /usr/bin/networkbench 查看输出结果, 确认守护进程文件是否存在如果 /usr/bin/networkbench 不存在, 说明守护被误删了, 请重新安装探针

检查 php 扩展模块 创建 info.php, 内容如下, 并将 info.php 放在网站某个目录下 <?php phpinfo();?> 通过浏览器访问 info.php, 查找页面内是否存在关键字 networkbench, 并且查看 nbs.app_name 内容, 此值如果为空 (no value) 说明配置文件路径错误或内容错误, 查看 nbs.license_key 内容, 此值应该和听云帐号内的授权码一致 正常情况下的信息和以下截图类似 若没有 networkbench 模块信息, 请以 root 运行 networkbench-install.sh #networkbench-install.sh 然后, 请重启 apache 或您的 fast-cgi 程序以重新加载 php 扩展 执行上述操作后, 刷新浏览器的 info.php 页面, 如果仍未出现 networkbench 模块信息, 则很有可能您的 php 版本不符合安装条件, 或者是经过裁剪修改的 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 扩展 当无法在标准位置查找到 php 或缺少 php 某些信息时, 安装脚本无法自动安装 php 扩展, 此时需要我们手动安装 %prefix% 为探针安装路径,so 文件和 bin 文件放在此路径下, 默认探针安装路径为 /usr, bin 包安装时可以使用 prefix 参数指定 1) 确认操作系统位数确认操作系统是 32 位还是 64 位 uname -a 2) 确认 PHP 信息在有权限生成 PHP 文件的情况下, 最好使用 phpinfo() 函数来验证 : 通过生成 info.php 文件, 使用浏览器访问 info.php 查看 php 信息 echo "<?php phpinfo();?>" > /var/www/html/info.php 否则, 使用 php -i grep 来验证 php 信息 信息名称 info.php 方式 php -i 方式 PHP API 是否启用了 zts 扩展 so 路径 php -i grep "PHP API" php -i grep "Thread Safety" php -i grep "extension_dir" ini 配置文件路径 php -i grep "Loaded Configuration File" php -i grep "Scan this dir for additional" 3) 安装 so 扩展 进入到 php 扩展 so 路径 (extension_dir 指定的路径 ), 做一个软链接 networkbench.so 到

%prefix%/lib/networkbench/agent/ 下的对应版本的 so 扩展 这里假设操作系统是 64 位,php 版本是 5.3, 对应 api 版本为 20090626, php 启用了 zts(zend thread safe) 模式, 扩展 so 路径为 /usr/lib64/php/modules ln -s /usr/lib/networkbench/agent/x64/networkbench-20090626-zts.so /usr/lib64/php/modulesnetworkbench.so PHP 版本和探针 so 对应关系 PHP 版本 PHP API 启用 zts 禁用 zts 5.2 20060613 networkbench-20060613- zts.so 5.3 20090626 networkbench-20090626- zts.so 5.4 20100525 networkbench-20100525- zts.so 5.5 20121212 networkbench-20121212- zts.so 5.6 20131226 networkbench-20131226- zts.so 7.0 20151012 networkbench-20151012- zts.so networkbench- 20060613.so networkbench- 20090626.so networkbench- 20100525.so networkbench- 20121212.so networkbench- 20131226.so networkbench- 20151012.so 4) 增加配置文件, 并修改授权码 a. 如果 PHP 信息中附加的配置文件路径不为空 ( 即 Scan this dir for additional 不为 "none"), 将配置文件模版 networkbench.ini.template 复制到 php 扩展配置的文件夹, 并改名为 networkbench.ini 假设附加的 php 扩展配置路径为 :/etc/php.d/ cp /usr/lib/networkbench/scripts/networkbench.ini.template /etc/php.d/networkbench.ini vi /etc/php.d/networkbench.ini b. 如果附加的配置路径为空 ( 即 Scan this dir for additional 值为 "none"), 将配置文件模版 networkbench.ini.template 的内容添加到 PHP 主配置文件 ("Loaded Configuration File" 项指定的文件 ) 后面 假设 PHP 主配置文件路径为 :/etc/php.ini

cp /etc/php.ini /etc/php.ini.bak cat /usr/lib/networkbench/scripts/networkbench.ini.template >> /etc/php.ini vi /etc/php.ini 将配置文件内 nbs.license_key = "REPLACE_WITH_REAL_KEY" 中 REPLACE_WITH_REAL_KEY 替换 为您的授权码 如果您使用了 bin 包安装, 还需要修改配置文件内 nbs.prefix 为指定的安装路径, 修改 nbs.runtime_root 为运行路径, 创建 %runtime_root%/log/networkbench/ 和 %runtime_root%/run/networkbench/ 文件夹并赋予其足够的权限 假设 nbs.runtime_root=/home/mike mkdir /home/mike/log/networkbench chmod 777 /home/mike/log/networkbench mkdir /home/mike/run/networkbench chmod 777 /home/mike/run/networkbench 5) 重启 apache 或 php-fpm

版权申明 本文档版权归北京基调网络系统有限公司所有 未经书面许可, 任何人不得复制 传播 北京基调网络系统有限公司 www.networkbench.com 总部地址 : 北京市朝阳区京顺路 5 号曙光大厦 C 座 207 室邮编 :100028 联系电话 :010-84440086