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
acf084431e1f963056591e2cc4c2275caacb402b
1 parent
83da2481
qcloud 负载均衡添加方法
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
38 additions
and
94 deletions
monitor-service-awstools/src/main/java/com/monitor/cloudtools/controller/CloudLbController.java
monitor-service-awstools/src/main/java/com/monitor/cloudtools/service/impl/CloudLbServiceImpl.java
monitor-service-compare/src/main/java/com/monitor/compare/model/QcloudCLBModel.java → monitor-service-cmdb/src/main/java/com/yoho/ops/cmdb/qcloud/model/QcloudCLBModel.java
monitor-service-cmdb/src/main/java/com/yoho/ops/cmdb/qcloud/util/QcloudSdkUtil.java
monitor-service-compare/src/main/java/com/monitor/compare/service/NignxCompare.java
monitor-service-awstools/src/main/java/com/monitor/cloudtools/controller/CloudLbController.java
View file @
acf0844
...
...
@@ -5,16 +5,12 @@ package com.monitor.cloudtools.controller;
*/
import
com.monitor.awstools.service.AwsLbService
;
import
com.monitor.cloudtools.model.CommElbInfoResponse
;
import
com.monitor.cloudtools.model.CommLbInstances
;
import
com.monitor.cloudtools.service.CloudLbService
;
import
com.monitor.model.domain.ElbInfo
;
import
com.monitor.model.response.BaseResponse
;
import
com.monitor.qcloudtools.service.QcloudLbService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -31,12 +27,6 @@ public class CloudLbController {
public
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
"cloudLbLogger"
);
/**
* 腾讯云
*/
@Autowired
private
QcloudLbService
qcloudLbService
;
/**
* 亚马逊云
*/
@Autowired
...
...
monitor-service-awstools/src/main/java/com/monitor/cloudtools/service/impl/CloudLbServiceImpl.java
View file @
acf0844
...
...
@@ -9,7 +9,6 @@ import com.monitor.cloudtools.util.DnsPodUtil;
import
com.monitor.model.domain.DomainInfo
;
import
com.monitor.model.domain.ElbInfo
;
import
com.monitor.model.domain.InstanceInfo
;
import
com.monitor.model.response.BaseResponse
;
import
com.monitor.mysql.mapper.InternalDomainMapper
;
import
com.monitor.qcloudtools.service.QcloudLbService
;
import
com.monitor.qcloudtools.service.QcloudToolService
;
...
...
@@ -19,7 +18,6 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
...
...
monitor-service-c
ompare/src/main/java/com/monitor/compare
/model/QcloudCLBModel.java → monitor-service-c
mdb/src/main/java/com/yoho/ops/cmdb/qcloud
/model/QcloudCLBModel.java
View file @
acf0844
package
com
.
monitor
.
compare
.
model
;
package
com
.
yoho
.
ops
.
cmdb
.
qcloud
.
model
;
import
lombok.Data
;
...
...
@@ -14,6 +14,8 @@ public class QcloudCLBModel {
@Data
public
static
class
Backend
{
String
unInstanceId
;
String
instanceId
;
String
lanIp
;
String
instanceName
;
...
...
monitor-service-cmdb/src/main/java/com/yoho/ops/cmdb/qcloud/util/QcloudSdkUtil.java
View file @
acf0844
...
...
@@ -5,13 +5,17 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
com.qcloud.Module.Base
;
import
com.qcloud.Module.Cvm
;
import
com.qcloud.Module.Lb
;
import
com.qcloud.Module.Scaling
;
import
com.qcloud.QcloudApiModuleCenter
;
import
com.yoho.ops.cmdb.qcloud.constant.QcloudConstant
;
import
com.yoho.ops.cmdb.qcloud.model.QcloudAutoScalingGroup
;
import
com.yoho.ops.cmdb.qcloud.model.QcloudCLBModel
;
import
com.yoho.ops.cmdb.qcloud.model.QcloudInstanceSet
;
import
com.yoho.ops.cmdb.qcloud.model.QcloudScalingInstancesSet
;
import
org.apache.commons.lang3.StringUtils
;
import
org.codehaus.jackson.map.DeserializationConfig
;
import
org.codehaus.jackson.map.ObjectMapper
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -25,6 +29,7 @@ import java.util.TreeMap;
*/
public
class
QcloudSdkUtil
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
QcloudSdkUtil
.
class
);
public
static
ObjectMapper
OBJECT_MAPPER
=
new
ObjectMapper
().
configure
(
DeserializationConfig
.
Feature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
/**
* 获取腾讯云通用参数
...
...
@@ -105,7 +110,7 @@ public class QcloudSdkUtil {
/*******************************************************************
*************************** 伸缩组 ************************
***************************
1.
伸缩组 ************************
******************************************************************/
/*******************************************************************
...
...
@@ -310,9 +315,33 @@ public class QcloudSdkUtil {
return
instanceSets
;
}
/*******************************************************************
*************************** 2 负载均衡器 (传统) ************************
******************************************************************/
/**
* 获取负载均衡绑定的后端服务器列表
*/
public
static
QcloudCLBModel
describeLoadBalancerBackends
(
String
loadBalancerId
){
if
(
StringUtils
.
isBlank
(
loadBalancerId
)){
return
null
;
}
try
{
TreeMap
<
String
,
Object
>
params
=
new
TreeMap
<>();
params
.
put
(
"loadBalancerId"
,
loadBalancerId
);
String
rootJson
=
QcloudSdkUtil
.
getCommonData
(
new
Lb
(),
"GET"
,
QcloudConstant
.
QCLOUD_API_Describe_Load_BalancerBackends
,
params
,
true
);
if
(
StringUtils
.
isBlank
(
rootJson
)){
return
null
;
}
QcloudCLBModel
qcloudCLBModel
=
OBJECT_MAPPER
.
readValue
(
rootJson
,
QcloudCLBModel
.
class
);
return
qcloudCLBModel
;
}
catch
(
Exception
e
){
logger
.
error
(
" - QcloudSdkUtil - describeInstances- error"
,
e
);
}
return
null
;
}
public
static
void
main
(
String
args
[]){
getScalingInstancesSetAll
(
"asg-1llhxawt
"
);
describeLoadBalancerBackends
(
"lb-09g87u8f
"
);
}
}
\ No newline at end of file
...
...
monitor-service-compare/src/main/java/com/monitor/compare/service/NignxCompare.java
View file @
acf0844
...
...
@@ -3,12 +3,11 @@ package com.monitor.compare.service;
import
com.model.HostInfo
;
import
com.monitor.cmdb.service.IHostInfoService
;
import
com.monitor.compare.comparator.IpComparator
;
import
com.monitor.compare.model.QcloudCLBModel
;
import
com.qcloud.Module.Lb
;
import
com.qcloud.QcloudApiModuleCenter
;
import
com.yoho.ops.cmdb.aws.lb.AwsLoadBalance
;
import
com.yoho.ops.cmdb.models.Host
;
import
com.yoho.ops.cmdb.models.LoadBalance
;
import
com.yoho.ops.cmdb.qcloud.model.QcloudCLBModel
;
import
com.yoho.ops.cmdb.qcloud.util.QcloudSdkUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -19,7 +18,6 @@ import org.springframework.stereotype.Component;
import
java.util.*
;
import
static
com
.
monitor
.
compare
.
stat
.
StaticVar
.
AWS_TYPE
;
import
static
com
.
monitor
.
compare
.
stat
.
StaticVar
.
OBJECT_MAPPER
;
/**
* Created by yoho on 2016/10/19.
...
...
@@ -35,20 +33,12 @@ public class NignxCompare {
@Value
(
"${nginx_clb_qcloud}"
)
private
String
nginx_clb_qcloud
;
/* @Autowired
private AWSClientComp awsClientComp;
@Autowired
private AWSELBClientComp awselbClientComp;*/
@Autowired
private
AwsLoadBalance
awsLoadBalance
;
@Autowired
private
IHostInfoService
hostInfoService
;
/* @Autowired
private AwsApplicationLoadBalanceFetcher alb;*/
public
Map
<
String
,
List
<
String
>>
compare
(
String
net
)
{
Map
<
String
,
List
<
String
>>
configMap
;
...
...
@@ -102,40 +92,14 @@ public class NignxCompare {
//获取clb中ip列表
private
List
<
String
>
queryQcloudClbInstance
()
throws
Exception
{
List
<
String
>
qcloudNignxIps
=
new
ArrayList
<>();
TreeMap
<
String
,
Object
>
config
=
new
TreeMap
<
String
,
Object
>();
config
.
put
(
"SecretId"
,
"AKID6dwpKadiQgbDpXDtyNhppIHPO5qPv5GK"
);
config
.
put
(
"SecretKey"
,
"ACJkH9mg0DBA1PYpf0E7f3g534wBsQaW"
);
config
.
put
(
"RequestMethod"
,
"GET"
);
config
.
put
(
"DefaultRegion"
,
"bj"
);
QcloudApiModuleCenter
module
=
new
QcloudApiModuleCenter
(
new
Lb
(),
config
);
TreeMap
<
String
,
Object
>
params
=
new
TreeMap
<
String
,
Object
>();
params
.
put
(
"loadBalancerId"
,
nginx_clb_qcloud
);
String
result
;
result
=
module
.
call
(
"DescribeLoadBalancerBackends"
,
params
);
QcloudCLBModel
qcloudCLBModel
=
OBJECT_MAPPER
.
readValue
(
result
,
QcloudCLBModel
.
class
);
QcloudCLBModel
qcloudCLBModel
=
QcloudSdkUtil
.
describeLoadBalancerBackends
(
nginx_clb_qcloud
);
if
(
null
!=
qcloudCLBModel
)
{
for
(
QcloudCLBModel
.
Backend
backend
:
qcloudCLBModel
.
getBackendSet
())
{
qcloudNignxIps
.
add
(
backend
.
getLanIp
());
}
}
//排序
Collections
.
sort
(
qcloudNignxIps
,
new
IpComparator
());
return
qcloudNignxIps
;
}
...
...
@@ -146,8 +110,6 @@ public class NignxCompare {
Map
<
String
,
List
<
String
>>
nginxMap
=
new
HashMap
<>();
List
<
String
>
elbInstanceIpList
=
new
ArrayList
<>();
try
{
List
<
String
>
elbList
=
new
ArrayList
<>();
...
...
@@ -194,43 +156,6 @@ public class NignxCompare {
elbInstanceIpList
.
add
(
host
.
getIp
());
}
}
/*
//DescribeLoadBalancersResult result = awselbClientComp.getClient().describeLoadBalancers(new DescribeLoadBalancersRequest(elbList));
//List<Instance> elbInstances = result.getLoadBalancerDescriptions().get(0).getInstances();
List<LoadBalance> elbInstances=alb.getAlbsWithNames(elbList);
List<String> elbInstanceIdList = new ArrayList<>();
for(LoadBalance alb:elbInstances){
alb.getHosts().forEach(host -> {
elbInstanceIdList.add(host.getId());
});
}
if (elbInstanceIdList.isEmpty()) {
return elbInstanceIpList;
}
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.setInstanceIds(elbInstanceIdList);
DescribeInstancesResult describeInstancesResult = awsClientComp.getClient().describeInstances(request);
List<Reservation> reservationList = describeInstancesResult.getReservations();
for (Reservation reservation : reservationList) {
for (com.amazonaws.services.ec2.model.Instance instance : reservation.getInstances()) {
elbInstanceIpList.add(instance.getPrivateIpAddress());
}
}*/
return
elbInstanceIpList
;
return
elbInstanceIpList
;
}
}
...
...
Please
register
or
login
to post a comment