部署skyWalking
以下安装所需要的安装包和示例配置文件
链接: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相关推荐
- K8S部署skywalking
文章目录 一.安装K8S集群 kubeadm部署K8s集群V1.19.0 二.部署skywalking `2.1.创建命名空间` `2.2.给节点打标签` `2.3.skywalking-oap.ym ...
- K8S 部署 skywalking
文章目录 部署 微服务接入 调用 oap 制作镜像 制作微服务的 deployment.yml 制作微服务的 Dockerflie 部署 官方文档:https://github.com/apache/ ...
- docker安装部署SkyWalking实战
环境信息 系统:CentOS7.6 安装docker 使用官方安装脚本自动安装 安装命令如下: curl -fsSL https://get.docker.com | bash -s docker - ...
- helm部署SkyWalking
克隆chart到本地 git clone https://github.com/apache/skywalking-kubernetes cd skywalking-kubernetes/chart ...
- skywalking单节点部署
skywalking单节点部署 skywalking服务部署 下载skywalking服务文件 下载地址:http://skywalking.apache.org/downloads/ 我使用的是Bi ...
- Spring Cloud Alibaba 高级特性 应用性能监控:通过 SkyWalking 实施链路追踪
上一讲我们掌握了基于 Sleuth+Zipkin 对微服务架构实施基于日志的链路追踪,通过 Sleuth 在微服务应用中附加链路数据,再通过 Zipkin 实现链路数据收集与可视化,从而保证开发与运维 ...
- Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控
在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的.小的模块或者重用已经有的模块来构建复杂的系统.随着模块的不断增多,一次请求可能会涉及到十几 ...
- SkyWalking服务应用
文章目录 SkyWalking服务应用 案例准备 案例实施 1.部署Elasticsearch服务 2.部署SkyWalking OAP服务 3.部署SkyWalking UI服务 4.搭建并启动应用 ...
- 服务调用追踪工具skywalking实践
skywalking简介 skywalking是一个开源的可观测平台,用于收集.分析.聚合和可视化来自服务和云原生基础设施的数据.skywalking提供了一种简单的方式来维护您的分布式系统的清晰视图 ...
最新文章
- 远程处理Remoting
- 旷视提Circle Loss,统一优化视角,革新深度特征学习范式 | CVPR 2020
- DeepMind推出分布式深度强化学习架构IMPALA,让一个Agent学会多种技能
- 支持向量机libsvm实战入门
- 【Python之路Day17】Python Web框架之 Django
- POJ 2083 递归画分形图
- SICC大会发布银行、保险用户报告——详解C2B下的服务创新
- 巨蟒python全栈开发-第10天 函数进阶
- 【英语学习】【医学】【化学】Chemistry: the Central Science (14e) 的目录
- 利用access创建数据字典_VBA数组与字典解决方案54讲:利用字典和数组提取数据并按行回填...
- php聊天室把数据存在缓存里,php聊天室信息存储的问题
- 说说Windows一键还原的备份文件夹
- 十年老码农,现场教你写简历!
- b站《史上最全unity3D教程》笔记1-04
- Ceph Recovery分析
- python获取用户输入中文,用python实现功能:用户输入英文或中文,程序即可打印出来对应的译文。...
- Nine-Patch点九切图法
- D. Fixed Point Guessing
- 【UOJ#228】 基础数据结构练习题
- java开发工程师报名费多少_java开发工程师薪水有多少