部署单节点es
root@sykwalking-es:~# cat /etc/security/limits.conf
root soft core unlimited
root hard core unlimited
root soft nproc 1000000
root hard nproc 1000000
root soft nofile 1000000
root hard nofile 1000000
root soft memlock 32000
root hard memlock 32000
root soft msgqueue 8192000
root hard msgqueue 8192000
* soft core unlimited
* hard core unlimited
* soft nproc 1000000
* hard nproc 1000000
* soft nofile 1000000
* hard nofile 1000000
* soft memlock 32000
* hard memlock 32000
* soft msgqueue 8192000
* hard msgqueue 8192000
root@sykwalking-es:~# cat /etc/sysctl.conf
net.ipv4.ip_forward = 1
vm.max_map_count=262144
root@sykwalking-es:~# dpkg -i elasticsearch-8.5.1-amd64.deb
root@sykwalking-es:~# grep -v "#" /etc/elasticsearch/elasticsearch.yml | grep -v "^$"
cluster.name: skywalking-cluster
node.name: node1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["10.4.7.132",]
cluster.initial_master_nodes: ["10.4.7.132",]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: false
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
http.host: 0.0.0.0
root@sykwalking-es:~# systemctl restart elasticsearch.service
部署sykwalking,jdk8-17
这里使用jdk11
root@sykwalking-server:~# mkdir /apps/
root@sykwalking-server:/apps# tar xf apache-skywalking-apm-9.3.0.tar.gz
root@sykwalking-server:/apps# ln -sv /apps/apache-skywalking-apm-bin /apps/skywalking
root@sykwalking-server:/apps# vim /apps/skywalking/config/application.yml
132 storage:
133 selector: ${SW_STORAGE:elasticsearch}
134 elasticsearch:
135 namespace: ${SW_NAMESPACE:""}
136 clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:10.4.7.132:9200}
root@sykwalking-server:/apps# vi /etc/systemd/system/skywalking.service
[Unit]
Description=Apache Skywalking
After=network.target
[Service]
Type=oneshot
User=root
WorkingDirectory=/apps/skywalking/bin/
ExecStart=/bin/bash /apps/skywalking/bin/startup.sh
RemainAfterExit=yes
RestartSec=5
[Install]
WantedBy=multi-user.target
root@sykwalking-server:/apps# systemctl start skywalking.service
root@sykwalking-server:/apps# systemctl status skywalking.service
● skywalking.service - Apache Skywalking
Loaded: loaded (/etc/systemd/system/skywalking.service; disabled; vendor preset: enabled)
Active: active (exited) since Sun 2023-01-29 08:15:29 UTC; 8s ago
Process: 2733 ExecStart=/bin/bash /apps/skywalking/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 2733 (code=exited, status=0/SUCCESS)
Tasks: 20 (limit: 4534)
Memory: 392.5M
CPU: 19.283s
CGroup: /system.slice/skywalking.service
└─2739 java -Xms256M -Xmx512M -Doap.logDir=/apps/skywalking/logs -classpath /apps/skywalking/oap-libs/zstd-jni-1.4.9-1.jar:/apps/skywalking/>
Jan 29 08:15:27 sykwalking-server systemd[1]: Starting Apache Skywalking...
Jan 29 08:15:28 sykwalking-server bash[2735]: SkyWalking OAP started successfully!
Jan 29 08:15:29 sykwalking-server bash[2759]: SkyWalking Web Application started successfully!
Jan 29 08:15:29 sykwalking-server systemd[1]: Finished Apache Skywalking.
查看日志
root@sykwalking-server:/apps/skywalking# tail -f logs/*.log
![]()
http://10.4.7.131:8080/general
![]()
查看es数据
![]()
root@skywalking-agent:~# mkdir /data
root@skywalking-agent:/data# tar xf apache-skywalking-java-agent-8.13.0.tgz
root@skywalking-agent:/data/skywalking-agent#
root@skywalking-agent:/data/skywalking-agent# vim config/agent.config
19 # The group name is optional only.
20 agent.service_name=${SW_AGENT_NAME:magedu-halo}
22 # The agent namespace
23 agent.namespace=${SW_AGENT_NAMESPACE:magedu} #不写是默认
100 # Backend service addresses. #skywalking服务器地址 可以写域名 变量
101 collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:10.4.7.131:11800}
root@skywalking-agent:/data/skywalking-agent# mkdir /apps/ && cd /apps‘
SkyWalking-java博客追踪案例:
安装要求:
https://docs.halo.run/getting-started/prepare
历史版本
https://download.halo.run/
root@skywalking-agent:/apps# java --version
java 11.0.17 2022-10-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.17+10-LTS-269)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.17+10-LTS-269, mixed mode)
root@skywalking-agent:/apps# wget https://dl.halo.run/release/halo-1.6.1.jar
root@skywalking-agent:/apps# java -javaagent:/data/skywalking-agent/skywalking-agent.jar -jar /apps/halo-1.6.1.jar
访问
![]()
![]()
![]()
skywalking web界面介绍:
skywalking仪表盘简介:
普通服务-->服务
Service:服务列表,服务(Service)-表示对请求提供相同行为的一系列或一组工作负载(服务名称),在使用Agent或SDK的时候,可以自定义服务
的名字,如果不定义的话,SkyWalking将会使用你在平台(比如 Istio)上定义的名字。
service names:服务名称 Load (calls / min):每分钟访问次数 Success Rate (%):成功率 Latency (ms):验延迟时间 Apdex :应用性能指数
Topology:架构图
Trace:跟踪信息
Log:日志
skywalking web界面介绍:
Apdex简介:
Apdex全称是(Application Performance Index,应用性能指数),是由Apdex联盟开放的用于评估应用性能的标准,Apdex 联盟起源于2004年,Apdex
标准从用户的角度出发,提供了一个统一的测量和报告用户体验的方法,将其量化为范围为0-1的满意度评价,把最终用户的体验和应用性能作为一个完
整的指标进行统一度量. 在网络中运行的任何一个应用(Web服务),它的响应时间决定了用户的满意程度,用户等待所有交互完成时间的长短直接影响了用户对应用的满意程度,
这才是对用户有真正意义的“响应时间”,Apdex把完成这样一个任务所用的时间长短称为应用的“响应性”。
Apdex 定义了应用响应时间的最优门槛为T,另外根据应用响应时间结合T定义了三种不同的性能表现:
Satisfied(满意)-应用响应时间小于或等于Apdex阈值,比如Apdex阈值为1s,则一个耗时0.6s或者1s的响应结果则可以认为是满意的。
Tolerating(可容忍)-应用响应时间大于Apdex阈值,但同时小于或等于4倍的Apdex阈值,假设应用设定的Apdex阈值为1s,则4*1=4s为应用响应时间的容忍上限。
Frustrated(烦躁期)-应用响应时间大于4倍的Apdex阈值
skywalking web界面介绍:
skywalking仪表盘简介:
普通服务-->服务--> halo|magedu|-->Overview(服务概览)
Service Apdex(数字):当前服务的评分
Service Load (calls / min) 数字: 分钟请求数
Service Avg Response Times(ms):平均响应延时,单位ms
Service Apdex(折线图):一段时间内Apdex评分
Service Response Time Percentile (ms)折线图:服务响应时间百分比
Service Load (calls / min) 折线图: 分钟请求数
Success Rate (%)折线图:分钟请求成功百分比
Message Queue Consuming Count(折线图):消息队列消耗计数
Message Queue Avg Consuming Latency (ms)折线图:消息队列平均消耗延迟(毫秒)
Service Instances Load (calls / min):节点请求次数
Slow Service Instance (ms):每个服务实例(物理机、云主机、pod)的最大延时
Service Instance Success Rate (%):每个服务实例的请求成功率
Endpoint Load in Current Service (calls / min):每个端点(URL)的请求次数
Slow Endpoints in Current Service (ms):当前端点(URL)的最慢响应时间
Success Rate in Current Service (%):当前服务成功率(%):
Successful Rate(数字):请求成功率
skywalking web界面介绍:
skywalking仪表盘简介:
普通服务-->服务--> halo|magedu|-->Instance-->选择实例-->Overview(实例概览信息):
Service Instance Load (calls / min):当前实例的每分钟请求数。
Service Instance Success Rate (%):当前实例的请求成功率。
Service Instance Latency (ms):当前实例的响应延时。
Database Connection Pool:数据库连接池信息
Thread Pool:线程池信息
skywalking web界面介绍:
skywalking仪表盘简介:
普通服务-->服务--> halo|magedu|-->Endpoint(端点信息):
Endpoints: URL
Load (calls / min):平均请求次数(默认时间范围半小时),比如半小时内总请求次数6次,6%30=0.20
Success Rate (%):平均成功率(默认时间范围半小时)
Latency (ms):平均延迟时间(默认时间范围半小时)
skywalking web界面介绍:
skywalking仪表盘简介:
普通服务-->服务--> halo|magedu|-->Instance-->示例-->JVM(实例JVM信息):
JVM CPU (%):jvm占用CPU的百分比。
JVM Memory (MB):JVM内存占用大小,单位m,包括堆内存,与堆外内存(直接内存)。
JVM GC Time (ms):JVM垃圾回收时间,包含YGC和OGC。
JVM GC Count:JVM垃圾回收次数,包含YGC和OGC
JVM Thread Count:JVM线程计数统计
JVM Thread State Count:JVM线程状态计
JVM Class Count:JVM类计数
Java服务案例-tomcat运行Jenkins实现链路跟踪:
skywalking web界面介绍:
skywalking仪表盘简介:
普通服务-->服务--> halo|magedu|-->Instance-->示例-->.NET(.NET信息):
普通服务-->服务--> halo|magedu|-->Instance-->示例-->Spring Sleuth(Spring信息):
普通服务-->服务--> halo|magedu|-->Instance-->示例-->Golang(Golang信息):
普通服务-->服务--> halo|magedu|-->Instance-->示例-->PVM( Python Virtual Machine (PVM) metrics信息):
Java服务案例-tomcat运行Jenkins实现链路跟踪:
root@skywalking-agent:/apps# tar xf apache-tomcat-8.5.84.tar.gz
root@skywalking-agent:/apps/apache-tomcat-8.5.84/webapps# vim /data/skywalking-agent/config/agent.config
20 agent.service_name=${SW_AGENT_NAME:magedu-jenkins}
root@skywalking-agent:/apps/apache-tomcat-8.5.84/webapps# vim /apps/apache-tomcat-8.5.84/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/data/skywalking-agent/skywalking-agent.jar"; export CATALINA_OPTS
root@skywalking-agent:/apps# /apps/apache-tomcat-8.5.84/bin/catalina.sh run
skywalking-dubbo微服务实现链路跟踪:
部署注册中心
root@skywalking-zk:~# apt install openjdk-8-jdk
root@skywalking-zk:/apps# tar xf apache-zookeeper-3.7.1-bin.tar.gz
root@skywalking-zk:/apps# ln -sv apache-zookeeper-3.7.1-bin /apps/zookeeper
root@skywalking-zk:/apps/zookeeper/conf# cp zoo_sample.cfg zoo.cfg
root@skywalking-zk:/apps/zookeeper/bin# ./zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /apps/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
root@skywalking-zk:/apps/zookeeper/bin# ./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /apps/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone
部署微服务
部署provider
root@skywalking-node:~# apt install openjdk-8-jdk
root@skywalking-node:~# mkdir /data
root@skywalking-agent:/data# scp apache-skywalking-java-agent-8.13.0.tgz 10.4.7.135:/data
root@skywalking-node:/data# tar xf apache-skywalking-java-agent-8.13.0.tgz
root@skywalking-node:/data/skywalking-agent/config# vi agent.config
19 # The group name is optional only.
20 agent.service_name=${SW_AGENT_NAME:magedu-dubbo-server1}
22 # The agent namespace
23 agent.namespace=${SW_AGENT_NAMESPACE:magedu2}
100 # Backend service addresses.
101 collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:sykwalking-server.example.com:11800}
添加主机名解析,dubbo里面的zookeeper地址写在了源代码中,域名变量为ZK_SERVER1,sykwalking也可以为agent设置环境变量:
root@skywalking-node:~# vi /etc/profile
export ZK_SERVER1=10.4.7.134
root@skywalking-node:~# source /etc/profile
测试环境变量
root@skywalking-node:~# echo ${ZK_SERVER1}
10.4.7.134
root@skywalking-node:~# telnet ${ZK_SERVER1} 2181
Trying 10.4.7.134...
Connected to 10.4.7.134.
Escape character is '^]'.
^]
telnet> q
Connection closed.
root@skywalking-node:~# mkdir -pv /apps/dubbo/provider
root@skywalking-node:~# cd /apps/dubbo/provider
root@skywalking-node:/apps/dubbo/provider# ls /apps/dubbo/provider/dubbo-server.jar
/apps/dubbo/provider/dubbo-server.jar
root@skywalking-node:/apps/dubbo/provider# java -javaagent:/data/skywalking-agent/skywalking-agent.jar -jar /apps/dubbo/provider/dubbo-server.jar
部署consumer
root@skywalking-node-1:~# apt install openjdk-8-jdk -y
root@skywalking-node-1:~# mkdir /data && cd /data
root@skywalking-node-1:/data# tar xf apache-skywalking-java-agent-8.13.0.tgz
root@skywalking-node-1:/data/skywalking-agent# vim config/agent.config
# The group name is optional only.
agent.service_name=${SW_AGENT_NAME:dubbo-consumer1}
# The agent namespace
agent.namespace=${SW_AGENT_NAMESPACE:magedu2}
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:${SW_SERVER}:11800}
root@skywalking-node-1:/data/skywalking-agent# vi /etc/profile
export SW_SERVER="10.4.7.131"
export ZK_SERVER1="10.4.7.134"
root@skywalking-node-1:/data/skywalking-agent# source /etc/profile
root@skywalking-node-1:/data/skywalking-agent# echo $SW_SERVER
10.4.7.131
root@skywalking-node-1:/data/skywalking-agent# echo $ZK_SERVER1
10.4.7.134
root@skywalking-node-1:/data/skywalking-agent# mkdir -pv /apps/dubbo/consumer
root@skywalking-node-1:/apps/dubbo/consumer# java -javaagent:/data/skywalking-agent/skywalking-agent.jar -jar /apps/dubbo/consumer/dubbo-client.jar
http://10.4.7.139:8080/hello?name=awen
![]()
![]()
![]()
root@skywalking-zk:/apps# tar xf apache-tomcat-8.5.84.tar.gz
root@skywalking-zk:/apps/apache-tomcat-8.5.84/webapps# cp /root/dubboadmin.war .
root@skywalking-zk:/apps/apache-tomcat-8.5.84/webapps# vim dubboadmin/WEB-INF/dubbo.properties
dubbo.registry.address=zookeeper://10.4.7.134:2181
root@skywalking-zk:/apps/apache-tomcat-8.5.84/webapps# /apps/apache-tomcat-8.5.84/bin/catalina.sh run
![]()