기타 조회 API¶
가상호스트 목록조회 API¶
가상호스트 목록을 조회한다.
GET /monitoring/vhostslist
Response code |
설명 |
---|---|
|
성공 |
|
실패 |
결과는 JSON형식으로 제공된다.
{
"version": "2.0.0",
"method": "vhostslist",
"status": "OK",
"result": [ "www.example.com","www.winesoft.com", "site1.com" ]
}
캐싱정보 API¶
캐싱하고 있는 파일상태를 모니터링한다.
일반적으로 파일은 URL로 구분되지만 같은 URL에 다른 옵션(i.e. Accept-Encoding
헤더등)이 존재하는 경우 여러 개의 파일이 존재할 수 있다.
GET /monitoring/fileinfo
Query Parameter |
설명 |
---|---|
|
조회할 URL GET /monitoring/fileinfo?url=example.com/sample.dat
|
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 쿼리스트링 |
|
실패. URL을 찾을 수 없음 |
|
실패. RT 미구동 |
결과는 JSON형식으로 제공된다. 다음은 응답 Body 예제이다.
{
"version": "2.0.0",
"method": "fileinfo",
"status": "OK",
"result":
[
{
"URI": "/sample.dat",
"Accept-Encoding": "N",
"UseOriginEncoding": "N",
"RefCount": 0,
"Size": 2100267,
"CachedSize": 2100267,
"Disk-Index": 0,
"FID": 24267,
"LocalPath": "/cache1/example.com/000i/q3.bin",
"File-Opened ": "N",
"File-Updating": "-",
"Downloader-Count": "0",
"LastAccess": "[ 2012.09.03 14:29:50, -2 ]",
"CreatedTime": "[ 2012.09.03 13:53:43, -2169 ]",
"UpdateTime": "[ 2012.09.03 13:53:43, -2169 ]",
"TTL-Left": "[ 2012.10.03 13:53:43, 2589831 ]",
"ResponseCode": 200,
"ContentType": "text/plain",
"LastModifiedTime": "[ 2010.11.22 20:31:47, -56224685 ]",
"ExpireTime": "[ 0, 0 ]",
"CacheControl": "not-specified",
"ETag": "502dd614:200c2b",
"NoMoreExist": "N",
"LocalFileExist": "Y",
"SmallFile": "N",
"State": "Cached",
"Phantom": "N",
"Remove": "N",
"Deleted": "N",
"AddedSize": "Y",
"TransferEncoding": "N",
"Compression": "-",
"Purge": "N",
"HardPurge": "N",
"Ignore-IMS ": "N",
"Fragmented": "N",
"Redirect-Location ": "-",
"Content-Disposition ": "-",
"NoCache": "N",
"CorrectedInitAge": "0",
"OriginalHeaders": "-",
"HashKey": "20424837394",
"VHost": "foo.com"
}
]
}
URI
파일 URIAccept-Encoding
(“Y” or “N”) Accept-Encoding을 지원한다면 “Y”UseOriginEncoding
(“Y” or “N”) 원본 캐싱시 compression.useOriginEncoding
설정이 활성화상태였다면 “Y”RefCount
파일참조 카운트Size
(Bytes) 파일크기 (=Content-Length
)CachedSize
(Bytes) 캐싱된 용량Disk-Index
(0부터 시작) 저장된 디스크 인덱스FID
파일 IDLocalPath
로컬 경로File-Opened
(“Y” or “N”) 로컬파일을 열고 있다면 “Y”File-Updating
파일을 갱신 중이라면 갱신하는 객체의 포인터가 명시Downloader-Count
원본서버에서 이 파일을 다운로드 받는 현재 세션의 개수LastAccess
(마지막 접근시간, 마지막 접근시간-현재시간) [ 2012.09.03 14:29:50, -2 ]의 의미는 2012.09.03 14:29:50에 접근됐으며 현재로부터 2초 전에 접근됐다는 의미이다.CreatedTime
객체 생성시간UpdateTime
(갱신시간, 갱신시간-현재시간) 파일이 마지막으로 갱신된 시간.304 Not Modified
에도 시간은 갱신된다.TTL-Left
(만료시간, 만료시간-현재시간) 컨텐츠 만료 예정시간. TTL이 남았다면 양수로, 만료됐다면 음수로 표기된다.ResponseCode
원본서버 응답코드ContentType
MIME TypeLastModifiedTime
원본서버가 보낸 Last Modified Time. 원본서버가 이 값을 보내지 않았다면 0으로 표시된다.ExpireTime
원본서버가 보낸 Expire Time. 원본서버가 이 값을 보내지 않았다면 0으로 표시된다.CacheControl
(“no-cache” or “not-specified” or (정수)) 원본서버가 보낸 Cache-Contorl 값ETag
M2가 생성한 ETagNoMoreExist
(“Y” or “N”) 파일을 파기예약되어 있다면 “Y”LocalFileExist
(“Y” or “N”) 로컬에 파일이 존재하면 “Y” (200 OK가 아닌 파일들은 항상 “Y”)SmallFile
(“Y” or “N”) 파일을 작은파일로 판단한다면 “Y” (개발적인 이유)State
(“Not Init” or “Cached” or “Error”) 파일 상태Phantom
(“Y” or “N”) 객체가 phantom 상태라면 “Y”Remove
(“Y” or “N”) FID에 해당하는 로컬파일이 삭제되었다면 “Y” (개발적인 이유)Deleted
(“Y” or “N”) 객체가 삭제되었다면 “Y” (개발적인 이유)AddedSize
(“Y” or “N”) 크기가 통계에 반영되었다면 “Y” (개발적인 이유)TransferEncoding
(“Y” or “N”) Transfer-Encoding을 지원한다면 “Y”Compression
압축방식Purge
(“Y” or “N”) Purge 됐다면 “Y”HardPurge
(“Y” or “N”) HardPurge 됐다면 “Y”Ignore-IMS
(“Y” or “N”) 갱신할 때 If-Modified-Since헤더를 보내지 않도록 설정되었다면 “Y”Fragmented
(“Y” or “N”) limitMaxRange 설정에 의해 분할 다운로드/저장된다면 “Y”Redirect-Location
Location 헤더 값Content-Disposition
Content-Disposition 헤더 값NoCache
(“Y” or “N”) 원본서버에서 no-cache응답을 줬다면 “Y”OriginalHeaders
cacheOriginal 설정이 활성화된 상태에서 캐싱된 원본 비표준 헤더리스트HashKey
캐싱객체의 고유 해쉬키VHost
가상호스트 이름
원본상태 모니터링 API¶
가상호스트의 원본상태를 모니터링한다.
GET /monitoring/origin
Query Parameter |
설명 |
---|---|
|
조회할 가상호스트명. 없다면 전체 가상호스트를 대상으로 수행한다. # 모든 가상호스트 조회
GET /monitoring/origin
# 특정 가상호스트 조회
GET /monitoring/origin?vhost=www.example.com
|
Response code |
설명 |
---|---|
|
성공 |
|
실패. RT 미구동 |
결과는 JSON형식으로 제공된다.
{
"origin" :
[
{
"VirtualHost" : "example.com",
"Address" :
[
{ "1.1.1.1" : "Active" },
{ "1.1.1.2" : "Active" }
],
"Address2" : [ ],
"ActiveIP" :
[
{ "1.1.1.1" : 0 },
{ "1.1.1.2" : 0 }
] ,
"InactiveIP" : [ ]
},
{
"VirtualHost" : "foobar.com",
"Address" :
[
{ "origin.foobar.com" : "Active" }
],
"Address2" : [ ],
"ActiveIP" :
[
{ "5.5.5.5" : 21 },
{ "5.5.5.6" : 60 },
{ "5.5.5.7" : 37 }
],
"InactiveIP" :
[
{ "5.5.5.8" : 10 },
{ "5.5.5.9" : 184 }
]
}
]
}
VirtualHost
가상호스트 이름Address
원본주소. 설정주소가 사용중이라면Active
, (장애발생으로) 사용하고 있지 않다면Inactive
로 표시된다.Address2
보조 원본주소. 설정주소를 사용중이라면Active
, 사용하고 있지 않다면Inactive
로 표시된다.ActiveIP
사용 중인 IP목록과 TTL. 원본서버를 IP로 설정하면Address
와 동일한 IP에 TTL은 0으로 표시된다. Domain으로 설정하면 Resolving결과에 따른다. 다양한 IP와 TTL을 사용한다.InactiveIP
사용하지 않는 IP목록과 TTL. 사용하지 않더라도 복구 중이거나 HealthChecker에 의해 관리될 수 있다. 해당 주소는 TTL 동안 복구되지 않으면 삭제된다.
원본상태 초기화 API¶
가상호스트의 원본서버 배제/복구를 초기화한다. 또한 현재 사용 중인 세션을 재사용하지 않고 새롭게 연결을 생성한다.
GET /command/resetorigin
Query Parameter |
설명 |
---|---|
|
초기화할 가상호스트명. 없다면 전체 가상호스트를 대상으로 수행한다. # 모든 가상호스트
GET /command/resetorigin
# 특정 가상호스트
GET /command/resetorigin?vhost=www.example.com
|
Response code |
설명 |
---|---|
|
성공 |
|
실패. 가상호스트 없음. |
|
실패. RT 미구동 |
하드웨어 조회 API¶
하드웨어 정보를 조회한다.
GET /monitoring/hwinfo
Response code |
설명 |
---|---|
|
성공 |
결과는 다음과 같다.
{
"version": "22.02.0",
"method": "hwinfo",
"status": "OK",
"result": {
"OS": "Linux version 3.10.0-1062.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Wed Aug 7 18:08:02 UTC 2019",
"Issue": "",
"ProductVer": "22.02.0",
"CPU": {
"ProcCount": "4",
"Model": "Intel(R) Xeon(R) Gold 6132 CPU @ 2.60GHz",
"MHz": "2593.906",
"Cache": "19712 KB",
"AES-NI": "Supported"
},
"Memory": "32 GB",
"NIC": [
{
"Dev": "ens192",
"Model": "VMware VMXNET3 Ethernet Controller (rev 01)",
"IP": "192.168.60.61",
"MAC": "00:50:56:01:0e:58"
}
],
"Disk": [
{
"Dev": "mapper/centos-root",
"Model": "",
"Total": "18461229056",
"Usage": "6926540800"
},
{
"Dev": "sda",
"Model": "VMware Virtual disk (scsi)",
"Total": "995790848",
"Usage": "158748672"
}
]
}
}
CipherSuite 조회 API¶
CipherSuite 설정결과를 조회한다. CipherSuite표현식은 OpenSSL 1.0.0E 를 준수한다.
GET /monitoring/ssl
Query Parameter |
설명 |
---|---|
|
조회할 CipherSuite |
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 CipherSuite |
|
실패. RT 미구동 |
결과는 JSON형식으로 제공된다.
{
"version": "2.0.0",
"method": "ssl",
"status": "OK",
"result":
[
{
"Name" : "AES128-SHA",
"Ver" : "SSLv3",
"Kx" : "RSA",
"Au" : "RSA",
"Enc" : "AES(128)",
"Mac" : "SHA1"
},
{
"Name" : "AES256-SHA",
"Ver" : "SSLv3",
"Kx" : "RSA",
"Au" : "RSA",
"Enc" : "AES(256)",
"Mac" : "SHA1"
}
]
}
Geo IP 조회 API¶
GeoIP가 설정되어 있다면 파일목록을 조회한다.
GET /monitoring/geoiplist
Response code |
설명 |
---|---|
|
성공 |
|
실패. 로컬 GeoIP 미구성 |
결과는 JSON형식으로 제공된다.
{
"version": "2.0.0",
"method": "geoiplist",
"status": "OK",
"result":
{
"path" : "/usr/m2/geoip/",
"files" :
[
{
"file" : "GeoIP.dat",
"size" : 766255
},
{
"file" : "GeoLiteCity.dat",
"size" : 12826936
}
]
}
}
비동기 무효화 조회 API¶
See also
비동기 무효화가 활성화되어 있다면 등록된 무효화 요청을 아래와 같이 조회할 수 있다.
# 전체 가상호스트의 비동기 무효화 요약정보
GET /monitoring/asynctrl/actives
# 특정 가상호스트들의 비동기 무효화 요약정보
GET /monitoring/asynctrl/actives?vhosts=foo.com,bar.com
# 전체 가상호스트의 비동기 무효화 상세정보
GET /monitoring/asynctrl/actives?detail=true
# 특정 가상호스트의 비동기 무효화 상세정보
GET /monitoring/asynctrl/actives?vhosts=foo.com,bar.com&detail=true
Query Parameter |
설명 |
---|---|
|
쿼리스트링이 없다면 전체 가상호스트를 조회한다. 콤마로 멀티 가상호스트 입력이 가능하며 해당 가상호스트만 조회한다. |
|
쿼리스트링이 |
Response code |
설명 |
---|---|
|
성공 |
상세정보 응답은 vhosts[].prectrl.list
를 제공한다.
{
"queue": {
"used": 3,
"max": 100000
},
"prectrl": {
"firstonly": true,
"max": 1024
},
"vhosts": [
{
"name": "foo.com",
"prectrl": {
"enable": true,
"used": 3,
"max": 1024,
"list": [
{
"command": "purge",
"timestamp": "2023-01-13T08:58:34Z",
"url": "/*.jpg"
},
{
"command": "purge",
"timestamp": "2023-01-13T08:58:35Z",
"url": "/*.bmp"
},
{
"command": "purge",
"timestamp": "2023-01-13T08:58:36Z",
"url": "/*"
}
]
}
},
{
"name": "bar.com",
"prectrl": {
"enable": true,
"used": 0,
"max": 1024,
"list": [
]
}
}
]
}