安装及部署 SkyWalking: 6.0.0-alpha
Apache Skywalking(Incubator)共提供两种部署模式:单节点模式和集群模式,以下为单节点
模式部署步骤
依赖第三方组件
JDK:8+
ElasticSearch: 6.5.0
部署步骤
1.为了保存监控信息,部署 ElasticSearch
下载。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz
# 修改配置
vim elasticsearch-6.5.4/config/elasticsearch.yml
network.host: 0.0.0.0
vi /etc/sysctl.conf
vm.max_map_count=655360
# 并执行生效命令:
sysctl -p
/etc/security/limits.conf
vi
# 添加如下,必须重启系统才能生效。
soft nofile 65536
soft nproc 2048
hard nofile 131072
hard nproc 4096
vi /etc/security/limits.conf
# 添加下面两条
*
*
hard
soft
nofile
nofile
65536
65536
2.启动 Elasticsearch
切换至非 root 用户
cd elasticsearch-6.5.4/bin
./elasticsearch -d #后台启动
打开 lcoalhost:9200 有 json 对象返回表示启动正常
3.下载 Apache Skywalking Collector
http://skywalking.apache.org/downloads/
tar -zxvf apache-skywalking-apm-incubating-6.0.0-GA.tar.gz
4.修改 Skywalking collector 配置
主要将储存方式由 h2 修改为 elasticsearch:
目录:config/application.yml
# 目录名重命名为 skywalking
mv apache-skywalking-apm-incubating-6.0.0/ skywalking/
vim skywalking/config/application.yml
# 把 H2 包含的行注释
storage:
# h2:
#
#
#
driver: org.h2.jdbcx.JdbcDataSource
url: jdbc:h2:mem:skywalking-oap-db
user: sa
elasticsearch:
clusterName: app
clusterNodes: localhost:9200
indexShardsNumber: 2
indexReplicasNumber: 0
# Batch process setting, refer to
https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: 2000 # Execute the bulk every 2000 requests
bulkSize: 20 # flush the bulk every 20mb
flushInterval: 10 # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: 2 # the number of concurrent requests
# Set a timeout on metric data. After the timeout has expired, the metric data will
automatically be deleted.
traceDataTTL: 90 # Unit is minute
minuteMetricDataTTL: 90 # Unit is minute
hourMetricDataTTL: 36 # Unit is hour
dayMetricDataTTL: 45 # Unit is day
monthMetricDataTTL: 18 # Unit is month
并设置 cluster.name 设置成 CollectorDBCluster。此名称需要和 collector 配置文件一致。
cluster.name: app
node.max_local_storage_nodes: 3
network.host: 0.0.0.0
http.port: 9200
5.解压并启动 Skywalking Collector。
确保 8080、11800、12800 端口未占用的情况下,启动 bin 目录下 startup.sh 脚本
打开 localhost:8080,用户名密码默认 admin/admin,看到监控页面表示启动成功。
6.将 agent 文件夹放置在服务器/itek 目录下
进入 skywalking 目录,将 agent 文件夹全部拷贝至服务器/itek,代理 jar 包绝对路径为:
/itek/agent/skywalking-agent.jar
7.修改 docker-compose.xml
在需要修改的服务里添加:(放在一行,doc 里放不下)设置代理 jar 包路径,skywalking 收集器
地址,服务名称
environment:
- JAVA_OPTS=-javaagent:/itek/agent/skywalking-agent.jar
-Dskywalking.agent.service_name=SERVICENAME
-Dskywalking.collector.backend_service=IP:PORT
SERVICENAME, IP:PORT 针对每个微服务配置化
8.启动微服务,查看 skywalking 页面
附录
Skywalking 服务告警
先来看一下告警的规则配置。在 alarm-settings.xml 中可以配置告警规则,告警规则支持自定
义。
一份告警配置由以下几部分组成:
service_resp_time_rule:告警规则名称 ***_rule (规则名称可以自定义但是必须以’_rule’
结尾
indicator-name:指标数据名称: 定义参见 http://t.cn/EGhfbmd
op: 操作符: > , < , = 【当然你可以自己扩展开发其他的操作符】
threshold:目标值:指标数据的目标数据 如 sample 中的 1000 就是服务响应时间,配合上
操作符就是大于 1000ms 的服务响应
period: 告警检查周期:多久检查一次当前的指标数据是否符合告警规则
counts: 达到告警阈值的次数
silence-period:忽略相同告警信息的周期
message:告警信息
webhooks:服务告警通知服务地址
Skywalking 通过 HttpClient 的方式远程调用在配置项 webhooks 中定义的告警通知服务地址。