item.getでの絞り込みについて
curl -s -d '
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"selectHosts": "extend",
"groupids": "146",
"sortfield": "name"
},
"auth": "'${auth}'",
"id": 1
}
' -H "Content-Type: application/json-rpc" ${ZabbixWeb}api_jsonrpc.php
echo ""
上記getコマンドの結果下記のように出力されますが、
"itemid": "XXXX", ※アイテムID
"type": "XX", ※監視タイプ
"hostid": "XXXXX", ※id
"name": "XXXXX", ※アイテム名
"key_": "XXXXXX", ※アイテムキー
"delay": "XXXXX", ※更新間隔
"status": "XXXX", ※アイテムステータス
"value_type": "XX", ※タイプ
"description": "XXX", ※説明
"name": "XXXXXX", ※ホスト名
その結果の値の部分(XXXX)の部分を
カンマ区切りで出力する方法はないでしょうか。
例
XXX;XXX;XXXX;XXX;XXX;XXXX;XXX;XXXX;XXXX;XXXX;XXXX;XXXX
host;itemid;type;name;key_;delay;value_type;description;status
理由
出力したCSVを編集して
item.updateの引数にしたいため
(ホスト名も入れているのは何を編集しているのかわかりやすくするためで、item.update時には使用しない)
よろしくお願いします。
TNK - 投稿数: 4755
APIを呼び出して出力される結果のフォーマットはCSVではなくJSON
ですので、JSONを加工してそれぞれの値を取り出し、mushima6157
さんが望むフォーマットに加工して出力するスクリプトを作成され
ると良いと思います。