Linux下安装 SkyWalking 分布式追踪系统--完全无代码入侵【落地】
背景:由于现系统拆分为了分布式系统,对于线上查看错误日志有点费劲
方案:部署搭建 SkyWalking的分布式追踪系统
一、SkyWalking简介
SkyWalking 介绍:
SkyWalking项目是由华为大牛吴晟开源的个人项目,目前已经加入Apache孵化器。SkyWalking项目的核心目标是针对微服务、Cloud Native、容器化架构提供应用性能监控 和 分布式调用链 追踪功能,目前链路追踪和监控应用支持的组件包括主流框架和容器,如dubbo、motan、spring boot、spring cloud等。
分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
SkyWalking 组成部分:
1.skywalking-collector:链路数据归集器,数据可以保存在 H2、ElasticSearch、mysql、tidb
2.skywalking-web:web的可视化管理后台,可以查看归集的数据
3.skywalking-agent:探针,用来 收集和推送数据 到归集器
SkyWalking 主要功能:
分布式追踪和上下文传输
应用、实例、服务性能指标分析
根源分析
应用拓扑分析
应用和服务依赖分析
慢服务检测
性能优化
二、部署前准备工作
1.关闭selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i 's/SELINUXTYPE=targeted/#&/' /etc/selinux/config
setenforce 0
2.安装需要用的工具
在线安装需要的工具,安装包安装不需要
yum -y install vim wget java
3.在线下载SkyWalking和elasticsearch
# cd /usr/local/src 这是我的安装目录,可以自定义
wget http://archive.apache.org/dist/skywalking/6.4.0/apache-skywalking-apm-6.4.0.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
注:SkyWalking 6.4.0目前只支持elasticsearch 6.x版本
4.关闭防火墙
1.查看防火墙状态
service iptables status 或者
systemctl status firewalld
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
2.查看防火墙是否开机启动
systemctl is-enabled firewalld
3.关闭防火墙
systemctl stop firewalld
systemctl stop firewalld.service
systemctl status firewalld
4.禁用防火墙(系统启动时不启动防火墙服务)
systemctl disable firewalld
systemctl disable firewalld.service
systemctl is-enabled firewalld
三、部署elasticsearch
1.解压
2.修改配置文件
vim /xxx/elasticsearch/config/elasticsearch.yml
cluster.name: CollectorDBCluster
//path.data: /xx/elasticsearch/data 默认配置
//path.logs: /xx/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
3.创建用户(es不能用root用户启动)
useradd es -p es
chown -R es:es /xx/elasticsearch
4.修改limit数量,否则启动es报错
vim /etc/security/limits.conf #添加以下内容
## 每个进程最大打开文件数
* soft nofile 65536
* hard nofile 131072
## 每个进程最大进程个数
* soft nproc 4096
* hard nproc 4096
vim /etc/sysctl.conf #添加以下内容
vm.max_map_count=655360
#执行该命令使配置生效
sysctl -p
#切换es用户,启动es服务
su - es
cd /usr/local/src/xxes安装目录/bin/elasticsearch &
测试是否安装成功
访问浏览器 ip:9200
或者Linux访问
表示安装es成功
四、部署skywarking
1.解压
2.修改配置文件
vim /opt/skywalking/config/application.yml
将h2内容注释掉,启用elasticsearch存储方案,使用elasticsearch存储数据(修改es服务器地址)。
3.启动
也是安装目录的bin目录下(root即可)
#启动命令,和启动tomcat一样
./startup.sh
4.验证是否安装成功
ip:8080
能访问代表安装成功
五、Java项目接入
skywalking支持很多项目,比如Java、.net、github、sample等,这里我只讲下Java项目的接入使用,其他项目大家可自行查看官方文档。
1.需要把skywarking安装目录下的agent包 复制到你指定项目服务器的自定义的目录下
2.启动脚本配置
##linux##--Tomcat配置探针--配置tomcat catclina.sh脚本
找到部署项目tomcat 放在catalina.sh第一行(第二行),service_name代表当前应用的名称、ip就是你部署的skywarking的机器ip
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/xxx你刚才指定的探针目录/agent/skywalking-agent.jar=agent.service_name=xxx,collector.backend_service=ip:11800";
export CATALINA_OPTS
3.重启tomcat项目,然后访问项目
下面是效果图: