pinpoint开源的APM性能监控工具,支持最好的应该还是java程序,通过外挂java agent的方式采集java进程的性能数据,不侵入程序代码。
版本1.8.5
1. pinpoint使用hbase做为数据存储,在启用前,需要提前准备好hbase环境,这里先不涉及hbase安装部署。
初始化pinpoint的库文件
在hbase服务器上执行
$HBASE_HOME/bin/hbase shell hbase-create.hbase
hbase-create.hbase文件到pinpoint的github库中下载,成功后进行后续步骤。
2. 部署包为war包,需要提前准备tomcat的软件包
下载tomcat
http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz
解压包到/opt/tomcat
3.到https://github.com/naver/pinpoint/releases/tag/1.8.5下载1.8.5的包
pinpoint-collector.war 数据收集器
pinpoint-web.war web管理控制台
pinpoint-agent.tar.gz agent包
pinpoint-web.war,pinpoint-collector.war解压到tomcat/webapps/下,如果收集数据较多可以放在不同的服务器,这里收集和展示全放一台机器上
修改web和collector的配置,
将下列文件中的hbase.client.host修改为hbase的zookeeper地址,
/opt/tomcat/webapps/pinpoint-web/WEB-INF/classes/hbase.properties
/opt/tomcat/webapps/pinpoint-collector/WEB-INF/classes/hbase.properties
另外pinpoint系统本身也需要zookeeper保存collector集群信息,所以需要另外一个单独的zookeeper服务,这里为了省事,也使用habase的zookeeper了,还需要修改下列文件中的zookeeper地址
./pinpoint-collector/WEB-INF/classes/deprecated-pinpoint-collector.properties
./pinpoint-collector/WEB-INF/classes/pinpoint-collector.properties:
./pinpoint-web/WEB-INF/classes/pinpoint-web.properties
如下:
cluster.zookeeper.address=192.168.1.100
flink.cluster.zookeeper.address=192.168.1.100
cluster.zookeeper.address=192.168.1.100
flink.cluster.zookeeper.address=192.168.1.100
修改完成后,启动tomcat
tomcat/bin/startup.sh
4. 登录web界面
192.168.1.100:8080/pinpoint-web
不需要登录,能正常界面则前面部署成功。
5.部署Agent采集数据
a. jar包形式
jar包形式的进程采集时最简单,将pinpoint-agent包传到java进程的服务器上,解压到/opt/agent, 然后修改jar包的启动命令:
如之前启动命令为:
java -jar jarname.jar
挂上agent后为
java -javaagent:/opt/agent/pinpoint-bootstrap-1.8.5.jar -Dpinpoint.agentId=192.168.1.99 -Dpinpoint.applicationName=jarname -jar jarname.jar
留意这里java-agent的位置要加在-jar前面
-javaagent agent的路径
-Dpinpoint.agentId 传给agent的参数,当前的服务器Id
-Dpinpoint.applicationName 传给agent的参数,应用名
重新启动jar程序后,查看pinpoint-web是否有数据采集进来。
b. tomcat程序的数据采集
修改tomcat/bin下的catalina.sh文件,加入以下内容,重启tomcat即可
CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$AGENT_ID"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"