Pinpoint环境搭建
- 依赖
- 系统-Centos7
- 存储-hbase
- 环境-java8
- 服务器-tomcat
- 其他-Python3、PHP7、Nginx
- 搭建pinpoint环境
- 下载安装 hbase
- 启动hbase,注意查看启动日志,确保启动成功
- 下载pinpoint的release版本
下载其中的pinpoint-agent-1.8.5.tar.gz、pinpoint-collector-1.8.5.war、pinpoint-web-1.8.5.war - 下载pinpoint源码,创建hbase表
git clone https://github.com/naver/pinpoint.git cd pinpoint/hbase/scripts $HBASE_HOME/bin/hbase shell hbase-create.hbase
- 启动pinpoint-collector
- 复制tomcat项目,到自己的项目目录(如
/home/work/pinpoint/collector
) - 将
pinpoint/collector/webapps
下的内容全部删除,并在该路径下创建ROOT目录。将2.3步下载的pinpoint-collector-1.8.5.war解压到ROOT目录下。
修改pinpoint/collector/webapps/ROOT/WEB-INF/classes/
下的hbase.properties
中的hbase的地址和端口号,如果hbase默认启动,则不用修改(localhost:2181)
修改pinpoint/collector/conf/server.xml
中绑定的端口号(如果没有冲突,则不用修改)
修改pinpoint/collector/webapps/ROOT/WEB-INF/classes
下的pinpoint-collector.properties
中三个地址和端口- collector.receiver.base.port(默认9994)
- collector.receiver.stat.udp(默认9995)
- collector.receiver.span.udp(默认9996)
- 启动pinpoint-collector
pinpoint/collector/bin/startup.sh
,查看输出日志log/catalina.out
是否成功启动
- 复制tomcat项目,到自己的项目目录(如
- 启动pinpoint-web
- 复制tomcat项目,到自己的项目目录(如
/home/work/pinpoint/web
) - 将
pinpoint/web/webapps
下的内容全部删除,并在该路径下创建ROOT目录。将2.3步下载的pinpoint-web-1.8.5.war解压到ROOT目录下。
修改pinpoint/collector/webapps/ROOT/WEB-INF/classes/
下的hbase.properties
中的hbase的地址和端口号,如果hbase默认启动,则不用修改(localhost:2181)
修改pinpoint/collector/conf/server.xml
中绑定的端口号(如果没有冲突,则不用修改) - 启动pinpoint-web
pinpoint/web/bin/startup.sh
,查看输出日志log/catalina.out
是否成功启动
- 复制tomcat项目,到自己的项目目录(如
- 对外开放部署的几个端口号(iptables添加)
- pinpoint-web页面访问端口(8080)
- pinpoint-collecror中的三个端口号(9994,9995,9996)
-
访问127.0.0.1:8080,即可看到pinpoint页面
image.png
配置PHP连接pinpoint服务
-
安装pinpoint_php扩展
git clone https://github.com/naver/pinpoint-c-agent.git cd pinpoint-c-agent phpize ./configure make && make install # 在php.ini中添加以下配置 extension=pinpoint_php.so pinpoint_php.CollectorHost=unix:/tmp/collector-agent.sock pinpoint_php.SendSpanTimeOutMs=0 # 0 is recommanded pinpoint_php.TraceLimit=-1
-
启动php-agent
- 进去
pinpoint-c-agent/collector-agent
- 修改
conf/collector.conf
- 几个地址和端口号(在配置collector中的那三个),
- Address(对应php.ini中的那个pinpoint_php.CollectorHost,这里不需要加“unix:”前缀,php.ini必须添加“unix:”前缀)
- 添加AgentID和ApplicationName配置,标志唯一的application
- 执行命令
python3 -m venv env source env/bin/activate pip3 install -r requirements.txt export COLLECTOR_CONFIG=/下载的pinpoint-c-agent目录/collector-agent/conf/collector.conf python3 run.py(查看是否报错,查看之前127.0.0.1:8080中是否有了刚启动的application)
- 注意权限问题(所有操作可以尽量使用php的用户操作)
- 进去
-
配置项目laravel中提交到pinpoint
- composer.json中添加如下内容
{ "config": { "secure-http": false }, "require": { "eeliu/php_simple_aop": "v0.1" }, "autoload": { "psr-4": { "Plugins\\": "app/Support/Plugins/" } }, "repositories": [ {"packagist": false}, { "type": "composer", "url": "https://mirrors.aliyun.com/composer" }, { "type": "vcs", "url": "http://10.77.3.130/CentralPlatformService/php_simple_aop.git" } ] }
- composer update更新依赖
- 将之前下载的
pinpoint-c-agent/PHP/pinpoint_php_example/Plugins
文件夹复制到laravel项目的app/Support
下边 - 修改
app\Support\Plugins\NextSpanPlugin.php
中的@hook,添加自己要监控的方法 - 访问自己的项目,看pinpoint-web页面是否有数据(如果没有,开启php.ini中的log_errors,配置error_log,然后查看错误日志)
-
容易出问题的点
- php.ini中的地址一定要加"unix:"前缀
- 启动
python3 run.py
会生成/tmp//tmp/collector-agent.sock
(自己配置的名称),php会读取这个东西,如果python3 run.py
是root用户启动的,那么很可能php-fpm没有权限使用这个sock,解决方法是su php
切换到php用户,然后在python3 run.py
- 检查端口号是否开放,尤其是9994,9995,9996
- 检查代码中@hook后边加的方法名称是否正确,否则容易在web页面显示'no data'
网友评论