SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Windows から Hinemos のカスタムトラップを起動させる要求を送信する

leave a comment

Hinemos にはカスタムトラップという JSON フォーマットのリクエストを Hinemos に送信することで監視設定を起動することができる機能があります。

curl を使用した例については カスタムトラップ監視を利用する 等で紹介されています。

Linux で実行した場合は問題ないと思うのですが、Windows で実行した場合、「curl: (52) Empty reply from server」のエラーが発生していたため、テスト目的の curl を Windows から送信する場合の暫定的な対応を残しておきたいと思います。

Windows からカスタムトラップを起動させる

コマンドプロンプトから実行する

今回使用しているコマンドは次の内容相当のものとなります。

 curl -H "Accept: application/json"  -H "Content-type: application/json; charset=utf-8"  -X POST  -d '{"FacilityID":"rhel-hinemos","DATA":[{"DATE":"2024-09-03 22:34:41","MSG":15,"KEY":"key_num","TYPE":"NUM"}]}'  http://10.200.0.8:8082 -v

 

このコマンドを Linux で実行した場合は、次の画像のように正常に終了しています。

image

同じコマンド (改行の設定は Windows 向けに変更) を Windows で実行してみると、前述のようにエラーが発生します。

image

要求を UTF-8 で送信したいのですが、コマンドプロンプトから送信した場合、これが上手く実行できずエラーとなってしまっているようです。

暫定の対応としては、送信したいリクエストを UTF-8 のテキストファイルとして保存して、そのファイルの内容を送信するようにします。以下のコマンドの例では input.txt は UTF-8 で保存されたテキストファイルとなります。

curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "@c:\temp\input.txt" http://10.200.0.8:8082 -v

このような送信を実行した場合は期待した動作となり、正常にリクエストを送信することができます。

image

また、cmd.exe / powershell.exe から実行した場合はこのエラーとなるようで、、pwsh.exe で起動したターミナルであればファイルを使用しなくても直接送信することができました。

 

PowerShell から実行する

PowerShell から実行する場合は次のようなスクリプトで実行できます。

$uri = "http://10.200.0.8:8082"
$body = @{
    "FacilityID" = "rhel-hinemos"
    "DATA" = @(
        @{
            "DATE" =(Get-Date -Format "yyyy-MM-dd HH:mm:ss").ToString()
            "TYPE" = "NUM"
            "KEY" = "key_num"
            "MSG" = 15
        }
    )
}

$json = $body | ConvertTo-Json -Compress
$utf8bytes = [System.Text.Encoding]::UTF8.GetBytes($json)

$header = @{
    "Content-type" =  "application/json;charset=utf8"
    "Content-Length" = $utf8bytes.Length
}
Invoke-WebRequest -Uri $uri -Method Post -Headers $header -Body $utf8bytes -Verbose

 

このようなスクリプトを使用することで PowerShell からカスタムトラップのリクエストを送信することができます。

image

Share

Written by Masayuki.Ozawa

9月 4th, 2024 at 9:32 pm

Posted in Hinemos

Tagged with

Leave a Reply