一、简介
skywalking支持dubbo,SpringCloud,SpringBoot集成,代码无侵入,通信方式采用GRPC,性能较好,实现方式是java探针,支持告警,支持JVM监控,支持全局调用统计等等,功能较完善。
skywalking功能比较丰富,报表统计,UI界面更加人性化
SkyWalking 优点是服务性能分析和链路追踪,但也有不足之处。采集方式上不足
Skywalking 监控 Java、Golang、Node、.NET 语言的链路都是采用了 SDK 或者 Agent 的方式将数据上报到 Skyalking 后端,不过都是采用 gRPC 的方式和后端交互,比如 Java 项目,SkyWalking Agent 采集到后端的 Java 日志后进行上报。而对于 Nginx 则需要写 Lua 脚本来和 SkyWalking AOP 服务通信,对于 MySQL 日志也需要单独写脚本来上报日志。
数据可视化的不足:
SkyWalking 对于链路的展示非常直观,但是对于日志的数据的展示探索能力很弱,而 Kibana 提供了丰富的可视化选型,如折线图、饼图等。
SkyWalking 对于日志的搜索和展示能力较弱,而 Kibana 对于搜索的方式非常丰富,而且支持高亮。
官网下载:https://skywalking.apache.org/downloads/
二、安装
本次安装版本:
服务端:apache-skywalking-apm-9.3.0.tar.gz
客户端:apache-skywalking-java-agent-9.2.0.tgz
elasticsearch: elasticsearch-8.15.0-linux-x86_64.tar.gz
2.1 环境准备
# 1.关闭 selinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config sed -i 's/SELINUXTYPE=targeted/#&/' /etc/selinux/config setenforce 0 #2.limits.conf修改 vim /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 * soft nproc 524288 * hard nproc 524288 # 3.修改内核参数,没有修改的话elasticsearch报错 vim /etc/sysctl.conf vm.max_map_count=262144 sysctp -p # 激活 #4.添加elasticsearch启动用户 useradd es
2.2 Elasticsearch安装
cd /usr/local/ tar -xzvf elasticsearch-8.15.0-linux-x86_64.tar.gz chown -R es.es elasticsearch-8.15.0 cd /usr/local/elasticsearch-8.15.0/config vim elasticsearch.yml cluster.name: Elasticsearch node.name: server_102 path.data: /usr/local/elasticsearch-8.15.0/data path.logs: /usr/local/elasticsearch-8.15.0/logs network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["server_102"]. #可以换成 IP xpack.security.enabled: false http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type # 启动 su - es cd /usr/local/elasticsearch-8.15.0/bin ./elasticsearch -d
2.3 Skywalking安装
2.3.1 skywalking服务端安装
# 采用elasticsearch作为持久化存储,修改SW_STORAGE 和elasticsearch IP cd /usr/local tar -xzvf apache-skywalking-apm-9.3.0.tar.gz cd apache-skywalking-apm-bin/config vim application.yml # 设置存储 storage: selector: ${SW_STORAGE:elasticsearch} elasticsearch: namespace: ${SW_NAMESPACE:""} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:10.1.1.102:9200} # 启动 ./startup.sh
UI服务的配置文件
vim apache-skywalking-apm-bin/webapp/application.yml # 访问页面端口 8080,可以修改 serverPort: ${SW_SERVER_PORT:-8080} # Comma seperated list of OAP addresses. oapServices: ${SW_OAP_ADDRESS:-http://localhost:12800}
页面访问:http://10.1.1.10:8080
2.3.2 skywalking客户端安装
cd /usr/local/ tar -xzvf apache-skywalking-java-agent-9.2.0.tgz vim skywalking-agent/config/agent.config # 配置链接 elasticsearch collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:10.1.1.102:11800}
三、apache-tomcat和 java包启动注册到 skywalking
cd /usr/local/apache-tomcat-8.5.37/bin vim catalina.sh #!/bin/sh CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=stage::tomcat -Dskywalking.collector.backend_service=10.1.1.10:11800" # 启动 tomcat ./startup.sh
java包程序启动
nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=gs -Dskywalking.collector.backend_service=10.1.1.10:11800 -jar -Dspring.profiles.active=stage /application/gs.jar # -javaagent:指定skywalking中的agent中的skywalking-agent.jar的路径 -Dskywalking.agent.service_name:指定在skywalking中的服务名称,一般是微服务的spring.application.name -Dskywalking.collector.backend_service:指定oap服务绑定的地址,如果是本地,由于oap服务默认的端口是11800,因此只需要配置为127.0.0.1:11800
http://10.1.1.10:8080