本文主要适合新手运维在快速配置APM 全链路检测 ,并在k8s部署过程给出一定思路, 如果已经解决该问题 直接跳过该文章,本文编写的过程中 参考前同事(小黑龙)之前部署心得和体验。
本文主要为了如下几个部分
1、所需配置
2、搭建部署skywalking
3、k8s接入skywalking jar
4、访问测试
— 1 —
所需配置
软件
代码语言:javascript复制java 推荐使用 1.11以上
skywalking
elasticsearch (存储skywalking数据) 推荐使用7.0以上版本。不推荐使用mysql h2等等
系统
代码语言:javascript复制操作系统:centos 7.8 64
CPU:2C
内存:8G
硬盘 300G ESSD
— 2 —
部署skywalking
部署JAVA
代码语言:javascript复制wget https:/-init.oss-cn-hangzhou.aliyuncs.com/jdk-11.0.9_linux-x64_bin.tar.gz
tar zxvf jdk-11.0.9_linux-x64_bin.tar.gz -C /usr/local/、
cat << EOF > /etc/profile
export JAVA_HOME=/usr/local/jdk-11.0.9
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
java -version
elasticsearch 厂商购买
skywalking
一、从官网下载
代码语言:javascript复制cd /usr/local/src
wget https://www.apache.org/dyn/closer.cgi/skywalking/8.6.0/apache-skywalking-apm-es7-8.6.0.tar.gz
tar zxvf apache-skywalking-apm-es7-8.6.0.tar.gz -C /usr/local
cd /usr/local/aapache-skywalking-apm-es7-8.6.0/config
二、修改配置
cd
/usr/local/apache-skywalking-apm-es7-8.6.0/config
vim application.yml
####修改storage相关信息####
storage:
selector: ${SW_STORAGE:elasticsearch7}
elasticsearch7:
nameSpace: ${SW_NAMESPACE:"es-cn-nif1ys33y0027zfox"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:es-cn-nif1ys33y0027zfox.elasticsearch.aliyuncs.com:9200}
user: ${SW_ES_USER:"elastic"}
password: ${SW_ES_PASSWORD:"aoteman666"}
只要修改 storage下面的配置
selector: ${SW_STORAGE:elasticsearch7} 修改成: selector: ${SW_STORAGE:elasticsearch7}
nameSpace: ${SW_NAMESPACE:""} 修改成: nameSpace: ${SW_NAMESPACE:"xxxxxxxx"}
user: ${SW_ES_USER:""} 修改成: user: ${SW_ES_USER:"elastic"}
password: ${SW_ES_PASSWORD:""} 修改成: password: ${SW_ES_PASSWORD:"aoteman666"}
三、启动服务
代码语言:javascript复制 # 启动skywalking服务端
cd /usr/local/apache-skywalking-apm-es7-8.6.0/bin
./startup.sh start
# 设置开机启动
chmod a x /etc/rc.d/rc.local
vim /etc/rc.local
/usr/local/apache-skywalking-apm-es7-8.6.0/bin/startup.sh start
— 3 —
k8s接入skywalking jar
配置应用
代码语言:javascript复制1、将sw-agent 放入git项目中
参考 xxx-app这个项目,将sw-agent下载到这项目中 xxx-app/data下面
2、docker build时将 sw-agent加入到docker镜像中
修改Dockerfile,新增:COPY sw-agent/ /var/local/sw-agent
3、修改run.sh, 启动命令中新增:-javaagent:/var/local/sw-agent/skywalking-agent.jar
以 shenlu-app为例,启动命令为:sh -c "/var/local/jdk-11.0.9/bin/java -javaagent:/var/local/sw-agent/skywalking-agent.jar -jar ${JAVA_OPTS} /var/local/shenlu-shenlu-app.jar --spring.profiles.active=${PROFILE}"
4、修改k8s deployment的yaml文件,传入sw相关的变量
在 spec.template.spec.containers.env下面新增:
- name: SW_AGENT_NAME
value: xxx-app(这里需要随项目名来改动)
- name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
valueFrom:
configMapKeyRef:
key: SW_AGENT_COLLECTOR_BACKEND_SERVICES
name: skywalking-env(已经创建好skywaling-env这个configmap)
5、yaml提交到git仓库后,按正常流程部署服务,就可以正常加载skywalking agent了
— 4 —
访问测试
访问skywalking服务
本教程适合新手运维 希望对大家有所帮助!!