服务器Pinpoint监控配置:从安装到验证的完整实操指南
Pinpoint 是一套基于 Java 的分布式应用性能监控系统,核心作用是把 Java 应用的调用链路、响应时间、异常堆栈和 JVM 状态集中展示出来。
如果你正在搜索服务器Pinpoint监控配置,大概率需要一套能自己掌控的 APM 方案,而不是只看概念。
下面按实际部署顺序,把环境准备、核心组件安装、Agent 接入和验证方法讲清楚。
部署前先确认这几件事
Pinpoint 的架构分为三部分:Agent 负责采集数据,Collector 负责接收数据,Web 负责展示数据,底层依赖 HBase 存储。
在动手之前,先核对服务器条件。
- 操作系统:主流 Linux 发行版均可,本文以 CentOS 7 和 Ubuntu 20.04 为例。
- JDK 版本:Pinpoint 各组件对 JDK 版本有要求,建议统一使用 JDK 8 或 JDK 11,具体以你下载的 Pinpoint 版本说明为准。
- 内存:单机测试环境建议至少 8GB,HBase 和 Collector 都比较吃内存。
- 端口规划:Collector 默认使用 9991、9992、9993,Web 默认 8080,HBase 默认 2181。
先检查 JDK 是否可用:
java -version
如果显示 java version "1.8.0_xxx" 或 11.0.x,说明环境基本满足。
没有安装的话,用系统包管理器安装即可。
第一步:部署 HBase 存储
Pinpoint 的数据最终写入 HBase,所以 HBase 必须先跑起来。
下载 HBase 后解压到 /usr/local/hbase,编辑 conf/hbase-site.xml,加入以下关键配置:
hbase.rootdir
file:///data/hbase
hbase.zookeeper.property.dataDir
/data/zookeeper
hbase.cluster.distributed
false
这是单机模式,适合测试环境。
启动 HBase:
/usr/local/hbase/bin/start-hbase.sh
然后用 jps 命令检查,能看到 HMaster 和 HQuorumPeer 进程就说明启动成功。
第二步:初始化 Pinpoint 的 HBase 表结构
Pinpoint 需要预先创建自己的表。
进入 Pinpoint 解压目录下的 hbase/scripts 文件夹,执行初始化脚本:
./hbase-create.hbase
如果提示权限不足,先给脚本加执行权限。
执行完成后,可以通过 HBase shell 查看表是否创建成功:
/usr/local/hbase/bin/hbase shell
list
列表中应出现 ApplicationTraceIndex、AgentInfo 等表。
第三步:启动 Collector 和 Web
进入 Pinpoint 目录,分别启动两个核心服务:
./bin/start-collector.sh
./bin/start-web.sh
启动后检查日志:
tail -f logs/collector.log
tail -f logs/web.log
日志中没有持续报错,并且 Web 端口 8080 处于监听状态,就说明服务正常。
可以用 ss -tlnp | grep 8080 确认。
浏览器访问 http://服务器IP:8080,能看到 Pinpoint 的 Web 界面即表示部署完成。
第四步:给 Java 应用接入 Agent
Agent 是采集数据的入口,需要挂载到你的 Java 应用启动参数中。
把 Pinpoint 的 agent 目录复制到应用服务器上,然后在启动命令中加入:
java -javaagent:/path/to/pinpoint-agent/pinpoint-bootstrap-xxx.jar \
-Dpinpoint.agentId=my-app-01 \
-Dpinpoint.applicationName=my-app \
-jar your-application.jar
agentId 在同一应用集群中必须唯一,applicationName 相同则会被归为同一个应用。
重启应用后,Agent 就会开始向 Collector 发送数据。
几个容易踩坑的地方
Collector 连不上 HBase:检查 HBase 的 ZooKeeper 端口 2181 是否被防火墙拦截,以及 Collector 配置中的 HBase 地址是否正确。
Web 界面没有数据:先确认 Agent 所在服务器能否访问 Collector 的 9991 端口。
网络不通时,Agent 日志会反复出现连接超时。
Agent 版本和 Collector 版本不一致:尽量使用同一版本号,跨版本可能出现协议不兼容。
HBase 启动后很快退出:多半是 hbase-site.xml 中数据目录权限不对,确保运行 HBase 的用户对 /data/hbase 有写权限。
怎么确认配置真的生效了
打开 Pinpoint Web,在左侧应用列表中应该能看到你配置的 applicationName。
点击进入后,能看到调用链路图、响应时间分布和服务器列表。
如果应用有请求进来,几分钟内就会出现实时数据。
还可以在 Agent 所在服务器查看日志,确认没有持续报错:
tail -f /path/to/agent/logs/pinpoint-agent.log
日志中出现 send agent info 或类似成功发送的记录,说明数据上报正常。
常见疑问
Pinpoint 能监控非 Java 应用吗?
Pinpoint 主要面向 Java 应用,通过字节码增强采集数据。非 Java 应用需要额外适配,不在本文讨论范围内。
单机部署够用吗?
测试和小规模生产可以单机,但 HBase 和 Collector 在同一台机器上会争抢资源。数据量上来后,建议把 HBase 独立部署。
Agent 会影响应用性能吗?
Agent 会带来一定开销,通常对性能影响可控,但高并发场景建议先在测试环境验证。
整套服务器Pinpoint监控配置的流程并不复杂,关键是把 HBase、Collector 和 Agent 三者的网络连通性和版本一致性检查到位。
建议先在测试环境跑通,再按同样步骤迁移到生产环境。