SkyWalking
SkyWalking 是针对分布式系统的 APM 系统,也被称为分布式追踪系统全自动探针监控,不需要修改应用程序代码。查看支持的中间件和组件库列表:https://github.com/apache/incubator-skywalking支持手动探针监控, 提供了支持 OpenTracing 标准的SDK。覆盖范围扩大到 OpenTracing-Java 支持的组件。查看Ope...
SkyWalking 是针对分布式系统的 APM 系统,也被称为分布式追踪系统
-
全自动探针监控,不需要修改应用程序代码。查看支持的中间件和组件库列表:https://github.com/apache/incubator-skywalking
-
支持手动探针监控, 提供了支持 OpenTracing 标准的SDK。覆盖范围扩大到 OpenTracing-Java 支持的组件。查看OpenTracing组件支持列表:https://github.com/opentracing-contrib/meta
-
自动监控和手动监控可以同时使用,使用手动监控弥补自动监控不支持的组件,甚至私有化组件。
-
纯 Java 后端分析程序,提供 RESTful 服务,可为其他语言探针提供分析能力。
-
高性能纯流式分析
下载JDK1.8
wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz #wget命令可能下载不了,自行想办法下载 |
解压JDK1.8
#解压到指定目录 tar -zxvf ./jdk-8u144-linux-x64.tar.gz -C /usr/local/ #最终结果/usr/local/jdk1.8.0_144 |
配置环境变量
#vim /etc/profile |
JAVA_HOME=/usr/local/jdk1.8.0_144 JRE_HOME=/usr/local/jdk1.8.0_144/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME:$JRE_HOME:$CLASSPATH |
安装Elasticsearch5.5.2
#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz |
解压安装包
#解压到指定目录 tar -zxvf ./elasticsearch-5.5.2.tar.gz -C /usr/local/ #最终结果/usr/local/elasticsearch-5.5.2 #改变权限 chown -R elk:elk /usr/local/elasticsearch-5.5.2/ |
编辑limits.conf配置文件, 添加类似如下内容:
vi /etc/security/limits.conf #添加如下内容: * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 |
修改90-nproc.conf配置文件
vi /etc/security/limits.d/90-nproc.conf #修改如下内容: * soft nproc 1024 #修改为 * soft nproc 2048 |
修改配置sysctl.conf
vi /etc/sysctl.conf #添加下面配置: vm.max_map_count=655360 #并执行命令: sysctl -p |
直接运行elasticsearch
#创建elasticsearch用户 useradd elk #切换用户 su elk #进入目录 cd /usr/local/elasticsearch-5.5.2 #运行 ./bin/elasticsearch -d |
下载skywalking
#wget http://www-eu.apache.org/dist/incubator/skywalking/5.0.0-beta2/apache-skywalking-apm-incubating-5.0.0-beta2.tar.gz |
解压skywalking
tar -xf apache-skywalking-apm-incubating-5.0.0-beta2.tar.gz mv apache-skywalking-apm-incubating skywalking |
修改配置文件,将以下Localhost修改成本机IP地址,如果elasticsearch是分开安装,修改成elasticsearch本机ip
vim /root/skywalking/config/application.yml naming: jetty: #OS real network IP(binding required), for agent to find collector cluster host: localhost port: 10800 contextPath: / cache: # guava: caffeine: remote: gRPC: # OS real network IP(binding required), for collector nodes communicate with each other in cluster. collectorN --(gRPC) --> collectorM host:localhost port: 11800 agent_gRPC: gRPC: #OS real network IP(binding required), for agent to uplink data(trace/metrics) to collector. agent--(gRPC)--> collector host: localhost port: 11800 # Set these two setting to open ssl #sslCertChainFile: $path #sslPrivateKeyFile: $path
# Set your own token to active auth #authentication: xxxxxx agent_jetty: jetty: # OS real network IP(binding required), for agent to uplink data(trace/metrics) to collector through HTTP. agent--(HTTP)--> collector # SkyWalking native Java/.Net/node.js agents don't use this. # Open this for other implementor. host: localhost port: 12800 contextPath: / analysis_register: default: analysis_jvm: default: analysis_segment_parser: default: bufferFilePath: ../buffer/ bufferOffsetMaxFileSize: 10M bufferSegmentMaxFileSize: 500M bufferFileCleanWhenRestart: true ui: jetty: # Stay in `localhost` if UI starts up in default mode. # Change it to OS real network IP(binding required), if deploy collector in different machine. host:localhost port: 12800 contextPath: / storage: elasticsearch: clusterName: CollectorDBCluster clusterTransportSniffer: true clusterNodes:localhost:9300 indexShardsNumber: 2 indexReplicasNumber: 0 highPerformanceMode: true |
修改web控制信息,将127.0.0.1修改成本地真实ip
vim skywalking/webapp/webapp.yml
server: port: 8080
collector: path: /graphql ribbon: ReadTimeout: 10000 listOfServers:127.0.0.1:10800
security: user: admin: password: admin |
启动skywalking
cd skywalking/bin #启动Collector、WebUI ./startup.sh |
SkyWalking监控界面URL: http://127.0.0.1:8080/#/monitor/dashboard
部署探针
拷贝skywalking-agent目录到需要监控的节点服务器上,探针包含整个目录,请不要改变目录结构
+-- skywalking-agent +-- activations apm-toolkit-log4j-1.x-activation.jar apm-toolkit-log4j-2.x-activation.jar apm-toolkit-logback-1.x-activation.jar ... +-- config agent.config +-- plugins apm-dubbo-plugin.jar apm-feign-default-http-9.x.jar apm-httpClient-4.x-plugin.jar ..... skywalking-agent.jar |
修改agent配置文件,将127.0.0.1修改成skywalking服务器ip地址
vim /usr/local/agent/config/agent.config
# 当前的应用编码,最终会显示在webui上。 # 建议一个应用的多个实例,使用有相同的application_code。请使用英文 agent.application_code=Your_ApplicationName
# 每三秒采样的Trace数量 # 默认为负数,代表在保证不超过内存Buffer区的前提下,采集所有的Trace # agent.sample_n_per_3_secs=-1
# 设置需要忽略的请求地址 # 默认配置如下 # agent.ignore_suffix=.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg
# 探针调试开关,如果设置为true,探针会将所有操作字节码的类输出到/debugging目录下 # skywalking团队可能在调试,需要此文件 # agent.is_open_debugging_class = true
# 对应Collector的config/application.yml配置文件中 agent_server/jetty/port 配置内容 # 例如: # 单节点配置:SERVERS="127.0.0.1:8080" # 集群配置:SERVERS="10.2.45.126:8080,10.2.45.127:7600" collector.servers=127.0.0.1:10800
# 日志文件名称前缀 logging.file_name=skywalking-agent.log
# 日志文件最大大小 # 如果超过此大小,则会生成新文件。 # 默认为300M logging.max_file_size=314572800
# 日志级别,默认为DEBUG。 logging.level=DEBUG
|
如果是容器用到tomcat话,添加catalina.sh如下配置
# vim /root/test/bin/catalina.sh CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/agent/skywalking-agent.jar -Dskywalking.agent.application_code=test" ; export CATALINA_OPTS |
如果一台服务器上跑多个tomcat实例, 只需修改-Dskywalking.agent.application_code=test(将这个值修改成应用名)
如果是jar包启动,添加 以下信息到启动脚本中
java -javaagent:/root/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.application_code=test
如果没有启动脚本,直接在命令行中启动
java -javaagent:/root/skywalking/agent/skywalking-agent.jar -Dserver.port=8084 -Dskywalking.agent.application_code=test -jar test.jar &
-Dserver.port 应用端口
-Dskywalking.agent.application_code 监控时显示的应用名称,如有多个应用,根据自行应用程序修改
test.jar jar包名称
监控画面
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)