LogDNA API를 사용하여 로그 내보내기

2187 단어 ibmcloudLogDNA
LogDNA에서는 REST API를 이용하여 로그를 내보낼 수 있다. 물론 GUI에서도 로그 검색이나 내보내기를 할 수 있지만, 환경에 따라서는 (예를 들면 IBM Cloud에서 이용할 수 있는 LogDNA의 서비스에서는) GUI의 조작이 모서리 하고 있는 일이 있기 때문에, API를 이용하는 편이 빠르거나 한다.

서비스 키 등록



이것은 GUI에서 수행됩니다. 이미 등록되어 있으면 불필요하지만, 없는 경우는 "Generate Service Key"를 눌러 작성한다.



API 호출



공식 API 참조을 참조하여 필요한 매개 변수를 설정합니다.
from과 to는 필수 파라미터가 된다. 또한 UNIX 시간으로 입력해야합니다.

다음과 같이 명령을 실행합니다.
curl -sS "https://api.jp-tok.logging.cloud.ibm.com/v1/export?from=$(($(date +%s)-2592000))000&to=$(date +%s)000&hosts=<対象ホスト>&apps=<対象ログ名など>&query=<検索キーワード>&size=20000" \
-u "SERVICE_KEY:<サービスキー>" | jq -r '._line'
  • 이 예에서는, IBM Cloud 도쿄 리전에 배치한 인스턴스를 타겟으로 해, 현재 시각으로부터 30일 전까지(IBM Cloud의 LogDNA 서비스의 최대 보관 일수), 사이즈는 2만행으로 지정하고 있다.
  • 공식 API 레퍼런스에서는 size는 최대 10000의 기재가 있지만, 실제로는 20000까지 유효.
  • JSONL 형식으로 내보내집니다. 로그 본문 만 추출하려면 jq 명령으로 ._line를 추출하는 것이 좋습니다.
  • 어쨌든, from=30일전, to=현재라고 하는 지정에서도, 신→구의 순서로 결과가 반환되므로, 역순으로 하고 싶은 경우는 tac 커멘드를 사용하는 것이 좋다고 생각한다.
  • query 부분은 GUI를 이용하고 있을 때와 같이, OR나 AND, 마이너스 조건을 지정하는 것이 가능. URL 인코딩이 필요하기 때문에, 예를 들면 ABC OR XYZ 라고 하는 조건으로 지정하고 싶은 경우는 ABC+OR+XYZ 라고 기재한다.
  • apps의 위치는 app로 지정해도 동작한다. 라고 할까, 나의 경험에서는 apps로 할까 app로 할지에 의해, 다른 결과가 반환되는 일이 있었다…(apps에서는 히트 하지 않는 것도). 둘 다 시도해 보는 것이 좋습니다.
  • 좋은 웹페이지 즐겨찾기