Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ops
/
monitor-service
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
qinchao
7 years ago
Commit
be54cdaf5023875a2994c66d0fcc7234c141c8ad
1 parent
f701db9f
权重展示加检查
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
20 deletions
monitor-service-switch/src/main/java/com/monitor/switchs/NginxSwitchCtrl.java
monitor-service-switch/src/main/java/com/monitor/switchs/NginxSwitchCtrl.java
View file @
be54cda
package
com
.
monitor
.
switchs
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.Lists
;
import
com.model.HostInfo
;
import
com.monitor.common.HostTagConstant
;
...
...
@@ -614,6 +615,7 @@ public class NginxSwitchCtrl {
//lb描述
Map
<
String
,
Object
>
lbMap
=
new
HashMap
<>();
Map
<
String
,
TreeMap
<
String
,
Integer
>>
lbWeightDescrMap
=
new
LinkedHashMap
<>();
List
<
LbModel
>
lbList
=
getJavaLb
();
Set
<
String
>
java_nginx_az1
=
new
HashSet
<>();
Set
<
String
>
java_nginx_az2
=
new
HashSet
<>();
...
...
@@ -628,9 +630,10 @@ public class NginxSwitchCtrl {
return
new
BaseResponse
(
201
,
"请求lb信息error,lb:"
+
lb
.
getLbId
());
}
Map
<
String
,
Integer
>
ipInWeight
=
new
HashMap
<>();
addJavaNgingList
(
tmp
.
getBackendSet
(),
ipInWeight
,
java_nginx_az1
,
java_nginx_az2
,
java_nginx_az3
);
TreeMap
<
String
,
Integer
>
ipWeightAll
=
new
TreeMap
<>();
//自动有顺序
addJavaNgingList
(
tmp
.
getBackendSet
(),
ipWeightAll
,
ipInWeight
,
java_nginx_az1
,
java_nginx_az2
,
java_nginx_az3
);
lbMap
.
put
(
lb
.
getKey
(),
ipInWeight
);
lbWeightDescrMap
.
put
(
lb
.
getKey
(),
ipWeightAll
);
}
else
{
QcloudForwardLbModel
tmp
=
getAlbFromQcloud
(
lb
);
if
(
tmp
==
null
){
...
...
@@ -656,8 +659,15 @@ public class NginxSwitchCtrl {
for
(
QcloudForwardLbModelDataRule
rule:
data
.
getRules
()){
if
(
domainList
.
contains
(
rule
.
getDomain
()))
{
if
(
domainList
.
get
(
0
).
equals
(
rule
.
getDomain
())){
addJavaNgingList
(
rule
.
getBackends
(),
ipInWeight
,
java_nginx_az1
,
java_nginx_az2
,
java_nginx_az3
);
TreeMap
<
String
,
Integer
>
ipWeightAll
=
new
TreeMap
<>();
//自动有顺序
addJavaNgingList
(
rule
.
getBackends
(),
ipWeightAll
,
ipInWeight
,
java_nginx_az1
,
java_nginx_az2
,
java_nginx_az3
);
lbWeightDescrMap
.
put
(
lb
.
getKey
()+
"-"
+
rule
.
getLocationId
()+
"-"
+
protocolType
+
"-"
+
port
+
"-"
+
rule
.
getDomain
(),
ipWeightAll
);
}
else
{
TreeMap
<
String
,
Integer
>
ipWeightAll
=
new
TreeMap
<>();
//自动有顺序
for
(
QcloudLbModelBackend
backend:
rule
.
getBackends
()){
ipWeightAll
.
put
(
backend
.
getLanIp
(),
backend
.
getWeight
());
}
lbWeightDescrMap
.
put
(
lb
.
getKey
()+
"-"
+
rule
.
getLocationId
()+
"-"
+
protocolType
+
"-"
+
port
+
"-"
+
rule
.
getDomain
(),
ipWeightAll
);
/*Map<String,Integer> tmp_ipInWeight=new HashMap<>();
Set<String> tmp_java_nginx_az1=new HashSet<>();
Set<String> tmp_java_nginx_az2=new HashSet<>();
...
...
@@ -691,37 +701,53 @@ public class NginxSwitchCtrl {
}
if
(!
CollectionUtils
.
isEqualCollection
(
java_nginx_az1_cmdb
,
Lists
.
newArrayList
(
java_nginx_az1
))){
return
new
BaseResponse
(
201
,
"负载均衡nginx与cmdb标签nginx不一致,cmdb:"
+
StringUtils
.
join
(
java_nginx_az1_cmdb
,
","
)
+
",lb nginx:"
+
StringUtils
.
join
(
java_nginx_az1
,
","
));
return
new
BaseResponse
(
201
,
"负载均衡nginx与cmdb标签nginx不一致,\r\ncmdb:"
+
StringUtils
.
join
(
java_nginx_az1_cmdb
,
","
)
+
",\r\nlb nginx:"
+
StringUtils
.
join
(
java_nginx_az1
,
","
));
}
if
(!
CollectionUtils
.
isEqualCollection
(
java_nginx_az2_cmdb
,
Lists
.
newArrayList
(
java_nginx_az2
))){
return
new
BaseResponse
(
201
,
"负载均衡nginx与cmdb标签nginx不一致,cmdb:"
+
StringUtils
.
join
(
java_nginx_az2_cmdb
,
","
)
+
",lb nginx:"
+
StringUtils
.
join
(
java_nginx_az2
,
","
));
return
new
BaseResponse
(
201
,
"负载均衡nginx与cmdb标签nginx不一致,\r\ncmdb:"
+
StringUtils
.
join
(
java_nginx_az2_cmdb
,
","
)
+
",\r\nlb nginx:"
+
StringUtils
.
join
(
java_nginx_az2
,
","
));
}
if
(!
CollectionUtils
.
isEqualCollection
(
java_nginx_az3_cmdb
,
Lists
.
newArrayList
(
java_nginx_az3
))){
return
new
BaseResponse
(
201
,
"负载均衡nginx与cmdb标签nginx不一致,cmdb:"
+
StringUtils
.
join
(
java_nginx_az3_cmdb
,
","
)
+
",lb nginx:"
+
StringUtils
.
join
(
java_nginx_az3
,
","
));
return
new
BaseResponse
(
201
,
"负载均衡nginx与cmdb标签nginx不一致,\r\ncmdb:"
+
StringUtils
.
join
(
java_nginx_az3_cmdb
,
","
)
+
",\r\nlb nginx:"
+
StringUtils
.
join
(
java_nginx_az3
,
","
));
}
map
.
put
(
"lbMap"
,
Lists
.
newArrayList
(
lbMap
));
//校验,每个key下挂载的机器的数量是一样的,必须是所有的nginx,只是权重不同
int
count
=
0
;
List
<
String
>
ipsLast
=
null
;
String
lastKey
=
""
;
Map
<
String
,
List
<
String
>>
checkWeightMap
=
new
HashMap
<>();
for
(
String
key:
lbWeightDescrMap
.
keySet
()){
TreeMap
<
String
,
Integer
>
ipWeight
=
lbWeightDescrMap
.
get
(
key
);
List
<
String
>
ipsCurrent
=
Lists
.
newArrayList
(
ipWeight
.
keySet
());
if
(
count
==
0
){
ipsLast
=
ipsCurrent
;
}
else
{
if
(!
CollectionUtils
.
isEqualCollection
(
ipsLast
,
ipsCurrent
)){
return
new
BaseResponse
(
201
,
"请检测lb挂载的nginx 不一致 \r\n"
+
lastKey
+
":"
+
ipsLast
+
"\r\n"
+
key
+
":"
+
ipsCurrent
);
}
if
(
"test1"
.
equals
(
env
)||
"test"
.
equals
(
env
))
{
/*List<Map<String, Object>> az2List = localTest("az2");
List<Map<String, Object>> qcloudList = localTest("qq");
map.put("qcloudList", qcloudList);
map.put("qcloudaz2List",az2List);*/
return
new
BaseResponse
(
map
);
}
}
//map.put("awsList", getUpstreamTagNginxList(1,null));
String
azTag
=
key
.
substring
(
0
,
3
);
if
(!
checkWeightMap
.
containsKey
(
azTag
)){
checkWeightMap
.
put
(
azTag
,
Lists
.
newArrayList
(
JSON
.
toJSONString
(
ipWeight
),
key
));
}
else
{
if
(!
StringUtils
.
equals
(
JSON
.
toJSONString
(
ipWeight
),
checkWeightMap
.
get
(
azTag
).
get
(
0
))){
return
new
BaseResponse
(
201
,
"请检测lb挂载的nginx 权重不一致 \r\n"
+
checkWeightMap
.
get
(
azTag
).
get
(
1
)+
":"
+
checkWeightMap
.
get
(
azTag
).
get
(
0
)+
"\r\n"
+
key
+
":"
+
JSON
.
toJSONString
(
ipWeight
));
}
}
//map.put("qcloudList", getUpstreamTagNginxList(2,"az1"));
lastKey
=
key
;
count
++;
}
//map.put("qcloudaz2List", getUpstreamTagNginxList(2,"az2"));
return
new
BaseResponse
(
map
);
}
catch
(
Exception
e
){
logger
.
error
(
" NginxSwitchCtrl - viewNginxConf - init - error"
,
e
);
...
...
@@ -744,12 +770,13 @@ public class NginxSwitchCtrl {
return
lbList
;
}
private
void
addJavaNgingList
(
List
<
QcloudLbModelBackend
>
backendList
,
Map
<
String
,
Integer
>
ipInWeight
,
Set
<
String
>
java_nginx_az1
,
Set
<
String
>
java_nginx_az2
,
Set
<
String
>
java_nginx_az3
){
private
void
addJavaNgingList
(
List
<
QcloudLbModelBackend
>
backendList
,
Map
<
String
,
Integer
>
ip
WeightAll
,
Map
<
String
,
Integer
>
ip
InWeight
,
Set
<
String
>
java_nginx_az1
,
Set
<
String
>
java_nginx_az2
,
Set
<
String
>
java_nginx_az3
){
for
(
QcloudLbModelBackend
backend:
backendList
){
//记录权重
if
(
backend
.
getWeight
()>
0
){
ipInWeight
.
put
(
backend
.
getLanIp
(),
backend
.
getWeight
());
}
ipWeightAll
.
put
(
backend
.
getLanIp
(),
backend
.
getWeight
());
//记录nginx机器
if
(
backend
.
getInstanceName
().
contains
(
"az1"
)){
java_nginx_az1
.
add
(
backend
.
getLanIp
());
...
...
Please
register
or
login
to post a comment