1、创建目录

mkdir /usr/local/skywalking

建议将虚拟机内存设置为3G并将CPU设置为2核,防止资

源不足。

2、将资源目录中的elasticsearch和skywalking安装包上传到虚拟机/usr/local/skywalking目录下

elasticsearch-6.4.0.tar.gz的安装包,skywalking对es版本号有一定的要求,最好使用6.3.2以上版本,如果是7.x版本需要额外进行配置。
apache-skywalking-6.5.0.tar.gz --skywalking的安装包

3、首先安装elasticsearch,将压缩包解压

tar -zxvf ./elasticsearch-6.4.0.tar.gz

修改linux系统的限制配置,将文件创建数修改为65536个。

1、修改系统中允许应用最多创建文件等的限制。linux默认来说,一般限制应用最多创建的文件时65535个。但是es至少需要65536的文件创建数的权限。
2、修改系统中允许用户启动的进程开启多少个线程。默认的linux限制root用户开启的进程可以开启任意数量的线程。其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为es至少需要4096的线程池预备。

vi /etc/security/limits.conf
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096

修改系统控制权限,elasticsearch需要开辟一个65536字节以上空间的虚拟内存。linux默认不允许在任何用户和应用程序直接开辟这么大的虚拟内存。

vi /etc/sysctl.conf
#新增如下内存在sysctl.conf文件中,当前用户拥有的内存权限大小
vm.max_map_count=262144
#让系统控制权限配置生效
sysctl -p

创建一个用户,用于elasticsearch启动。

ES在5.x版本以后,强制要求在linux中不能使用root用户启动ES进程。所以必须使用其他用户启动es进程才可以。

#创建用户
useradd es
#修改上述用户的密码
passwd es
#修改elasticsearch目录的拥有者
chown -R elasticsearch-6.4.0

用es用户启动elasticsearch

#切换用户
su es
#到elasticsearch的bin目录下
cd bin/
#后台启动
./elasticsearch -d

4、skywalking安装

  • 安装backend后端服务
  • 安装UI
    首先切回到root用户,切换到目录下,解压skywalking压缩包
#切换到root用户
su root
#切换到skywalking目录
cd /usr/local/skywalking
#解压压缩包
tar -zxvf apache-skywalking-6.5.0.tar.gz

修改skywalking存储的数据源配置

cd apache-skywalking-apm-bin
vi config/application.yml

在这里插入图片描述

5、命令启动springboot项目

java -javaagent:/usr/local/skywalking/agent/skywalking-agent.jar -Dserver.port=8082 -jar resource-check-system.jar &

使用jar包启动的项目如果需要继承skywalking,需要添加-javaagent参数,参数值为agent的jar包位置。
Dserver.port参数用于指定端口。防止与tomcat冲突。
末尾添加&后台运行模式启动springboot项目

6、配置覆盖
我们每次部署应用都需要复制一份agent,修改其中的服务名称,这样很麻烦。可以使用skywalking提供的配置覆盖功能通过启动命令动态指定服务名,这样agent只需要部署一份即可。skywalking支持的几种配置方式:
系统配置(System properties):
使用skywalking.+配置文件中的配置名作为系统配置项来进行覆盖。

  • 为什么需要添加前缀?
    agent的系统配置和环境与目标应用共享,所以加上前缀可以有效避免冲突。

  • 案例,通过如下进行agent.service_name的覆盖

-Dskywalking.agent.service_name=application_name

探针配置(Agent options):
add the properties after the agent path in JVMarguments

-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]
  • 案例,通过如下进行agent.service_name的覆盖
-javaagent:/path/to/skywalking-agent.jar=agent.service_name=application_name
  • 特殊字符,如果配置中包含分割父(,或者=),就必须使用引号包裹起来
-javaagent:/path/to/skywalking-agent.jar=agent.ignore_suffix='.jpg,.jpeg'

系统环境变量(system environment variables)

案例,由于agent.service_name配置项如下所示:

#The service name in UI
agent.service_name=${SW_AGNET_NAME:Your_ApplicationName}

可以在环境变量中设置SW_AGENT_NAME的值来指定服务名。

覆盖优先级
探针配置>系统配置>系统环境变量>配置文件中的值

7、过滤指定的端点

-javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=application_name -Dskywalking.trace.ignore_path=/path -jar application_name.jar &

这里添加Dskywalking.trace.ignore_path=/path参数是用来标识需要过滤哪些请求,支持ant path表达式:
/path/*,/path/**,/path/?

  • ? 匹配任何单字符
  • *匹配0或者任何数量的字符
  • **匹配0或者更多的目录

8、告警部署测试
首先需要修改告警规则配置文件,将webhook地址修改为:

webhooks:
	- http://127.0.0.1:8089/webhook

然后重启skywalking

  • 将skywalking_alarm.jar上传至/path/to/skywalking目录下。
  • 启动skywalking_alarm应用,等待启动成功。
java -javaagent:/path/to/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking_alarm -jar skywalking_alarm.jar
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐