SkyWalking部署
作者 |
刘畅 |
时间 |
2021-07-12 |
环境: centos7.5
主机名 |
IP |
安装软件 |
es01 |
192.168.30.47 |
elasticsearch 7.8.1 |
es02 |
192.168.30.48 |
elasticsearch 7.8.1 |
es03 |
192.168.30.49 |
elasticsearch 7.8.1 |
skywalking |
192.168.30.51 |
skywalking 8.6.0,jdk1.8.0_291 |
目录
3.2 将打包的skywalking agent部署到jar应用上
1 部署elasticsearch服务
在192.168.30.47-192.168.30.49节点上操作,并安装elasticsearch-head,这里省略安装步骤,详细
安装步骤可以参考: https://www.cnblogs.com/LiuChang-blog/p/14702941.html文档。
elasticsearch集群名称为: elk-cluster
# skywalking官网推荐将以下配置添加到elasticsearch.yml
thread_pool.write.queue_size:
1000
#
Suitable for ElasticSearch 6 and 7
# 访问elasticsearch集群
http://192.168.30.47:9100/
2 部署SkyWalking
在192.168.30.51节点上操作
官方文档: https://skywalking.apache.org/docs/main/v8.6.0/readme/
2.1 部署jdk1.8
# tar -xzf jdk-8u291-linux-x64.tar.gz -C
/home/
# cd
/home/
# mv
jdk-8u291-linux-x64/ jdk/
#
vim /etc/profile
export
JAVA_HOME=/home/jdk
export
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export
PATH=$JAVA_HOME/bin:$PATH
# source /etc/profile
2.2 下载SkyWaking
https://www.apache.org/dyn/closer.cgi/skywalking/8.6.0/apache-skywalking-apm-es7-8.6.0.tar.gz
#
tar -xzf apache-skywalking-apm-es7-8.6.0.tar.gz -C /home/
# cd
/home/
# mv
apache-skywalking-apm-es7-8.6.0/ skywalking-es7/
# ls -l /home/skywalking-es7/
2.3 配置skywalking连接es7
# vim
/home/skywalking-es7/config/application.yml
可选优化:
(1)
修改skywalking日志存储个数
# vim
/home/skywalking-es7/config/log4j2.xml
<DefaultRolloverStrategy
max="30"/>
# 默认30个,单个日志大小102400KB
# 建议值5
(2)
关于存储清理的配置
# vim
/home/skywalking-es7/config/application.yml
core:
recordDataTTL:
${SW_CORE_RECORD_DATA_TTL:3}
#
Unit is day
# 记录: 影响记录数据,包括跟踪和报警。
# 建议3天
metricsDataTTL:
${SW_CORE_METRICS_DATA_TTL:7}
#
Unit is day
# 指标: 影响所有指标,包括服务、实例、端点指标和拓扑图指标。
# 建议3天
(3)
优化skywalking存储elasticsearch配置
# vim
/home/skywalking-es7/config/application.yml
elasticsearch7:
indexShardsNumber:
${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1}
#
Shard number of new indexes
# es存储分片数,因为是3个es节点,这里设置为3
indexReplicasNumber:
${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:1}
#
Replicas number of new indexes
# es存储分片副本数
# 建议1
bulkActions:
${SW_STORAGE_ES_BULK_ACTIONS:1000}
#
Execute the async bulk record data every ${SW_STORAGE_ES_BULK_ACTIONS}
requests
# 批量提交的大小,通过增加该值,减少skwalking服务端和es之间交互,增加吞吐量
# 建议4000
flushInterval:
${SW_STORAGE_ES_FLUSH_INTERVAL:10}
#
flush the bulk every 10 seconds whatever the number of requests
# 每间隔多少秒提交请求,建议值30
concurrentRequests:
${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}
#
the number of concurrent requests
# 增加现有请求数,建议值4
metadataQueryMaxSize:
${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
# 查询最大数量,建议值8000
2.4 启动skywalking
#
/home/skywalking-es7/bin/startup.sh
#
skywalking的日志文件在skywalking安装目录下的logs目录下。
#
netstat -tunlp | grep java
11800为gRPC 服务agent连接端口
12800为REST
服务agent连接端口
2.5 访问skywalking UI
http://172.16.1.123:8080/
3 部署skywalking的agent追踪java应用
3.1 修改agent配置文件并将agent目录打包
# ls -l
/home/skywalking-es7/agent/
#
egrep -v "^$|^#" /home/skywalking-es7/agent/config/agent.config
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
# agent注册到skywalking的服务名,这里不配置,采用变量注入的方式进行覆盖
agent.is_cache_enhanced_class
= ${SW_AGENT_CACHE_CLASS:true}
agent.class_cache_mode
= ${SW_AGENT_CLASS_CACHE_MODE:MEMORY}
# 上面两行表示打开skywalking代理与其他Java代理字节码进程的兼容性
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.30.51:11800}
# agent连接到skywalking的地址
logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api.log}
# agent默认日志文件存放在agent目录下的logs目录下
logging.level=${SW_LOGGING_LEVEL:INFO}
logging.dir=${SW_LOGGING_DIR:/home/liuchan/log/agent}
# 自定义日志家目录,默认为空字符串("
")
logging.max_history_files=${SW_LOGGING_MAX_HISTORY_FILES:5}
# agent历史文件个数限制,默认为-1,表示不限制,为防止agent日志爆盘,这里修改为5
plugin.mount=${SW_MOUNT_FOLDERS:plugins,activations}
# agent插件挂载的目录
# cd /home/skywalking-es7/
# tar -czf agent.tar.gz agent/
3.2 将打包的skywalking agent部署到jar应用上
1 部署agent
# tar -xzf
agent.tar.gz -C /home/liuchan/
# mkdir -p /home/liuchan/log/agent/
2 修改docker-compose.yml文件[只修改以java进程启动容器的部分]
# vim
/home/liuchan/compose/docker-compose.yml
(1) 挂载agent卷到容器
volumes:
-
/home/liuchan/agent:/home/liuchan/agent
(2) 修改java命令,在
-jar 之前加入如下参数
command:
-javaagent:/home/liuchan/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=<分组名称>::<容器名称> -Dskywalking.agent.instance_name=<容器名称>-${HOSTIP}
-Dskywalking.logging.file_name=<容器名称>-${HOSTIP}.log
3 重启docker-compose
# docker-compose
down
# docker-compose up -d
4 访问skywalking的UI
4.1 仪表板
http://192.168.30.51:8080/
仪表板提供服务、服务实例和端点的指标,我们需要了解一些指标术语。
吞吐量CPM # 每分钟调用次数
Apdex # 应用程序性能指数,满意”、“容忍”和“沮丧”分别对应1、0.5、0
响应时间百分比 # 包括p99、p95、p90、p75、p50
SLA # 代表成功率。对于HTTP,它表示200响应代码的速率。
服务、实例和仪表板选择器可以手动重新加载而不是重新加载整个页面。
4.2 拓扑图
http://192.168.30.51:8080/topology