skywalking监控mysql_使用skywalking做分布式系统链路监控

版本:skywalking:6.0.0-GA

elasticsearch:6.5.4

rocketbot:最新(master分支)2019.04.12

skywalking 可以使用 H2、elasticsearch、MySql做为数据存储,推荐使用 elasticsearch

网上有相关的 docker-compose (参考),但是只有 5.0.0 版本的

安装 elasticsearch

本次安装的版本:6.5.4(单机部署),使用 docker 安装

skywalking 6.0.0-GA 支持 6.x 版本以上 elasticsearch(用过 5.x 版本,安装失败,未使用 7.x 版本)1

2docker pull elasticsearch:6.5.4

docker run -p 9200:9200 -p 9300:9300 -v esdata:/usr/share/elasticsearch/data -d --name es 93109ce1d590

docker images:1elasticsearch 6.5.4 93109ce1d590 3 months ago 774MB

设置阿里镜像,不然很慢

安装 skywalking

skywalking 使用本地单机方式安装

下载

传至服务器并解压:1tar -zxvf apache-skywalking-apm-incubating-6.0.0-GA.tar.gz

配置

配置 ./config/application.yml

设置地址信息和TTL信息:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17core:

default:

restHost: 0.0.0.0

restPort: 12800

restContextPath: /

gRPCHost: 192.168.173.113

gRPCPort: 11800

downsampling:

- Hour

- Day

- Month

recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:90} # Unit is minute

minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90} # Unit is minute

hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36} # Unit is hour

dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45} # Unit is day

monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18} # Unit is month

使用 elasticsearch 做为 storage,注释掉默认的 H2 配置1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19storage:

# h2:

# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}

# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}

# user: ${SW_STORAGE_H2_USER:sa}

elasticsearch:

# nameSpace: ${SW_NAMESPACE:""}

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}

indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}

indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}

# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html

# Execute the bulk every 2000 requests

bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000}

# flush the bulk every 20mb

bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20}

# flush the bulk every 10 seconds whatever the number of requests

flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10}

# the number of concurrent requests

concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}

相关告警规则设置:./config/alarm-settings.yml

启动

在 ./bin 目录下,有相关的启动脚本,主要的是:startup.sh 启动 server 和 UI

oapService.sh 单独启动 server

webappService.sh 单独启动UI

Agent

将 /agent 目录 copy 至需要监控服务的服务器,目录结构:activations

config:配置

logs:日志

optional-plugins:可选插件

plugins:启用的插件

skywalking-agent.jar:执行jar文件

配置

配置文件:./config/agent.config1

2

3

4

5

6# 配置应用的名称 The service name in UI

agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}

# 配置server collector地址

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

# 日志级别

logging.level=${SW_LOGGING_LEVEL:DEBUG}

启动

这里使用的是用 jar 启动的方式(tomcat war启动的方式见官方文档)

在 java -jar 中增加 skywalking agent 参数(必须在 -jar 前面):1java -javaagent:/home/wl/skywalking-agent/skywalking-agent.jar -DSW_AGENT_NAME=xxx -jar xxx.jar

安装 Rocketbot

由于 skywalking 自带的UI不是特别友好,这里选择使用 Rocketbot

这里使用的是 docker 安装的方式,按照 GitHub 的教程安装即可(此次安装由于 Rocketbot 的 shell 脚本问题,搞的久了点)

按照步骤:1

2

3

4npm install

npm run build

docker build -t rocketbot .

docker run -p 8080:80 -d -e SKYWALKING_URL=192.168.173.113:12800 rocketbot

注意:在 docker run 的时候,由于 rockerbot 容器中没有 skywalking,指定的 SKYWALKING_URL 必须是ip地址

相关参考

你可能感兴趣的:(skywalking监控mysql_使用skywalking做分布式系统链路监控)