SkyWalking部署(监控系统)

简介

SkyWalking 是一个开源的应用性能监控 (APM) 和可观测性平台,旨在帮助开发者、运维人员和架构师监控、诊断和优化微服务架构中的应用。SkyWalking 提供了一套完整的工具链,用于收集、分析和可视化应用的性能指标、追踪和日志数据。

SkyWalking 的主要特点

自动化的观测性:

  • 自动发现服务拓扑图。
  • 自动跟踪服务间的依赖关系。
  • 自动收集服务和应用的性能指标。

广泛的集成支持:

  • 支持多种编程语言,包括 Java、Go、.NET、Node.js 等。
  • 支持多种服务网格和容器编排平台,如 Kubernetes、Istio 等。
  • 支持多种数据库、缓存和消息队列系统。

灵活的部署模式:

  • 可以部署在本地环境中。
  • 支持云原生部署,如 Kubernetes。
  • 支持混合云和多云环境。

丰富的可视化功能:

  • 提供详细的性能指标图表和报告。
  • 动态的服务拓扑视图。
  • 分布式追踪视图。

强大的告警和通知系统:

  • 支持基于阈值的告警。
  • 可以集成到现有的告警系统中。
  • 支持多种通知渠道,如 Slack、Email 等。

低侵入性:

  • 通过插件和代理的方式收集数据,对应用性能影响极小。
  • 支持无侵入式采集,无需修改现有应用代码。

高度可扩展:

  • 支持水平扩展以处理大规模部署。
  • 可以通过插件机制扩展功能。

链路跟踪:

下载skywalking

https://skywalking.apache.org/downloads

Index of /dist/skywalking

这里选择推荐ES版本,这里系统的centos 7

ES7部署

Download Elasticsearch | Elastic

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz

解压

tar -xvf elasticsearch-7.13.2-linux-x86_64.tar.gz

1、配置

修改配置 vim /usr/local/elasticsearch-7.13.2/bin/elasticsearch

添加

export ES_JAVA_HOME=/usr/local/elasticsearch-7.13.2/jdk

export PATH=ES_JAVA_HOME/bin:PATH

  1. 新增用户

es不能用root执行,需要添加用户执行

useradd my-es

chown my-es:my-es -R /usr/local/elasticsearch-7.13.2

切换到my-es用户

su my-es

进入到目录:

cd /usr/local/elasticsearch-7.13.2/bin

3、启动

启动elasticsearch

./elasticsearch

4、配置文件

vim /usr/local/elasticsearch-7.13.2/config/elasticsearch.yml

修改日志

:可以修改存储数据的路径和日志,默认在elasticsearch根目录

path.data:

path.logs:

修改绑定ip

#默认只允许本机访问,修改为0.0.0.0后则可以远程访问

network.host: 0.0.0.0

初始化节点名称

cluster.name: my_elasticsearch

node.name: es-node0

cluster.initial_master_nodes: ["es-node0"]

修改端口号

http.port: 19200

设置账号密码(不添加默认不使用密码,添加之后可以设置登录账户密码)

xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true

启动账号密码

5、后台运行

./elasticsearch -d

6、关闭

ps -ef | grep elastic

找到pid kill掉就行

7、设置账户密码

重启elasticsearch服务

执行如下命令:

如果端口或者其他变化了,可以指定ip

export ELASTICSEARCH_URL=http://192.168.20.13:19200

./elasticsearch-setup-passwords interactive

  • elastic: 超级用户
  • kibana_system: Kibana 系统用户
  • apm_system: APM 服务器系统用户
  • beats_system: Beats 系统用户
  • logstash_system: Logstash 系统用户

这里全部把密码设置为:123456

8、后台管理

在网页端输入:http://192.168.20.13:19200 (这里选择自己的ip,或者127.0.0.1)

9、错误

max file descriptors [4096]问题

vm.max_map_count [65530] is too low问题

进入到root权限

vim /etc/sysctl.conf

添加

vm.max_map_count=262144

保存退出:

sysctl -p

vi /etc/security/limits.conf

添加

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

重启系统

Reboot

skywalking配置

1、配置

配置端口,默认是11800和12800

配置elasticsearch7

storage:

selector: ${SW_STORAGE:elasticsearch7}

elasticsearch7:

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:19200}

端口修改为19200 默认是9200

配置es的账号密码:

这里填写的elastic的账号密码

修改webui的端口8080 修改为12808

webapp/webapp.yml

2、启动

启动主程序

bin/oapService.sh

查询日志是否成功启动

logs/skywalking-oap-server.log

启动webui

bin/webappService.sh

查询日志是否启动

Logs/webapp-console.log

防火墙放开端口

firewall-cmd --add-port=12808/tcp --permanent

firewall-cmd --reload

访问web

http://192.168.20.13:12808/

Agent配置

1、Agent拷贝

把apache-skywalking-apm-bin-es7 下面的agent拷贝到应用的设备上面

我这边直接拷贝到我的开发工程下面

2、修改配置

agent\config\agent.config

新增

agent.service_name=${SW_AGENT_NAME:diandimall-product}

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.20.13:11800}

服务器启动时候需要做探针

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar

如下:

java -javaagent:./agent/skywalking-agent.jar -Dspring.profiles.active=dev -Xms512m -Xmx1024m -jar xxx-0.0.1-SNAPSHOT.jar

在ideal添加如下vm参数

-javaagent:F:\work\code\java\attendance\admin\agent\skywalking-agent.jar

-Dskywalking.agent.service_name=at-gateway

-Dskywalking.collector.backend_service=192.168.20.13:11800

注意这里选择java1.8 不然版本太高会报错

随便请求几次就会出现了

参考SkyWalking 极简入门 | Apache SkyWalking

skywalking安装部署_skywalking部署-CSDN博客

https://github.com/apache/skywalking/issues/7265

相关推荐
迷茫运维路22 分钟前
Jenkins声明式Pipeline流水线语法示例
运维·pipeline·jenkins·声明式
Zfox_39 分钟前
【Linux】进程信号全攻略(二)
linux·运维·c语言·c++
安於宿命44 分钟前
【Linux】简易版shell
linux·运维·服务器
追梦不止~1 小时前
Docker常用命令+详解
运维·docker·容器
黑龙江亿林等保1 小时前
深入探索哈尔滨二级等保下的负载均衡SLB及其核心算法
运维·算法·负载均衡
黄小耶@1 小时前
linux常见命令
linux·运维·服务器
叫我龙翔1 小时前
【计网】实现reactor反应堆模型 --- 框架搭建
linux·运维·网络
古驿幽情1 小时前
CentOS AppStream 8 手动更新 yum源
linux·运维·centos·yum
BillKu1 小时前
Linux(CentOS)安装 Nginx
linux·运维·nginx·centos
BillKu1 小时前
Linux(CentOS)yum update -y 事故
linux·运维·centos