问题描述
需要使用Skywalking获取Java程序的各个链路之间的调用关系,简单部署了一个Skywalking,对过程进行简单记录。
开始
下载skywalking安装包和java探针安装包,本次下载的是skywalkingv9.2.0,java探针是9.1.0版本.
https://skywalking.apache.org/downloads/
上传到服务器并解压
cd /usr/local/skywalking
tar -xzvf apache-skywalking-apm-9.2.0.tar.gz
tar -xzvf apache-skywalking-java-agent-9.1.0.tgz
可以修改默认内存模式,不修改默认以H2暂存。
我这里只简单使用一下,查看一下调用链关系,就直接以默认的H2数据库存储了。
如果需要修改存储的,可以编辑yml文件进行配置,例如可以配置mysql存储,或者使用Elasticsearch存储。大概在yml的133行附近。
启动Skywalking
启动前确保8080 11800 12800端口可用
进入目录
cd apache-skywalking-apm-bin
启动
sh bin/startup.sh
java程序接入skywalking
注意:探针需要在被监控的java程序的服务器上。我这里java程序和skywalking是在同一台服务器上
编写java程序启动脚本,并配置agent参数,start.sh内容如下
JAVA_OPTS_AGENT=" -javaagent:/usr/local/skywalking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=test_service -Dskywalking.collector.backend_service=localhost:11800"nohup java ${JAVA_OPTS_AGENT} -jar /usr/local/test-service.jar &
然后启动被监控的java程序
sh start.sh
访问skywalking地址查看服务状态
localhost:8080