基于Docker实现Skywalking安装

基于Docker实现Skywalking安装

1 安装分析

安装Skywalking可以采用H2存储数据或者ElasticSearch存储,我们这里采用ElasticSearch存储,采用OAP处理数据,并基于Skywalking UI展示数据,所以安装的服务有多个:

  • ElasticSearch7
  • 安装Skywalking-OAP
  • 安装Skywalking UI

2 ElasticSearch7安装

Skywalking数据存储方式有2种,分别为H2(内存)和elasticsearch,如果数据量比较大,建议使用后者,工作中也建议使用后者。

安装ElasticSearch可以安装ElasticSearch6或者ElasticSearch7,但我们安装的Skywalking版本为8.6,版本相对来说比较高,建议采用ElasticSearch7。

基于Docker命令安装ElasticSearch,代码如下:

docker run --name elasticsearch -p 9200:9200  -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms84m -Xmx512m" -d elasticsearch:7.12.1

如果学习过我们的ElasticSearch文章,就知道ElasticSearch安装了,并且也已经安装了的话就不需要再次安装。

安装好后,访问http://192.168.211.130:9200,效果如下:

如果此时出现ElasticSearch无法正常使用,此时可以调整下服务配置参数,让服务配置参数达到ElasticSearch要求。

elasticsearch占用系统资源比较大,我们需要修改下系统资源配置,这样才能很好的运行elasticsearch,修改虚拟机配置,vi /etc/security/limits.conf ,追加内容:

* soft nofile 65536
* hard nofile 65536

修改vi /etc/sysctl.conf,追加内容 :

vm.max_map_count=655360

让配置立即生效:

/sbin/sysctl -p

3 Skywalking OAP安装

采用Docker安装Skywalking-OAP需要注意版本选择,我们这里选择8.6.0-es7版本,主要因为我们的ElasticSearch版本是7.x,安装命令如下:

docker run \
--name skywalking-oap \
--restart always \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-e SW_STORAGE=elasticsearch7 \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.211.130:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:8.6.0-es7

命令参数说明:

-e SW_STORAGE=elasticsearch7:存储服务采用ElasticSearch7
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.211.130:9200:存储服务路径(IP+Port)

4 Skywalking UI安装

Skywalking UI是对Skywalking收集到的数据进行分析展示的控制台服务,所以需要指定Skywalking OAP服务地址,使用Docker安装命令如下:

docker run \
--name skywalking-ui \
--restart always \
-p 8081:8080 -d \
--privileged=true \
--link skywalking-oap:skywalking-oap \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=192.168.211.130:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:8.6.0

命令参数说明:

-p 8081:8080:Skywalking UI映射端口为8081
-e SW_OAP_ADDRESS=192.168.211.130:12800:指定Skywalking OAP服务地址

安装完成后,等待一会儿,让各个服务都启动起来,再访问http://192.168.211.130:8081,效果如下:

### 使用 Docker 安装 Apache SkyWalking 并配置 MySQL 8 存储 #### 自动化安装 Docker 为了确保环境具备运行容器的能力,可以通过官方推荐的方式快速安装 Docker。执行以下命令完成自动化部署: ```bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` 此方法能够简化跨平台的一致性问题并加速国内用户的下载速度[^1]。 #### 构建自定义镜像 如果需要定制化的功能或者特定版本的支持,则需创建专属的 Docker 镜像文件 `Dockerfile` 来满足需求。例如基于已有项目源码制作新映像时可采用如下指令: ```bash docker build -t docker_dome:V1.0.1 . ``` 上述操作会依据当前目录下的构建上下文生成指定标签名称的新镜像实例[^2]。 #### 下载与解压二进制包 对于不依赖容器技术的传统场景来说,直接获取官方发布的稳定发行版不失为一种高效途径之一。这里选取支持 Elasticsearch v7 的 Apache SkyWalking 版本号为 8.6.0 进行示范说明: ```bash wget https://archive.apache.org/dist/skywalking/8.6.0/apache-skywalking-apm-es7-8.6.0.tar.gz tar zxvf apache-skywalking-apm-es7-8.6.0.tar.gz mkdir /apps && mv apache-skywalking-apm-bin-es7 /apps/skywalking ``` 以上步骤完成了软件主体部分准备工作的同时还调整了目标路径以便后续管理维护更加便捷[^3]。 然而,在实际生产环境中往往还需要对接关系型数据库来增强数据持久性和查询性能等方面的优势。因此下面重点阐述如何切换至 MySQL 数据库引擎作为主要存储方案的具体实现细节。 --- #### 修改配置以适配 MySQL 后端 默认情况下,Apache SkyWalking 可能使用内存或 ES 等 NoSQL 类型的数据管理系统保存采集到的信息流记录。但当业务规模扩大后可能面临成本控制压力以及复杂报表统计分析的需求增长等情况,此时引入传统的关系型数据库就显得尤为重要了。 ##### 步骤一:准备 MySQL 实例 确认已存在可用状态良好的 MySQL Server (建议选用最新长期支持 LTS 版本),并通过 SQL 命令初始化必要的表结构资源对象。假设我们已经拥有了名为 `skywalking_db` 的专用模式空间及其关联账户权限设定完毕之后继续往下推进流程。 ##### 步骤二:编辑 application.yml 文件 进入 `/apps/skywalking/config/application.yml` 路径定位相关参数项位置修改成如下所示内容片段形式表示启用 OAP server 对接 mysql 功能模块开关选项开启状态: ```yaml storage: selector: ${SW_STORAGE:mysql} mysql: host: "${SW_MYSQL_HOST:localhost}" port: "${SW_MYSQL_PORT:3306}" user: "${SW_MYSQL_USER:root}" password: "${SW_MYSQL_PASSWORD:password}" database_name: "${SW_MYSQL_DB_NAME:skywalking}" ``` 此处需要注意替换变量值为自己真实有效的连接属性信息匹配对应字段含义描述准确无误即可正常工作运转起来[^4]。 最后重启服务验证整个链路畅通无阻即告成功! --- ### 总结 综上所述,通过组合运用多种工具和技术手段实现了从零开始搭建一套完整的分布式追踪解决方案全过程展示分享给大家参考学习借鉴之用。希望对你有所帮助解答疑惑之处有所启发引导作用发挥积极作用效果体现出来吧!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值