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
afc32700bed5b72accb39a907b44d3bca2ff675b
1 parent
8f4930d3
去掉不用dnsspot信息
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
2 additions
and
245 deletions
monitor-service-awstools/src/main/java/com/monitor/cloudtools/service/CloudLbService.java
monitor-service-awstools/src/main/java/com/monitor/cloudtools/service/impl/CloudLbServiceImpl.java
monitor-service-awstools/src/main/java/com/monitor/cloudtools/util/DnsPodUtil.java
monitor-service-awstools/src/main/java/com/monitor/cloudtools/service/CloudLbService.java
View file @
afc3270
package
com
.
monitor
.
cloudtools
.
service
;
import
com.monitor.cloudtools.model.CommElbInfoResponse
;
import
com.monitor.cloudtools.model.CommLbInstances
;
import
com.monitor.model.domain.ElbInfo
;
import
com.monitor.model.response.BaseResponse
;
import
java.util.List
;
...
...
@@ -13,12 +10,6 @@ import java.util.List;
public
interface
CloudLbService
{
//void getLbInstances(int cloudType);
/**
* 组装数据返回
* @param instances
* @return
*/
List
<
CommElbInfoResponse
>
getElbInfos
(
List
<
CommLbInstances
>
instances
);
List
<
ElbInfo
>
getElbInfoFromDb
(
int
cloudType
);
}
\ No newline at end of file
...
...
monitor-service-awstools/src/main/java/com/monitor/cloudtools/service/impl/CloudLbServiceImpl.java
View file @
afc3270
package
com
.
monitor
.
cloudtools
.
service
.
impl
;
import
com.model.InternalDomain
;
import
com.monitor.awstools.service.AwsLbService
;
import
com.monitor.awstools.service.AwsQueryService
;
import
com.monitor.cloudtools.model.*
;
import
com.monitor.cloudtools.service.CloudLbService
;
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.mysql.mapper.InternalDomainMapper
;
import
com.monitor.qcloudtools.service.QcloudLbService
;
import
com.monitor.qcloudtools.service.QcloudToolService
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -31,201 +17,6 @@ import java.util.List;
public
class
CloudLbServiceImpl
implements
CloudLbService
{
public
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
"cloudLbLogger"
);
@Autowired
private
InternalDomainMapper
internalDomainMapper
;
@Autowired
private
ElbInfoImpl
elbInfoImpl
;
@Autowired
private
DomainInfoImpl
domainInfoImpl
;
@Autowired
private
InstanceInfoImpl
instanceInfoImpl
;
/**
* 腾讯云
*/
@Autowired
private
QcloudToolService
qCloudToolService
;
/**
* 亚马逊云
*/
@Autowired
private
AwsLbService
awsLbService
;
/**
* 腾讯云
*/
@Autowired
private
QcloudLbService
qcloudLbService
;
/**
* 亚马逊云
*/
@Autowired
private
AwsQueryService
awsQueryService
;
private
static
final
String
EQUALS_NAME
=
"nginx"
;
//@Scheduled(cron = "${cron_elb_info_scan}")
public
void
getLbInstances
()
{
List
<
CommLbInstances
>
instances
=
new
ArrayList
<>();
List
<
CommLbInstances
>
instances_aws
=
awsLbService
.
getLbInstances
();
List
<
CommLbInstances
>
instances_qq
=
qcloudLbService
.
getLbInstances
();
if
(
CollectionUtils
.
isNotEmpty
(
instances_aws
)){
instances
.
addAll
(
instances_aws
);
}
if
(
CollectionUtils
.
isNotEmpty
(
instances_qq
)){
instances
.
addAll
(
instances_qq
);
}
getElbInfos
(
instances
);
}
/**
* 组装数据返回
* @param instances
* @return
*/
@Override
public
List
<
CommElbInfoResponse
>
getElbInfos
(
List
<
CommLbInstances
>
instances
)
{
List
<
CommElbInfoResponse
>
listResponse
=
null
;
CommElbInfoResponse
response
=
null
;
List
<
CommElbInfoResponse
>
newListResponse
=
null
;
try
{
if
(
CollectionUtils
.
isEmpty
(
instances
)){
return
null
;
}
listResponse
=
new
ArrayList
<>();
//1:删除表记录
elbInfoImpl
.
deleteAll
();
domainInfoImpl
.
deleteAll
();
List
<
DnsPodRes
>
listRes1
=
DnsPodUtil
.
getDnsPod1
();
List
<
DnsPodRes
>
listRes2
=
DnsPodUtil
.
getDnsPod2
();
List
<
CommAutoScalingGroup
>
autoScalingGroups
=
new
ArrayList
<>();
List
<
CommAutoScalingGroup
>
autoScalingGroups_aws
=
awsQueryService
.
autoScalingConfig
(
EQUALS_NAME
);
List
<
CommAutoScalingGroup
>
autoScalingGroups_qq
=
qCloudToolService
.
getAutoScalingConfig
(
EQUALS_NAME
);
if
(
CollectionUtils
.
isNotEmpty
(
autoScalingGroups_aws
)){
autoScalingGroups
.
addAll
(
autoScalingGroups_aws
);
}
if
(
CollectionUtils
.
isNotEmpty
(
autoScalingGroups_qq
)){
autoScalingGroups
.
addAll
(
autoScalingGroups_qq
);
}
List
<
CommAutoScalingInstances
>
listScalingInstance
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
autoScalingGroups
)){
listScalingInstance
=
new
ArrayList
<>();
for
(
CommAutoScalingGroup
group
:
autoScalingGroups
){
if
(
CollectionUtils
.
isEmpty
(
group
.
getScalingInstancess
())){
listScalingInstance
.
addAll
(
group
.
getScalingInstancess
());
}
}
}
for
(
CommLbInstances
instance
:
instances
){
//域名获取
List
<
String
>
commDomains
=
new
ArrayList
<>();
if
(
instance
.
getNetType
()
==
0
){
//内网
List
<
InternalDomain
>
domains
=
internalDomainMapper
.
selectByValue
(
instance
.
getAddress
());
if
(
CollectionUtils
.
isNotEmpty
(
domains
)){
for
(
InternalDomain
domain
:
domains
){
if
(
commDomains
.
contains
(
domain
.
getName
()
+
"."
+
domain
.
getDomain
())){
continue
;
}
commDomains
.
add
(
domain
.
getName
()
+
"."
+
domain
.
getDomain
());
}
}
}
else
{
//外网
for
(
DnsPodRes
res
:
listRes1
){
if
(
res
.
getValue
().
indexOf
(
instance
.
getAddress
())
>
-
1
){
commDomains
.
add
(
res
.
getName
()
+
"."
+
"yoho.cn"
);
}
}
for
(
DnsPodRes
res
:
listRes2
){
if
(
res
.
getValue
().
indexOf
(
instance
.
getAddress
())
>
-
1
){
commDomains
.
add
(
res
.
getName
()
+
"."
+
"yohobuy.com"
);
}
}
}
instance
.
setDomains
(
commDomains
);
//插入数据库
//1:domain
List
<
Integer
>
domainIds
=
null
;
List
<
DomainInfo
>
domainInfos
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
commDomains
)){
domainIds
=
new
ArrayList
<>();
domainInfos
=
new
ArrayList
<>();
for
(
String
domain
:
commDomains
){
DomainInfo
domainInfo
=
new
DomainInfo
();
domainInfo
.
setName
(
domain
);
int
id
=
domainInfoImpl
.
insert
(
domainInfo
);
domainIds
.
add
(
id
);
domainInfo
.
setId
(
id
);
domainInfos
.
add
(
domainInfo
);
}
}
String
tags
=
null
;
//2:instance
List
<
Integer
>
instanceIds
=
null
;
List
<
InstanceInfo
>
instanceInfos
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
instance
.
getBackends
())){
instanceIds
=
new
ArrayList
<>();
instanceInfos
=
new
ArrayList
<>();
for
(
CommLbBackends
backend
:
instance
.
getBackends
()){
InstanceInfo
instanceInfo
=
new
InstanceInfo
();
instanceInfo
.
setCloudType
(
instance
.
getCloudType
());
instanceInfo
.
setCode
(
backend
.
getInstanceId
());
instanceInfo
.
setIp
(
backend
.
getLanIp
());
if
(
CollectionUtils
.
isNotEmpty
(
listScalingInstance
)){
for
(
CommAutoScalingInstances
scalingInstance
:
listScalingInstance
){
if
(
backend
.
getLanIp
().
equals
(
scalingInstance
.
getIp
())){
instanceInfo
.
setTag
(
EQUALS_NAME
);
}
}
}
InstanceInfo
newInfo
=
instanceInfoImpl
.
insert
(
instanceInfo
);
tags
=
newInfo
.
getTag
();
instanceIds
.
add
(
newInfo
.
getId
());
instanceInfo
.
setId
(
newInfo
.
getId
());
instanceInfos
.
add
(
instanceInfo
);
}
}
ElbInfo
elbInfo
=
new
ElbInfo
();
elbInfo
.
setCloudType
(
instance
.
getCloudType
());
elbInfo
.
setName
(
instance
.
getName
());
elbInfo
.
setNetType
(
instance
.
getNetType
());
elbInfo
.
setAddress
(
instance
.
getAddress
());
elbInfo
.
setPorts
(
StringUtils
.
join
(
instance
.
getPorts
(),
','
));
int
elbId
=
elbInfoImpl
.
insert
(
elbInfo
,
domainIds
,
instanceIds
);
elbInfo
.
setId
(
elbId
);
response
=
new
CommElbInfoResponse
();
response
.
setId
(
elbInfo
.
getId
());
response
.
setCloudType
(
elbInfo
.
getCloudType
());
response
.
setName
(
elbInfo
.
getName
());
response
.
setNetType
(
elbInfo
.
getNetType
());
response
.
setAddress
(
elbInfo
.
getAddress
());
response
.
setPorts
(
elbInfo
.
getPorts
());
response
.
setTags
(
tags
);
listResponse
.
add
(
response
);
}
}
catch
(
Exception
e
){
logger
.
error
(
"CloudLbServiceImpl - getElbInfos - error"
,
e
);
}
return
listResponse
;
}
@Override
public
List
<
ElbInfo
>
getElbInfoFromDb
(
int
cloudType
)
{
try
{
...
...
monitor-service-awstools/src/main/java/com/monitor/cloudtools/util/DnsPodUtil.java
View file @
afc3270
package
com
.
monitor
.
cloudtools
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.monitor.cloudtools.model.DnsPodRes
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.util.LinkedMultiValueMap
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -16,29 +9,12 @@ import java.util.List;
* Created by xh on 2017/6/14.
*/
public
class
DnsPodUtil
{
public
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
"cloudLbLogger"
);
private
static
String
login_token
=
"31578,5f5402160468dc375159e2e94eeef1da"
;
private
static
String
format
=
"json"
;
/**
* yoho.cn
*/
public
static
List
<
DnsPodRes
>
getDnsPod1
(){
List
<
DnsPodRes
>
listRes
=
new
ArrayList
<>();
MultiValueMap
<
String
,
String
>
requestEntity
=
new
LinkedMultiValueMap
<>();
requestEntity
.
add
(
"login_token"
,
login_token
);
requestEntity
.
add
(
"format"
,
format
);
requestEntity
.
add
(
"domain_id"
,
"16862974"
);
try
{
RestTemplate
restTemplate
=
new
RestTemplate
();
String
yoho
=
restTemplate
.
postForObject
(
"https://dnsapi.cn/Record.List"
,
requestEntity
,
String
.
class
);
JSONObject
responseJSON
=
JSONObject
.
parseObject
(
yoho
);
listRes
=
JSON
.
parseArray
(
responseJSON
.
getString
(
"records"
),
DnsPodRes
.
class
);
}
catch
(
Exception
e
){
logger
.
error
(
" - DnsPodUtil - getDnsPod1 - error"
,
e
);
}
return
listRes
;
}
...
...
@@ -48,7 +24,7 @@ public class DnsPodUtil {
*/
public
static
List
<
DnsPodRes
>
getDnsPod2
(){
List
<
DnsPodRes
>
listRes
=
new
ArrayList
<>();
MultiValueMap
<
String
,
String
>
requestEntity
=
new
LinkedMultiValueMap
<>();
/*
MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
requestEntity.add("login_token", login_token);
requestEntity.add("format",format);
requestEntity.add("domain_id", "20765505");
...
...
@@ -59,8 +35,7 @@ public class DnsPodUtil {
listRes = JSON.parseArray(responseJSON.getString("records"), DnsPodRes.class);
}catch (Exception e){
logger.error(" - DnsPodUtil - getDnsPod2 - error", e);
}
}*/
return
listRes
;
}
}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment