架构组成
Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI。
Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可
Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase
WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能
准备一台服务器
CentOS7(192.168.1.155)
一、Docker
1、安装Docker
yum install docker -y
2、启动Docker服务:
systemctl start docker
systemctl enable docker
二、拉取Pinpoint的Docker镜像(除Agent组件外)
1、克隆pinpoint-docker
git clone https://github.com/naver/pinpoint-docker.git
2、安装docker-compose
在这里找到最新版二进制文件下载地址:https://github.com/docker/compose/releases
cd /usr/local/bin/
wget https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 docker-compose
chmod +x /usr/local/bin/docker-compose
3、拉取docker-compose镜像:
因为/home/software/pinpoint-docker目录下有docker-compose.yml文件,所以docker-compose命令必须在此目录下运行
cd /home/software/pinpoint-docker
docker-compose pull
三、运行Pinpoint
1、修改docker-compose.yml中2处路径
vi docker-compose.yml
将17、18行
- ./home/pinpoint/hbase
- ./home/pinpoint/zookeeper
改为
- /home/pinpoint/hbase
- /home/pinpoint/zookeeper
去掉前边的点,改为绝对路径
如果不改在之后的命令中会出错:
ERROR: for pinpoint-hbase Cannot create container for service pinpoint-hbase: invalid volume spec "home/pinpoint/zookeeper": invalid volume specification: 'home/pinpoint/zookeeper': invalid mount config for type "volume": invalid mount path: 'home/pinpoint/zookeeper' mount path must be absolute
2、执行运行命令
docker-compose up -d
docker ps -a
docker-compose ps
注意8000、9997、8080、9994-9996、16010、6123、2181、2888、3888、8081、8079端口不能被占用
PS:其他命令
停止compose服务
docker-compose stop
重启compose服务
docker-compose restart
kill compose服务
docker-compose kill
删除compose服务
docker-compose rm
使用Chrome浏览器访问各组件:
Flink http://192.168.1.155:8081/
WebUI http://192.168.1.155:8079/
QuickStart http://192.168.1.155:8000/
Hbase http://192.168.1.155:16010
3、上传pinpoint-flink-job包
使用Chrome浏览器访问Flink:http://192.168.1.155:8081/#/submit
将Github上https://github.com/naver/pinpoint-docker的pinpoint-docker/pinpoint-flink/build/pinpoint-flink-job-{pinpoint-version}.jar 文件手动upload到flik组件中,上传的版本{pinpoint-version}需要和pinpoint保持一致,pinpoint版本可以查看镜像或者容器版本
上传完成
四、安装Agent组件
1、在需要监控的服务器上访问 https://github.com/naver/pinpoint/releases 下载和 Collector组件 相同版本的pinpoint-agent压缩包。
命令如下:
cd /home
mkdir pinpoint-agent
cd pinpoint-agent
wget https://github.com/naver/pinpoint/releases/download/1.8.0/pinpoint-agent-1.8.0.tar.gz
tar -zxvf pinpoint-agent-1.8.0.tar.gz
chown web:web /home/pinpoint-agent -R
2、配置并运行
修改pinpoint.config 文件
vi pinpoint.config
改配置项 profiler.collector.ip=127.0.0.1 为你自己的Collector组件的IP(Pinpoint服务器IP)
3、插入探针
(1)Tomcat
修改Tomcat启动脚本catalina.sh
vi /home/web/tomcat/bin/catalina.sh
最好在文件头几行插入,不能放在文件末尾
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/home/pinpoint-agent/pinpoint-bootstrap-1.8.0.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=smz_nt_interface"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=smz_nt_interface"
PS:
如果你在多台机器上部署了应用程序,那么就需要在多台机器上部署Agent组件
applicationName:在pinpoint上显示的名字
agentId:可以和applicationName相同,也可以不同。但必须唯一,标志一个jvm。
同一个应用的不同实例可以使用不同的agentId,相同的applicationName。
启动程序,访问一下,就可以在pinpoint上看见相关数据。
./startup.sh
(2)jar包
使用如下命令启动jar包:
java -javaagent:/home/tanchengwen/pinpoint-agent/pinpoint-bootstrap-1.8.1.jar -Dpinpoint.agentId=sso_test -Dpinpoint.applicationName=sso_test -jar xxxxxxxxxx.jar
后台启动:
nohup java -javaagent:/home/tanchengwen/pinpoint-agent/pinpoint-bootstrap-1.8.1.jar -Dpinpoint.agentId=sso_test -Dpinpoint.applicationName=sso_test -jar xxxxxxxxxx.jar &
4、查看效果
进http://192.168.1.155:8079/查看配置已生效
100秒1000人登录测试