はじめに
さくっとWebページの情報取ってきたりREST API叩きたい・・・!
Splunkを使っていたら一度は思ったことがあるはずです。
そんなあなたはラッキーです。
2024年12月現在、神ツールがあります。
Webtools Add-on
https://splunkbase.splunk.com/app/4146
なんと、SPL内でcurlを叩けます。
なんと、Splunk Cloudにも対応しています。
早速やってみましょう。
インストール
普通にSHにインストールしてください。
特に設定も不要です。
curlを叩いてみる
ターゲット
例えばAttlassianが提供するStatuspageは各社で使われています。
Splunk Observability Cloudのステータスもこちらで公開しています。
Statuspageでは/api/v2/status.json
を付けることでJSONで結果を返してくれます。
これを叩いてみましょう。
curl実行
これだけ。
| makeresults
| curl method=get uri="https://status.jp0.signalfx.com/api/v2/status.json"
あとはフィールド抽出するなりダッシュボード化するなりアラート定義するなり。
フィールドの値を読み取ることもできます。
| makeresults
| eval urls=split("https://status.jp0.signalfx.com/api/v2/status.json,https://status.zoom.us/api/v2/status.json",",")
| stats count by urls
| curl method=get urifield=urls
もちろん通常のWebページにも実行でき、その場合はHTMLが返ります。
頑張ってこれを処理するのでも。
オプション
このコマンドの使用方法はSplunkbaseのDetailsに細かく書いてあります。
例えば以下のようなことができます。
- POST
- BASIC認証
- カスタムヘッダー
注意点として、このcurlはhttpsに対してのみ実行できます。
httpに実行しようとするとエラーが発生します。
(Splunk Cloud対応する際のセキュリティ制約のため)
値の保存
結果はメモリ上にしか残っていないので、必要に応じてスケジュール化し| outputlookup
や| collect
で出力しましょう。
おわりに
便利な時代になりましたね。
Happy Splunking!