赞
踩
早期的监控系统功能比较单一,主要以监控CPU、内存、网络、I/O等基础设置为主(cacti、nagios)
后来随着中间件技术的不断发展,监控系统也开始监控缓存、数据库、MQ等各种基础组件的性能(zabbix、prommethus)
现在微服务架构已经是一个很通用的系统架构,系统功能被模块化,再加上k8s与容器化的兴起及应用数量的爆炸式增长,各模块和服务之间的调用链路、响应时间、负载等越来越不好通过传统的工具进行监控和统计,此时APM(Application Performance Management)系统应运而生。
APM系统主要实现了以下功能:
目前常见的开源APM项目包括:
SkyWalking官网:https://skywalking.apache.org
Skywalking由国内开源爱好者吴晟开源并提交到Apache孵化器的开源项目,于2019年从Apache基金会孵化器毕业成为顶级项目,目前SkyWalking支持Java、.net、python、go等语言的探针,数据存储支持mysql、elasticsearch等。Skywalking根Pinpoint一样采用字节码注入的方式实现代码的无侵入,虽然探针采集数据粒度粗,但性能表现优秀,且对云原生支持,目前社区活跃,增长势头强劲。
SkyWalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器架构而设计。它是一款优秀的APM工具,包括了分布式链路追踪、性能指标分析和服务依赖分析等。
SkyWalking具有以下特点:
SkyWalking的架构如下图所示,其逻辑上主要由探针、平台后端、存储和用户界面4部分组成。
SkyingWalking的优势:
SkyWalking支持多种部署方式,包括二进制、docker容器运行以及在k8s集群中运行。下面是二进制的部署步骤,其他部署方式可以参考官网介绍:https://skywalking.apache.org/docs/main/v9.3.0/en/setup/backend/backend-setup/
另外部署的只是单机版,如果想要部署集群,可以参考官方文档:https://skywalking.apache.org/docs/main/v9.3.0/en/setup/backend/backend-cluster/
先部署后端存储Elasticsearch,从官网下载deb包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.6.2-amd64.deb
dpkg -i elasticsearch-8.6.2-amd64.deb
修改ES配置文件
root@es-node-01:~# vim /etc/elasticsearch/elasticsearch.yml #修改下面两个选项,其余可以保持默认
network.host: 192.168.122.27 #修改监听地址
xpack.security.enabled: false #关闭xpack安全设置
启动ES
systemctl daemon-reload
systemctl start elasticsearch.service
systemctl status elasticsearch.service
systemctl enable elasticsearch.service
访问ES端口测试
安装java环境,支持
mkdir /usr/local/java
tar xf jdk-8u131-linux-x64.tar.gz -C /usr/local/java/
vim /etc/profile #配置环境变量,添加下面几行
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
java -version
从官网下载SkyWalking安装包
wget https://dlcdn.apache.org/skywalking/9.3.0/apache-skywalking-apm-9.3.0.tar.gz
tar xf apache-skywalking-apm-9.3.0.tar.gz -C /usr/local/src/
修改配置文件
cd /usr/local/src/apache-skywalking-apm-bin/config
vim application.yml #修改以下两个配置,指定使用Elasticsearch存储数据
################################
132 storage:
133 selector: ${SW_STORAGE:elasticsearch} #选择elasticsearch作为后端存储
134 elasticsearch: #elasticsearch配置
135 namespace: ${SW_NAMESPACE:""}
136 clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.122.27:9200} #指定elasticsearch地址
启动skywalking服务
cd /usr/local/src/apache-skywalking-apm-bin/bin
启动服务之后,可以通过/usr/local/src/apache-skywalking-apm-bin/logs目录下的日志文件来查看启动过程中是否有报错
验证,访问SkyWalking UI界面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。