以下安装所需要的安装包和示例配置文件

链接:https://pan.baidu.com/s/1qqzqcrMYALZ-4J9qDVpdVA?pwd=6hkz
提取码:6hkz

skyWalking官网

安装jdk

#在 /usr/local/创建jdk目录
mkdir /usr/local/jdk
#上传jdk1.8的压缩包
#解压
cd /usr/local/jdk
tar -zxvf jdk-8u321-linux-x64.tar.gz
#删除压缩包
rm -rf jdk-8u321-linux-x64.tar.gz
#修改jdk文件夹名
mv jdk1.8.0_321 jdk1.8
#配置环境变量
vi /etc/profile
#进入编辑模式
按shift+i键,光标移至最后
#最后添加
export JAVA_HOME=/usr/local/jdk/jdk1.8 #修改成自己jdk的安装目录
export CLASSPATH="$JAVA_HOME/lib"
export PATH="$JAVA_HOME/bin:$PATH"
#退出编辑模式
按esc键
#保存并退出
:wq
#重新加载配置文件
source /etc/profile
#查看java环境 ,验证是否安装成功
java -version
#显示如下,则安装成功

遇到的问题

linux安装配置环境变量后,java -versiov提示无法执行二进制文件

原因:jdk版本不对

关闭linux防火墙

#临时关闭
systemctl stop firewalld.service
#禁止开机启动
systemctl disable firewalld

安装skywalking

启动步骤

01 下载skywalking的安装包

下载地址:选择自己所需的版本

#创建skywalking目录
mkdir /usr/local/skywalking
#上传sw压缩包到/usr/local/skywalking
#解压sw压缩包
cd /usr/local/skywalking/
tar -zxvf apache-skywalking-apm-es7-8.4.0.tar.gz
#修改webapp.yml配置文件
vi /usr/local/skywalking/apache-skywalking-apm-bin-es7/webapp/webapp.yml #修改端口8080为8666,防止端口号占用
#在sw解压包下启动skywalking,后台启动
cd /usr/local/skywalking/apache-skywalking-apm-bin-es7/bin
./startup.sh &

02 修改webapp.yml配置文件

03 后台启动skywalking

04 访问本地id:8666出现如下代表启动成功

异常处理

如访问不通,则通过jps命令查看当前启动进程

#查看当前启动进程
jps

必须有这俩个服务

比如缺少oap服务,则查看日志,寻找报错原因

cd /usr/local/skywalking/apache-skywalking-apm-bin-es7/logs
tail -f skywalking-oap-server.log

项目接入skywalking(探针)

将一个springboot项目打成jar包(agent-demo-1.0-SNAPSHOT.jar)上传到服务器上,如/usr/local/skyWalking/agentDemo目录下

测试项目主要有以下测试接口

#上传jar包
cd /usr/local/skywalking/
mkdir agentDemo
#编写启动脚本
vim start.sh

编写启动脚本start.sh

配置agent名字,一般一个服务一个名字

配置配置 Collector 地址,本机的不用改

指定agent的路径,export JAVA_AGENT=-javaagent:

指定要启动的jar包

start.sh

#skyWalking Agent 配置
export SW_AGENT_NAME=springboot-agentDemo # 配置 Agent 名字。一般来说,我们直接使用 Spring Boot 项目的 `spring.application.name` 。
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 # 配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=2000 # 配置链路的最大 Span 数量。一般情况下,不需要配置,默认为 300 。主要考虑,有些新上 SkyWalking Agent 的项目,代码可能比较糟糕。
export JAVA_AGENT=-javaagent:/usr/local/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar # SkyWalking Agent jar 地址。
​
# Jar 启动,配置你的jar包名
java -jar $JAVA_AGENT -jar agent-demo-1.0-SNAPSHOT.jar

图解

给启动脚本加启动权限

cd agentDemo
#给启动脚本加启动权限
chmod +x *.sh
#启动项目
./start.sh
#或者后台启动 ./start.sh &

发起请求测试,http://192.168.136.136:8100/index/get,在skywalking界面,点击刷新后可看到如下效果

修改sw存储的数据源配置(改为es)

注意skywalking和elasticsearch的版本搭配

安装单体es

#创建目录
mkdir /usr/local/es
#将es金额sw的安装包上传到该目录中
#解压es安装包
cd /usr/local/es
tar -zxvf./elasticsearch-7.13.4-linux-x86_64.tar.gz
#改名
mv elasticsearch-7.13.4 elasticsearch
#修改linux的限制配置
vi /etc/security/limits.conf
#末尾添加
root soft nofile 65535
root hard nofile 65535
#修改系统权限控制
vi /etc/sysctl.conf
#shift+i 进入编辑模式,尾部新增
vm.max_map_count=262144
#让系统控制权限配置生效
sysctl -p

修改yml配置文件

#修改elasticsearch.yml配置文件
cd /usr/local/es/elasticsearch/config
vi elasticsearch.yml

尾部添加信息

复制可能出错,建议整个文件复制,见资料

#集群名称,所有节点集群名一样,此名称需要在skywalking中配置
cluster.name: elasticsearch-space
#节点名称
node.name: node-00
#索引存储位置
path.data: /usr/local/es/elasticsearch/data
#日志位置
path.logs: /usr/local/es/elasticsearch/logs
#外部访问地址,可以设置成主机ip
network.host: 192.168.136.140
#外部http访问端口
http.port: 9200
#初始集群主节点,可以配置多个,从中选主一个作为主
cluster.initial_master_nodes: ["node-00"]
#跨域访问配置
http.cors.enabled: true
http.cors.allow-origin: "*"

退出保存

es5.0以上不能用root启动,所以创建一个新的用户es

#进入es解压后的文件中,
cd /usr/local/es/elasticsearch/
#创建一个用户,用于es启动
useradd es
#修改密码,复杂一些saiyou123
passwd es
#授权
chown -R es:es ../elasticsearch#切换用户   必须切换到es用户下启动,root不可以
su es
#到es的bin目录下
cd bin
#后台启动
./elasticsearch -d
#模拟访问
curl 127.0.0.1:9200

第一次启动可能会失败,原因是logs目录不存在,重新启动即可,忽略es启动时关于jdk版本的warning警告

Windowes访问地址 http://192.168.136.140:9200/

显示如下结果启动成功

查看es是否启动成功

#查看es是否启动成功
ps -ef | grep elastic

启动成功

未启动

排查问题

#查看启动的端口号
ss -tanl
#查看es的日志
tail -f logs/elasticsearch.log
#根据端口号查出进程id
netstat -nlp | grep 8080

修改skywaking配置文件

修改这几处

vi /usr/local/skywalking/apache-skywalking-apm-bin-es7/config/application.yml

重新启动skywalking

搭建es集群

搭建es集群

elasticsearch.yml

node.master: true
# 数据节点
node.data: true
#集群名称,所有节点集群名一样
cluster.name: saiyou_cluster
#节点名称
node.name: node-02
#索引存储位置
path.data: /usr/local/es/elasticsearch7.2/data
#日志位置
path.logs: /usr/local/es/elasticsearch7.2/logs
#外部访问地址,可以设置成主机ip
network.host: 192.168.153.131
#外部http访问端口
http.port: 9202
#节点之间通信ip,本机ip
network.publish_host: 192.168.153.131
#节点之间通信端口
transport.tcp.port: 9302
#集群中节点,默认时9300可以忽略,(三个节点相互发现)
discovery.seed_hosts: ["192.168.153.131:9301","192.168.153.131:9302","192.168.153.131:9303"]
#初始集群主节点,可以配置多个,从中选主一个作为主
cluster.initial_master_nodes: ["node-01","node-02","node-03"]
#跨域访问配置
http.cors.enabled: true
http.cors.allow-origin: "*"

Centos 7.4搭建es7.12.0+Skywalking7.8.5

使用SkyWalking监控nginx (以openresty为例)

安装openresty

openresty官网

参考文档地址1:openresty安装教程

参考文档地址2:Openresty基于CentOS7.6安装,测试

在CentOS系统中添加OpenResty仓库

yum install yum-utils -y
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
https://mirrors.aliyun.com/repo/Centos-7.repo

出现如下页面代表成功

如出现报错,可能你已经安装了docker等yum等相关的,我尝试了很多种解决方案,暂时无法解决,只能重装虚拟机

安装OpenResty

yum install openresty -y

这样就完成了基本的安装,默认的安装目录在/usr/local/openresty

直接进入其中的nginx/conf目录,修改 nginx.conf文件,加入以下一段:

cd /usr/local/opentresty/nginx/conf
vi nginx.conf
location /lua {default_type text/plain;content_by_lua 'ngx.say("hello,this is lua")';charset utf-8;}

保存。然后启动nginx

如无法访问,可能是防火墙未关闭

#关闭防火墙
systemctl stop firewalld.service

异常处理

linux下无法ping 域名linux下无法ping 域名_zyj*asdf的博客-CSDN博客_linux无法ping通域名

centos7修改镜像后提示 Could not resolve host: mirrors.aliyun.com; 未知的错误centos7修改镜像后提示 Could not resolve host: mirrors.aliyun.com; 未知的错误_wcuuchina的博客-CSDN博客

centos7修改镜像后提示 Could not resolve host: mirrors.aliyun.com; 未知的错误_wcuuchina的博客-CSDN博客

https://www.jianshu.com/p/be606d1a3aaf

使用SkyWalking监控nginx (以openresty为例)

下载SkyWalking Nginx LUA

地址:Downloads | Apache SkyWalking

下载后的文件是:skywalking-nginx-lua-0.6.0.tar.gz

解压缩skywalking-nginx-lua-0.6.0.tar.gz文件到nginx的conf目录下

nginx的conf目录以实际情况为准,解压后的文件夹是:skywalking-nginx-lua-0.6.0

#上传skywalking-nginx-lua-0.6.0.tar.gz到 /usr/local/openresty/nginx/conf/目录下
cd /usr/local/openresty/nginx/conf/
tar -zxvf skywalking-nginx-lua-0.6.0.tar.gz 

修改openresty中nginx的nginx.conf文件

资料中的做法

在解压的skywalking-nginx-lua-0.6.0/examples路径下有一个skywalking官方提供的nginx.conf配置文件,用这个文件替换安装openresty后的那个默认nginx.conf文件,然后再修改这个文件。

我们的做法(为了简单),用以下的内容直接替换nginx.conf中的,然后根据实际情况修改

# 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.# This nginx.conf is designed and written for local dev environments
# It will use the blocking startup mode and console logging
worker_processes  1;
daemon off;
error_log /dev/stdout debug;events {worker_connections 1024;
}
http {lua_package_path "/usr/local/openresty/nginx/conf/skywalking-nginx-lua-0.6.0/lib/?.lua;;";# Buffer represents the register inform and the queue of the finished segmentlua_shared_dict tracing_buffer 100m;# Init is the timer setter and keeper# Setup an infinite loop timer to do register and trace report.init_worker_by_lua_block {local metadata_buffer = ngx.shared.tracing_buffermetadata_buffer:set('serviceName', 'httpnginx')-- Instance means the number of Nginx deloyment, does not mean the worker instancesmetadata_buffer:set('serviceInstanceName', 'httpInstancenginx')-- type 'boolean', mark the entrySpan include host/domainmetadata_buffer:set('includeHostInEntrySpan', false)-- set randomseedrequire("skywalking.util").set_randomseed()require("skywalking.client"):startBackendTimer("http://127.0.0.1:12800")-- Any time you want to stop reporting metrics, call `destroyBackendTimer`-- require("skywalking.client"):destroyBackendTimer()-- If there is a bug of this `tablepool` implementation, we can-- disable it in this way-- require("skywalking.util").disable_tablepool()skywalking_tracer = require("skywalking.tracer")}server {listen 80;server_name  localhost;location /ingress { default_type text/html;rewrite_by_lua_block {skywalking_tracer:start("upstream service")}proxy_pass http://192.168.136.140:8100/index; body_filter_by_lua_block {if ngx.arg[2] thenskywalking_tracer:finish()end}log_by_lua_block {skywalking_tracer:prepareForReport()}}location /lua {default_type text/plain;content_by_lua 'ngx.say("hello,this is lua")';charset utf-8;}}    }

重点修改的地方

重新启动这几个服务

ps

测试的相关地址:

后端服务的正常请求接口:http://192.168.136.140:8100/index/get

通过nginx代理后端服务的正常请求接口http://192.168.136.140/ingress/get

skywalking的服务地址:http://192.168.136.140:8666/

es的服务地址:http://192.168.136.140:9200/

nginx(openresty)的健康检测地址:http://192.168.136.140/lua

通过nginx代理后端服务的异常请求接口http://192.168.136.140/ingress/ex

点击右上角的刷新后查看仪表盘和拓扑图

拓扑图

部署skyWalking相关推荐

  1. K8S部署skywalking

    文章目录 一.安装K8S集群 kubeadm部署K8s集群V1.19.0 二.部署skywalking `2.1.创建命名空间` `2.2.给节点打标签` `2.3.skywalking-oap.ym ...

  2. K8S 部署 skywalking

    文章目录 部署 微服务接入 调用 oap 制作镜像 制作微服务的 deployment.yml 制作微服务的 Dockerflie 部署 官方文档:https://github.com/apache/ ...

  3. docker安装部署SkyWalking实战

    环境信息 系统:CentOS7.6 安装docker 使用官方安装脚本自动安装 安装命令如下: curl -fsSL https://get.docker.com | bash -s docker - ...

  4. helm部署SkyWalking

    克隆chart到本地 git clone https://github.com/apache/skywalking-kubernetes cd skywalking-kubernetes/chart ...

  5. skywalking单节点部署

    skywalking单节点部署 skywalking服务部署 下载skywalking服务文件 下载地址:http://skywalking.apache.org/downloads/ 我使用的是Bi ...

  6. Spring Cloud Alibaba 高级特性 应用性能监控:通过 SkyWalking 实施链路追踪

    上一讲我们掌握了基于 Sleuth+Zipkin 对微服务架构实施基于日志的链路追踪,通过 Sleuth 在微服务应用中附加链路数据,再通过 Zipkin 实现链路数据收集与可视化,从而保证开发与运维 ...

  7. Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控

    在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的.小的模块或者重用已经有的模块来构建复杂的系统.随着模块的不断增多,一次请求可能会涉及到十几 ...

  8. SkyWalking服务应用

    文章目录 SkyWalking服务应用 案例准备 案例实施 1.部署Elasticsearch服务 2.部署SkyWalking OAP服务 3.部署SkyWalking UI服务 4.搭建并启动应用 ...

  9. 服务调用追踪工具skywalking实践

    skywalking简介 skywalking是一个开源的可观测平台,用于收集.分析.聚合和可视化来自服务和云原生基础设施的数据.skywalking提供了一种简单的方式来维护您的分布式系统的清晰视图 ...

最新文章

  1. 远程处理Remoting
  2. 旷视提Circle Loss,统一优化视角,革新深度特征学习范式 | CVPR 2020
  3. DeepMind推出分布式深度强化学习架构IMPALA,让一个Agent学会多种技能
  4. 支持向量机libsvm实战入门
  5. 【Python之路Day17】Python Web框架之 Django
  6. POJ 2083 递归画分形图
  7. SICC大会发布银行、保险用户报告——详解C2B下的服务创新
  8. 巨蟒python全栈开发-第10天 函数进阶
  9. 【英语学习】【医学】【化学】Chemistry: the Central Science (14e) 的目录
  10. 利用access创建数据字典_VBA数组与字典解决方案54讲:利用字典和数组提取数据并按行回填...
  11. php聊天室把数据存在缓存里,php聊天室信息存储的问题
  12. 说说Windows一键还原的备份文件夹
  13. 十年老码农,现场教你写简历!
  14. b站《史上最全unity3D教程》笔记1-04
  15. Ceph Recovery分析
  16. python获取用户输入中文,用python实现功能:用户输入英文或中文,程序即可打印出来对应的译文。...
  17. Nine-Patch点九切图法
  18. D. Fixed Point Guessing
  19. 【UOJ#228】 基础数据结构练习题
  20. java开发工程师报名费多少_java开发工程师薪水有多少

热门文章

  1. oracle 整理磁盘碎片
  2. Me and My Girlfriend:1
  3. 学习博客:【JavaScript】内部对象
  4. Navicat for MySQL 安装以及初始创建连接,新建数据表
  5. MTD系列 - 关于linux MTD的一些理解
  6. STM32自定义USB设备开发详细流程讲解及全套资料源码下载(基于libusb)
  7. 台式电脑主机与屏幕的连接线
  8. Unity 实现贴花效果的制作教程
  9. COVID-19 paper
  10. python用一维数组存储学号和成绩_用一维数组存储学号和成绩,然后,按成绩排序输出...