根据上述地址下载 Elasticsearch 5.X 版本。
下载完成后对/config/elasticsearch.yml
做如下修改并包装
cluster.name: CollectorDBCluster
node.name: Mic-KJ-Node
network.host: 0.0.0.0
thread_pool.bulk.queue_size: 1000
elasticsearch
,启动后其端口为10080
cd elasticsearch-5.6.14/
./bin/elasticsearch
此处没有做集群,如果有需要请根据文档做集群处理。
安装成功后可以通过:http://10.5.21.27:9200/
进行测试,如果如下类似内容则表示启动成功:
{
"name" : "liuchunfu",
"cluster_name" : "CollectorDBCluster",
"cluster_uuid" : "bjje0ZP1SwSHCag8K-ddFQ",
"version" : {
"number" : "5.6.14",
"build_hash" : "f310fe9",
"build_date" : "2018-12-05T21:20:16.416Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
添加用于并分组
groupadd devgroup
adduser liuchunfu
passwd dev #后续连续输入多次密码
useradd -g devgroup newuser # 此处为新建
usermod -G groupname username # 这个会把用户从其他组中去掉
授权文件夹为非 上述构建好的用户
chown -R liuchunfu:devgroup elasticsearch-5.6.14/
如果一定要通过 root进行处理,执行如下指令
# 此非后台运行
runuser -l liuchunfu -c 'sh /mic-project/elasticsearch-5.6.14/bin/elasticsearch'
# 后台运行
runuser -l liuchunfu -c 'sh /mic-project/elasticsearch-5.6.14/bin/elasticsearch -d -p pid'
# 杀掉此进程。或者 jps 杀掉
kill `cat pid`
其中liuchunfu
为用户名,后面单括号的内容为命令,命令中的 elaticsearch 需要全路径。
当然也可以通过非 root账户登录后进行处理。
vi /etc/security/limits.conf
然后在后面添加
* soft nofile 65536
* hard nofile 131072
# 通过如下指定查看
sysctl -a|grep vm.max_map_count
# 通过如下指定设置
sysctl -w vm.max_map_count=262144
Skywalking 5.0 GA
版本后,解压├── .....
├── agent
│ ├── activations
│ ├── config
│ ├── logs
│ ├── optional-plugins
│ ├── plugins
│ └── skywalking-agent.jar
├── bin
│ ├── collectorService.bat
│ ├── collectorService.sh
│ ├── startup.bat
│ ├── startup.sh
│ ├── webappService.bat
│ └── webappService.sh
|── ......
├── config
│ ├── application.yml
│ ├── component-libraries.yml
│ └── log4j2.xml
├── .....
├── logs
│ ├── collector.log
│ ├── skywalking-collector-server.log
│ ├── webapp-console.log
│ └── webapp.log
└── webapp
├── skywalking-webapp.jar
└── webapp.yml
上述列表是比较重要的东西,我们依次来说
-agent
进行指定agent.config
用于配置代理jar包的信息
bin
目录下。startup.sh
用于启动2个服务
application.yml
作用如下
collecotr
的启动ip 和端口storage
的信息,就是elasticsearch
的信息skywalking-webapp.jar
:ui界面服务的 jar 包webapp.yml
:配置文件,里面主要是graphql
的配置【此处可能有坑】综上我们根据是否属于代理分为2类:
elasticsearch
实际安装地址修改bin 同级目录下的config下的application.yml
。storage:
elasticsearch:
clusterName: CollectorDBCluster
clusterTransportSniffer: true
clusterNodes: localhost:9300 # 修改此处的ip和端口。9300是elastic的默认端口
cd bin
sh startup.sh
通过上述命令即可启动:collecot服务
和 ui 界面服务
。
http://10.5.21.27:8080/
查看是否出现登录界面,默认的用户名密码是:admin admin解决方案是查看日志,日志在logs\webapp-console.log
目录下。
我遇到一个典型错误是通过zuul
无法访问127.0.0.1
org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:10800 [/127.0.0.1] failed: 拒绝连接 (Connection refused)
...
com.netflix.zuul.exception.ZuulException: Forwarding error
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:189)
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:164)
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:111)
我是通过修改webapp.yml
中的 listOfServers
进行解决的,我的配置如下所示:
server:
port: 8080
collector:
path: /graphql
ribbon:
ReadTimeout: 10000
listOfServers: 10.5.21.27:10800
security:
user:
admin:
password: admin
实际开发时候,每一个 jar包获取应用都应该单独使用一个 agent,所以将agent 这个目录拷贝到各自对应的 jar包路径下。
核心部分的目录信息如下:
├── activations
├── config
│ └── agent.config
├── logs
│ └── skywalking-api.log
├── optional-plugins
├── plugins
└── skywalking-agent.jar
其中 config/agent.config
是最重要的,需要修改的核心参数如下所示
# 应用名称,当前代理的应用名称,用于 UI界面分类和展示。
agent.application_code=Mic-APM
# 收集器的地址,这个根据实际情况设置,上述`Collector`在哪台服务器启动,ip就设置为多少。
collector.servers=127.0.0.1:10800
设置好参数后,对于 Java 应用,添加核心的-javaagent
进行启动
java -javaagent:agent/skywalking-agent.jar -jar xxx.jar
整体设计如上所示。