skywalking环境搭建及使用
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以上版本,如
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
更多推荐
所有评论(0)