vRealize Log Insight 의 REST API 호출해서 로그 가져오기
curl -k -X POST https://loginsight.example.com:9543/api/v1/sessions \
-d '{"username":"admin","password":"Secret!","provider":"Local"}'
{
"userId":"3c1b81cc-418e-44c0-b91a-54e10a87b1d3",
"sessionId":"1234abcd-opaque-bearer-token-abcdlS7QF2hkqVho==",
"ttl":1800
}
2. 위 sessionId 값을 아래와 같이 HTTP 프로토콜의 Authorization 헤더값으로 사용해서 필요한 API 를 호출하면 됨
curl -k https://loginsight.example.com:9543/api/v1/sessions/current \
--header "Authorization: Bearer 1234abcd-opaque-bearer-token-abcdlS7QF2hkqVho=="
{
"userId":"3c1b81cc-418e-44c0-b91a-54e10a87b1d3"
}
* 단 주의할 것은 대부분의 인증 토큰은 유효기간이 있는데, vRLI 도 마찬가지로 유효기간이 있고 그 값은 위 ttl : 1800(초) 임
즉 토큰 발급 후 1800초 가 지나면 expire 되어 API 호출하면 Timeout 되었다는 식의 에러가 리턴됨
3. 특정 문구를 포함하는 로그만 가져오기
아래 예는 Test 문구를 포함하는 로그를 가져옴
CONTAINS Test 를 URL encode 하면 CONTAINS%20Test
curl -k https://loginsight.example.com:9543/api/v1/events/text/CONTAINS%20Test \
--header "Authorization: Bearer 1234abcd-opaque-bearer-token-abcdlS7QF2hkqVho=="
4. 특정 ESXi 호스트에서 발생하는 로그만 가져오기
CONTAINS devhost 를 URL encode 하면 CONTAINS%20devhost
curl -k https://loginsight.example.com:9543/api/v1/events/hostname/CONTAINS%20devhost \
--header "Authorization: Bearer 1234abcd-opaque-bearer-token-abcdlS7QF2hkqVho=="
5. vmkernel.log 같이 특정 로그 파일만 가져오기
appname/CONTAINS 에 vmkernel 입력
curl -k https://loginsight.example.com:9543/api/v1/events/appname/CONTAINS%20vmkernel \
--header "Authorization: Bearer 1234abcd-opaque-bearer-token-abcdlS7QF2hkqVho=="
다른 특정 로그 파일은 appname/CONTAINS 에 다른 값을 입력하면 됨
vmkwarning.log -> vmkwarning
fdm.log -> fdm
vobd.log -> vobd
hostd.log -> hostd
* syslog.log 파일은 appname syslog 로 검색되지 않고, 아래와 같이 syslog.log 파일에 있는 각 로그에서 :(콜론) 으로 구분된 앞의 이름을 appname/ 에 넣어야 검색 됨
아래 같은 경우 appname 이 crond, backup.sh, sfcb-vmware_base 이렇게 구분 됨
2021-03-12T05:01:00Z crond[2099226]: USER root pid 3612231 cmd /sbin/auto-backup.sh
2021-03-12T05:01:01Z backup.sh[3612258]: Locking esx.conf
2021-03-12T05:01:01Z backup.sh[3612258]: Creating archive
2021-03-12T05:01:01Z backup.sh[3612258]: Unlocking esx.conf
2021-03-12T05:02:34Z sfcb-vmware_base[2100821]: VMwareHypervisorStorageExtent::fillVMwareHypervisorStorageExtentInstance - Problem instantiating instance.
curl -k https://loginsight.example.com:9543/api/v1/events/hostname/CONTAINS%20devhost/appname/CONTAINS%20vmkernel \
--header "Authorization: Bearer 1234abcd-opaque-bearer-token-abcdlS7QF2hkqVho=="
7. 특정 호스트에서 발생하는 특정 로그 파일을 특정 기간 발생한 로그만 가져오기
timestamp/ 뒤에 시간값을 입력하는 이상, 이하, 미만, 초과 등의 값이 가능함
시간값은 epch time 이고 밀리세컨드 단위임
아래 예제 timestamp/%3E%3D1615680000000 -> timestamp/>=1615680000000
1615680000000 밀리세컨드 -> 2021년 March 14일 Sunday AM 12:00:00
timestamp/%3C%3D1615766399000 -> timestamp/<=1615766399000
Epoch time 변환은 다음 사이트 참고 (https://www.epochconverter.com/)
curl -k https://loginsight.example.com:9543/api/v1/events/hostname/CONTAINS%20devhost/appname/CONTAINS%20vmkernel/timestamp/%3E%3D1615680000000/timestamp/%3C%3D1615766399000 \
--header "Authorization: Bearer 1234abcd-opaque-bearer-token-abcdlS7QF2hkqVho=="
8. VM 마다 생기는 vmware.log 파일은 기본적으로 Log Insight 에서 검색이 안되나,
아래 URL 참고해서 VM 마다 파라미터 설정을 하면 검색이 가능함
9. Log Insight API 에 대한 자세한 내용은 아래 URL 참고
https://<vRLI IP>//rest-api 라고 입력하면 getting started 가이드 나옴
https://vmw-loginsight.github.io/#Getting-started-with-the-Log-Insight-REST-API
댓글 없음:
댓글 쓰기