/config/elasticsearch.yml
做非常简单的修改
# cluster.name: XXX # 此处随意,不写也是可以的
network.host: 10.5.21.27 # 此处最好不要写127.0.0.1,改为实际的 ip
# http.port: 9200 # 根据自己的实际要求修改
elasticsearch
cd xxx/elasticsearch-6.6.1
./bin/elasticsearch
此处没有做集群,如果有需要请根据文档做集群处理。
启动过程中,查看控制台是否出现问题,如果有问题,请对照下述的问题解决方案进行处理,处理完成后,通过后台方式启动。
# 后台启动
sh /mic-project/elasticsearch-6.6.1/bin/elasticsearch -d -p pid
# 杀掉进程
kill `cat pid`
安装成功后可以通过: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"
}
在root
权下进行添加用户和分组。
groupadd devgroup #添加一个分组 devgroup
adduser lcf # 添加一个用户 lcf
passwd lcf #为 lcf修改密码,修改密码也是此指令
# 其他指令参考
useradd -g devgroup newuser # 此处为新建
usermod -G groupname username # 这个会把用户从其他组中去掉
授权文件夹为非 上述构建好的用户
chown -R lcf:devgroup elasticsearch-6.6.1/
其中lcf
为用户名,devgroup
为分组名。
vi /etc/security/limits.conf
然后在后面添加
* soft nofile 65536
* hard nofile 131072
切换到root用户修改配置sysctl.conf
# 修改配置文件
vi /etc/sysctl.conf
# 添加配置后跳出 vim
vm.max_map_count=6553601
# 执行
sysctl -p1
Skywalking 6.0 GA
版本后,解压├── .....
├── agent
├── 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
进行指定startup.sh
用于启动2个服务
application.yml
作用如下
collecotr
的启动ip 和端口storage
的信息,就是elasticsearch
的信息skywalking-webapp.jar
:ui界面服务的 jar 包webapp.yml
:配置文件,里面主要是graphql
的配置【此处可能有坑】综上我们根据是否属于代理分为2类:
config/application.yml
下的文件,默认的配置中通过${...}
做了一些引用变量,我的服务器环境死活启动不了,所以进行了修改,部分配置如下,未列出的都是没有进行修改的:...
cluster:
standalone:
core:
default:
restHost: 10.5.21.27
restPort: 12800
restContextPath: /
gRPCHost: 10.5.21.27
gRPCPort: 11800
downsampling:
- Hour
- Day
- Month
recordDataTTL: 90 # Unit is minute
minuteMetricsDataTTL: 90 # Unit is minute
hourMetricsDataTTL: 36 # Unit is hour
dayMetricsDataTTL: 45 # Unit is day
monthMetricsDataTTL: 18 # Unit is month
storage:
elasticsearch:
clusterNodes: 10.5.21.27:9200
indexShardsNumber: 2
indexReplicasNumber: 0
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
......
cd bin
sh startup.sh
通过上述命令即可启动:collecot服务
和 ui 界面服务
。
http://10.5.21.27:8080/
查看是否出现登录界面,默认的用户名密码是:admin admin通常情况下,都会有问题,骚年,我们来一个一个解决问题吧!
错误的解决方法第一步就是查看日志,日志在logs
目录下
webapp.log # UI控制启动的日志
skywalking-oap-server.log
oap.log
遇到问题依次打开一个一个分析。
我遇到一个典型错误是在webapp.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:12800 #此处修改为固定 ip,不为127.0.01
security:
user:
admin:
password: admin
如果你懂 Zuul,你应该可以猜到此处引入此组件的目的是为了负载均衡。
实际开发时候,每一个 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=10.5.21.27:11800
设置好参数后,对于 Java 应用,添加核心的-javaagent
进行启动
java -javaagent:agent/skywalking-agent.jar -jar xxx.jar
整体设计如上所示。