Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
SkyWalking:是一款分布式追踪,分析,告警的工具,现在是Apache旗下开源项目,对云原生支持,目前增长势头强劲,社区活跃,中文文档没有语言障碍。
SkyWalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8S、Mesos)架构而设计,是观察性分析平台和应用性能管理系统。架构如图所示:
SkyWalking架构图
整个架构,分成上、下、左、右四部分:
上部分Agent:负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
下部分SkyWalking OAP:负责接收Agent发送的Tracing数据信息,然后进行分析(Analysis Core),存储到外部存储器(Storage),最终提供查询(Query)功能。
右部分Storage:Tracing数据存储。目前支持ES、MySQL、Sharding Sphere、TiDB、H2多种存储器。而我们目前采用的是ES,主要考虑是SkyWalking开发团队自己的生产环境采用ES为主。
左部分SkyWalking UI:负责提供控台,查看链路等等
准备一台centos7虚拟机
主机名 | 节点 |
---|---|
localhost | Skywalking节点 |
软件包(可自行在官网下载)
百度网盘链接:https://pan.baidu.com/s/1uMm-qzS1LIjXFVO3L-r2Mg?pwd=vb72
提取码:vb72
部署Elasticsearch服务
关闭防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
[root@localhost ~]# vi /etc/selinux/config
SELINUX=disabled
将elasticsearch-7.17.0-linux-x86_64.tar.gz软件包上传到localhost节点并解压到/opt目录,进入解压后的目录并创建data目录
[root@localhost ~]# tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz -C /opt
[root@localhost ~]# cd /opt/elasticsearch-7.17.0/
[root@localhost elasticsearch-7.17.0]# mkdir data
[root@localhost elasticsearch-7.17.0]# ls
bin data lib logs NOTICE.txt README.asciidoc
config jdk LICENSE.txt modules plugins
修改Elasticsearch配置,在文件最后添加如下几行内容,按“i”建进入编辑模式进行配置,按ESC键输入:wq保存退出
[root@localhost elasticsearch-7.17.0]# vi config/elasticsearch.yml
…
cluster.name: my-application
node.name: node-1
path.data: /opt/elasticsearch-7.17.0/data
path.logs: /opt/elasticsearch-7.17.0/logs
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
http.cors.enabl