api_utils
1.0.0
API에 액세스하기 위한 샘플 프로그램
API를 통해 데이터에 액세스하고 실행하는 데 도움이 되는 Python과 Perl의 두 가지 프로그램이 있습니다.
이들 프로그램 중 하나가 작동하려면 ~/.shadowserver.api라는 파일이 존재하고 API 키와 비밀을 포함해야 합니다. 예를 들면:
[api]
key = <<API-KEY>>
secret = <<SECRET>>
uri = https://transform.shadowserver.org/api2/
이와 같은 오류가 발생하면 쿼리가 많은 데이터를 처리하고 있어 프로그램의 시간 제한을 늘려야 함을 의미합니다.
$ ./call-api.py reports/query '{"report":"united-states", "date":"2020-10-27", "query":{"city":"ashburn"}, "limit":3}' pretty
API Exception: The read operation timed out
자세한 내용은 https://github.com/The-Shadowserver-Foundation/api_utils/wiki에서 확인할 수 있습니다.
이 프로그램은 보고서 API를 활용하여 처리를 위해 새 보고서를 다운로드할 때 알림을 보내는 옵션과 함께 파일 시스템 트리를 유지 관리합니다.
대기열 옵션:
사용법: report-manager.py /path/to/config.ini [ days ]
선택적 '일' 인수는 보고서를 다운로드할 이전 일수입니다. 기본값은 2입니다.
샘플 구성 파일:
[reports]
directory = /var/tmp/reports
min_disk_free = 512
notifier = none
url_prefix = http://myserver/reports/
[stomp]
server = 127.0.0.1
port = 61613
user = guest
password = guest
queue = /queue/mytest
[redis]
server = 127.0.0.1
port = 6379
;password = guest
queue = mytest
[kafka]
server = 127.0.0.1
port = 9092
queue = mytest
[reports] 섹션은 필수이며 'directory' 키를 포함해야 합니다.
설정:
[reports] 섹션에 '알림자'가 구성된 경우 이름이 일치하는 추가 섹션이 필요합니다.
설정:
알림 항목은 타임스탬프, 보고서 날짜, 보고서 유형 및 URI를 포함하는 JSON 개체입니다.
{
"timestamp" : "2022-09-01 11:32:45",
"report_date" : "2022-08-31",
"report_type" : "scan_stun",
"uri" : "http://myserver/reports/2022/08/31/2022-08-31-scan_stun_example_com-asn.csv"
}
시간당 한 번씩 새로운 다운로드를 확인하는 crontab의 예:
15 * * * * /opt/shadowserver/report-manager.py /opt/shadowserver/reports.ini