skywalking日志上送和链路追踪

在写之前先记录一个小tip,skywalking不仅可以监控微服务的应用,对于老的服务,比如war包部署在tomcat的都是可以监控到的,但是需要修改插件,文中第三部分会提到,有使用到的可以参考。

官方文档连接Documentation | Apache SkyWalkinghttps://skywalking.apache.org/docs

搭建服务

1.下载skywalking安装包

Downloads | Apache SkyWalking

下载的时候需要注意,如果要使用服务日志上送功能,必须下载8.5之后的版本,8.5之前的不支持日志功能,控制台的那个service点不动。

2.目录讲解

可以简单看下目录讲解 因为后续使用会用到,比如命令行增加agent的时候会读取agent包同目录下的配置文件等。

3.设置配置文件 config/application.yml

这个配置文件主要修改持久化数据源的相关配置,我这里修改为mysql。

storage:
	# 修改存储引擎为mysql
	selector: ${SW_STORAGE:mysql}
	……
	mysql:
		properties:
			# 修改ip和数据库
			jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}
			# 修改用户名
            dataSource.user: ${SW_DATA_SOURCE_USER:root}
修改密码
			dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root}
			……

        skywalking支持的插拔式的数据源,有H2,mysql,elasticsearch等。

        文章开头提到的监控老服务的插件在apache-skywalking-apm-bin\agent\bootstrap-plugins  目录下,包名为apm-jdk-http-plugin-8.5.0,将此包赋值到plugins文件夹下在启动即可监控老服务,我这里struts服务请求都是可以监控的,原理其实就是链路打标是在请求中放到请求头中的,skywalking官方文档写了几种支持的请求方式,对于老的请求不能直接支持的,也提供了插件进行监控,所以进行上述操作之后即可正常监控老服务。

4.下载MySQL连接jar

        下载链接:mysql-connector-java-5.1.49.jar--对应mysql版本

        将jar包放在oap-libs目录下即可,如果没有连接jar包,会抛如下异常:日志文件路径在logs下

Failed to get driver instance for jdbcUrl=jdbc:mysql://localhost:3306/swtest

No suitable driver

5.启动服务

6.测试

 7.如果是jar包服务 启动命令增加 如下命令

 -javaagent:E:\BaiduNetdiskDownload\apache-skywalking-apm-bin\agent\skywalking-agent.jar -Dskywalking.agent.service_name=admin -Dskywalking.collector.backend_service=localhost:11800`

        需要注意的 是skywalking-agent.jar包所在的文件夹需要有对应的插件和配置文件等 ,可以直接将skywalking安装路径下的此文件夹复制过去,配置文件如下

        包括注册名称,skywalking地址,数据库连接等配置信息。

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# The agent namespace
# agent.namespace=${SW_AGENT_NAMESPACE:default-namespace}

# The service name in UI
agent.service_name=${SW_AGENT_NAME:payservice}

# The number of sampled traces per 3 seconds
# Negative or zero means off, by default
# agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1}

# Authentication active is based on backend setting, see application.yml for more details.
# agent.authentication = ${SW_AGENT_AUTHENTICATION:xxxx}

# The max amount of spans in a single segment.
# Through this config item, SkyWalking keep your application memory cost estimated.
# agent.span_limit_per_segment=${SW_AGENT_SPAN_LIMIT:150}

# Ignore the segments if their operation names end with these suffix.
# agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg}

# If true, SkyWalking agent will save all instrumented classes files in `/debugging` folder.
# SkyWalking team may ask for these files in order to resolve compatible problem.
# agent.is_open_debugging_class = ${SW_AGENT_OPEN_DEBUG:true}

# If true, SkyWalking agent will cache all instrumented classes files to memory or disk files (decided by class cache mode),
# allow other javaagent to enhance those classes that enhanced by SkyWalking agent.
# agent.is_cache_enhanced_class = ${SW_AGENT_CACHE_CLASS:false}

# The instrumented classes cache mode: MEMORY or FILE
# MEMORY: cache class bytes to memory, if instrumented classes is too many or too large, it may take up more memory
# FILE: cache class bytes in `/class-cache` folder, automatically clean up cached class files when the application exits
# agent.class_cache_mode = ${SW_AGENT_CLASS_CACHE_MODE:MEMORY}

# The operationName max length
# Notice, in the current practice, we don't recommend the length over 190.
# agent.operation_name_threshold=${SW_AGENT_OPERATION_NAME_THRESHOLD:150}

# If true, skywalking agent will enable profile when user create a new profile task. Otherwise disable profile.
# profile.active=${SW_AGENT_PROFILE_ACTIVE:true}

# Parallel monitor segment count
# profile.max_parallel=${SW_AGENT_PROFILE_MAX_PARALLEL:5}

# Max monitor segment time(minutes), if current segment monitor time out of limit, then stop it.
# profile.duration=${SW_AGENT_PROFILE_DURATION:10}

# Max dump thread stack depth
# profile.dump_max_stack_depth=${SW_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH:500}

# Snapshot transport to backend buffer size
# profile.snapshot_transport_buffer_size=${SW_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE:50}

# Backend service addresses.
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.121.117:11800}

# Logging file_name
logging.file_name=${SW_LOGGING_FILE_NAME:skywalking-api.log}

# Logging level
logging.level=${SW_LOGGING_LEVEL:INFO}

# Logging dir
# logging.dir=${SW_LOGGING_DIR:""}

# Logging max_file_size, default: 300 * 1024 * 1024 = 314572800
# logging.max_file_size=${SW_LOGGING_MAX_FILE_SIZE:314572800}

# The max history log files. When rollover happened, if log files exceed this number,
# then the oldest file will be delete. Negative or zero means off, by default.
# logging.max_history_files=${SW_LOGGING_MAX_HISTORY_FILES:-1}

# Listed exceptions would not be treated as an error. Because in some codes, the exception is being used as a way of controlling business flow.
# Besides, the annotation named IgnoredException in the trace toolkit is another way to configure ignored exceptions.
# statuscheck.ignored_exceptions=${SW_STATUSCHECK_IGNORED_EXCEPTIONS:}

# The max recursive depth when checking the exception traced by the agent. Typically, we don't recommend setting this more than 10, which could cause a performance issue. Negative value and 0 would be ignored, which means all exceptions would make the span tagged in error status.
# statuscheck.max_recursive_depth=${SW_STATUSCHECK_MAX_RECURSIVE_DEPTH:1}

# Mount the specific folders of the plugins. Plugins in mounted folders would work.
plugin.mount=${SW_MOUNT_FOLDERS:plugins,activations}
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:192.168.121.117}
plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}
# Exclude activated plugins
# plugin.exclude_plugins=${SW_EXCLUDE_PLUGINS:}

# mysql plugin configuration
# plugin.mysql.trace_sql_parameters=${SW_MYSQL_TRACE_SQL_PARAMETERS:false}

# Kafka producer configuration
# plugin.kafka.bootstrap_servers=${SW_KAFKA_BOOTSTRAP_SERVERS:localhost:9092}

# Match spring bean with regex expression for classname
# plugin.springannotation.classname_match_regex=${SW_SPRINGANNOTATION_CLASSNAME_MATCH_REGEX:}

8、tomcat配置监控

        在catalina.sh行首加入 

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/agent85/agent/skywalking-agent.jar"

        但是要记得这个skywalking-agent.jar包同目录下一定要有config配置, 可以直接将skywalking安装路径下的此文件夹复制过去。

9.样例展示

日志

拓扑

 链路

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值