文章目录
所需环境
jdk1.8
elasticsearch6.5.4 下载地址
skywalking-6.2.0 下载地址
centos 7.6
JDK安装
安装及配置过程省略
es 安装
下载解压并ES文件
配置文件
修改${es_home}/config/elasticsearch.yml
# 集群名称
cluster.name: es-cluster
# 节点名称
node.name: node1
#指定该节点是否有资格被选举成为master节点,默认是true,
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
# 数据的默认存放路径
path.data: /home/skywaling/soft/elasticsearch-6.5.4/data/
# 日志的默认存放路径
path.logs: /home/skywaling/soft/elasticsearch-6.5.4/log/
# bind IP地址
network.host: 0.0.0.0
# 服务端口
http.port: 9200
# 集群服务的端口
transport.tcp.port: 9300
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
# 集群master节点IP地址
discovery.zen.ping.unicast.hosts: ["192.168.2.179:9300"]
注意
服务器环境是CentOS 6时,不支持SecComp,CentOS7已经解决这个问题,当前服务器不能换系统,只能禁用:
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
系统参数修改
/etc/sysctl.conf:
vm.max_map_count=262144
/etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536
/etc/security/limits.d/90-nproc.conf
* soft nproc 4096
root soft nproc unlimited
测试
检查启动是否正常
curl -XGET "http://127.0.0.1:9200/_cat/nodes?v&pretty"
返回结果
{
"name" : "node1",
"cluster_name" : "es-cluster",
"cluster_uuid" : "3jvfHCQGRUyUoIawKIG3xg",
"version" : {
"number" : "6.5.4",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "d2ef93d",
"build_date" : "2018-12-17T21:17:40.758843Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
skywalking服务端安装
配置文件
- 在skywalking的config目录找到application.yml
- 修改application.yml文件
- 找到storage节点下的,elasticsearch节点
- 修改nameSpace为sky_Collector_cluster,必须与es配置的cluster.那么一致
- 修改clusterNodes为es的ip和端口
- 修改indexShardsNumber 值必须大于1
- 注释掉storage下的其他节点
application.yml
elasticsearch:
nameSpace: ${SW_NAMESPACE:"es-cluster"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
# user: ${SW_ES_USER:""}
# password: ${SW_ES_PASSWORD:""}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
启动Skywalking
在Skywalking的bin目录中存在collectorService和webAppService的启动脚本么,使用startup 可以同时启动两个脚本
./bin/startup.sh
启动问题
Q1:启动遇到一个错误是在webapp.log
中提示:无法访问127.0.0.1
org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:10800 [/127.0.0.1] failed: 拒绝连接 (Connection refused)
...
A1:通过修改webapp.yml
进行解决,配置如下所示:
server:
port: 8080
collector:
path: /graphql
ribbon:
ReadTimeout: 10000
# #此处修改为固定 ip,不为127.0.01
listOfServers: 192.168.2.179:12800
security:
user:
admin:
password: admin
Q2:
graphql.execution.SimpleDataFetcherExceptionHandler -1061995 [qtp1609086753-159] WARN [] - Exception while fetching data (/latencyS) : IDs can't be null java.lang.RuntimeException: IDs can't be null
A2:
此问题为ui端的问题,无需解决,对SkyWalking后端无影响
skywalking agent安装
每一个 jar包获取应用都应该单独使用一个 agent,所以将agent 这个目录拷贝到各自对应的 jar包路径下。
核心部分的目录信息如下:
├── activations
├── config
│ └── agent.config
├── logs
│ └── skywalking-api.log
├── optional-plugins
├── plugins
└── skywalking-agent.jar
其中 config/agent.config
是最重要的,需要修改的核心参数如下所示
# 应用名称,当前代理的应用名称,用于 UI界面分类和展示
agent.service_name=${SW_AGENT_NAME:test-door}
# 收集器的地址,这个根据实际情况设置,上述`Collector`在哪台服务器启动,ip就设置为多少。
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.2.179:11800}
设置好参数后,对于 Java 应用,添加核心的-javaagent
进行启动
java -javaagent:agent/skywalking-agent.jar -jar xxx.jar