A、APIの紹介
APIによって、完全に自動化された操作は、削除エージェント、およびその他の関連のテンプレートを追加します。
します。https://www.zabbix.com/documentation/3.4/zh/manual/api公式ドキュメントをインストールするためのAPI
APIは、1つの管理です、二つの機能、1クエリを提供します。
ユーザーパスワードとパスワードの確認要求がポストZABBIXサーバ側に送信され、結果を得る戻り値トークン:
curlコマンド:
-s:サイレントモード -X:指定した操作方法 -H:カスタマイズ・ヘッダ・コンテンツ -d:提出されます。http指定されたコンテンツ
(1)トークン値を取得するには、あなたはZABBIXサーバのサーバのユーザ名とパスワードを指定する必要があります
[ルート@ドッキングウィンドウ-ノード4〜]#カール-s -X POST -H 'のContent-Type:アプリケーション/ JSON' -d " { "JSONRPC": "2.0"、 "メソッド": "user.login"、 "のparams":{ "ユーザー": "管理者"、#ZABBIXサーバー用户名 "パスワード": "123456" #ZABBIX serever密码 }、 "ID":1 }「Http://192.168.7.100/zabbix/api_jsonrpc.php |サーバホストのパイソン-m json.tool#ZABBIXサーバのIPアドレス #以下は、トークンの値が得られます { "ID":1、 "JSONRPC": "2.0"、 「結果」:トークン値を「d22b88e46b411f3db0997d54afb06c0e」を取得# }
(2)すべてのホストに関する情報を取得します
#カール-s -X POST -H 'のContent-Type:アプリケーション/ JSON' -d " { "JSONRPC": "2.0"、 "メソッド": "host.get"、 "のparams":{ "出力":[ "ホスト"] }、 「認証」:クエリ「d22b88e46b411f3db0997d54afb06c0e」、上記にトークン値の# "ID":1 }「Http://192.168.7.100/zabbix/api_jsonrpc.php |のpython -m json.tool#ZABBIXサーバのサーバのIPアドレス #以下は、すべてのホストの戻り値であります { "ID":1、 "JSONRPC": "2.0"、 "結果":[ { "ホスト": "のZabbixサーバ"、 "ホストID": "10084" }、 { "ホスト": "192.168.7.101"、 "ホストID": "10278" }、 { "ホスト": "192.168.7.101-nginxの"、 "ホストID": "10289" }、 { "ホスト": "192.168.7.102"、 "ホストID": "10290" } ] }
(3)は、すべてのユーザー情報を取得します。
[ルート@ドッキングウィンドウ-ノード4〜]#カール-s -X POST -H 'のContent-Type:アプリケーション/ JSON' -d " { "JSONRPC": "2.0"、 "メソッド": "user.get"、 "のparams":{ 「出力」:「拡張」 }、 「認証」:「d22b88e46b411f3db0997d54afb06c0e」は、#のトークン値の上に乗ります "ID":1 }」http://192.168.7.100/zabbix/api_jsonrpc.php | python -m json.tool #以下は、戻り値であり、 { "ID":1、 "JSONRPC": "2.0"、 "結果":[ { 「エイリアス」:「管理者」、 "attempt_clock": "0"、 "attempt_failed": "0"、 "attempt_ip": ""、 "自動ログイン": "1"、 "自動ログアウト": "0"、 "LANG": "がzh_CN"、 "名前": "Zabbixの"、 「リフレッシュ」:「30代」、 "rows_per_page": "50"、 「姓」:「管理者」、 「テーマ」:「デフォルト」、 "タイプ": "3"、 "URL": ""、 "ユーザーID": "1" }、 { 「エイリアス」:「ゲスト」、 "attempt_clock": "0"、 "attempt_failed": "0"、 "attempt_ip": ""、 "自動ログイン": "0"、 「自動ログアウト」:「15メートル」、 "LANG": "表すen_GB"、 "名前": ""、 「リフレッシュ」:「30代」、 "rows_per_page": "50"、 "姓": ""、 「テーマ」:「デフォルト」、 "タイプ": "1"、 "URL": ""、 "ユーザーID": "2" }、 { "エイリアス": "VIP"、 "attempt_clock": "0"、 "attempt_failed": "0"、 "attempt_ip": ""、 "自動ログイン": "0"、 "自動ログアウト": "0"、 "LANG": "がzh_CN"、 "名前": ""、 「リフレッシュ」:「30代」、 "rows_per_page": "50"、 "姓": ""、 「テーマ」:「デフォルト」、 "タイプ": "3"、 "URL": ""、 "ユーザーID": "3" } ] }
(4)テンプレートページZABBIXの情報を得ます
#カール-s -X POST -H 'のContent-Type:アプリケーション/ JSON' -d " { "JSONRPC": "2.0"、 "メソッド": "template.get"、 "のparams":{ 「出力」:「拡張」、 "フィルタ":{ "ホスト": [ "NGINX_Check_Statuc" ] } }、 "AUTH": "d22b88e46b411f3db0997d54afb06c0e"、 "ID":1 }」http://192.168.7.100/zabbix/api_jsonrpc.php | python -m json.tool #以下は、戻り値であり、 { "ID":1、 "JSONRPC": "2.0"、 "結果":[ { "auto_compress": "1"、 "利用可能": "0"、 "説明": ""、 "disable_until": "0"、 "エラー": ""、 "errors_from": "0"、 "フラグ": "0"、 "ホスト": "NGINX_Check_Statuc"、 "ipmi_authtype": "-1"、 "ipmi_available": "0"、 "ipmi_disable_until": "0"、 "ipmi_error": ""、 "ipmi_errors_from": "0"、 "ipmi_password": ""、 "ipmi_privilege": "2"、 "ipmi_username": ""、 "jmx_available": "0"、 "jmx_disable_until": "0"、 "jmx_error": ""、 "jmx_errors_from": "0"、 "lastaccess": "0"、 "maintenance_from": "0"、 "maintenance_status": "0"、 "maintenance_type": "0"、 "maintenanceid": "0"、 "名前": "NGINX_Check_Statuc"、 "PROXY_ADDRESS": ""、 "proxy_hostid": "0"、 "snmp_available": "0"、 "snmp_disable_until": "0"、 "snmp_error": ""、 "snmp_errors_from": "0"、 "状態": "3"、 "れるtemplateId": "10284"、 "tls_accept": "1"、 "tls_connect": "1"、 "tls_issuer": ""、 "tls_psk": ""、 "tls_psk_identity": ""、 "tls_subject": "" } ] }
第二には、APIを介してホストを追加します
ホストAPIコマンド形式を追加することにより:
APIを使用すると、追加したい事前にホストを知っているIPホストを追加するためにプリインストールされ、準/グループIDに事前情報テンプレートIDで知られているZABBIXエージェントを、設定され、その後、同じAPIを追加する要求を提出
(1)この場合、ホストグループID番号を追加するチェックID NO:2
(2)閲覧NGINX_Check_StaticテンプレートのID番号です:10284
(3)閲覧プロキシID番号
(4)テンプレートは、例えば、関連している次NGINX_Check_Staticテンプレートに追加されますプロキシエージェントアクティブテンプレートおよびテンプレート
(5)192.168.7.101ホスト(アクティブプロキシプロキシモード)を追加
#カール-s -X POST -H 'のContent-Type:アプリケーション/ JSON' -d " { "JSONRPC": "2.0"、 "メソッド": "host.create"、#は、メソッドを定義し、N品種 "のparams":{ 「ホスト」:「APIの[ホストの追加テスト192.168.7.101」、#が表示されるホスト名を追加します 「Proxy_hostid」:「10277」、#がアクティブモードに次の行を追加しますが、プロキシプロキシを介して行われ、プロキシのホストエージェントを削除する必要はありません "インタフェース":[ { "タイプ":1、#1は、薬剤の種類、2はSNMPであることを示し、3はIMPIであり、図4は、JMXであります 「メイン」:1、#よりは、インターフェースです "useip": 1, # 0是DNS地址,1是IP地址 "ip": "192.168.7.101", # 添加zabbix主机的IP地址 "dns": "", "port": "10050" # agent端口 } ], "groups": [ { "groupid": "2" # 查到的群组ID } ], "templates": [ { "templateid": "10284" # 关联的模板ID } ] }, "auth": "d22b88e46b411f3db0997d54afb06c0e", #token值 "id": 1 }' http://192.168.7.100/zabbix/api_jsonrpc.php | python -m json.tool # 192.168.7.100是zabbix server服务器的IP地址 # 返回值 { "id": 1, "jsonrpc": "2.0", "result": { "hostids": [ "10292" ] } }
使用API批量添加主机(主动proxy代理模式)
(1)编辑一下添加的主机模板
[root@zabbix ~]# cat linux-zabbix-add.sh #!/bin/bash IP=" 192.168.7.101 192.168.7.102 " for node_ip in ${IP};do curl -s -X POST -H 'Content-Type:application/json' -d ' { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "'${node_ip}'", # 主机的IP地址 "name": "linux36-nginx-web_'${node_ip}'", # 添加可见的主机名称 "proxy_hostid": "10277", # 主动模式proxy的ID号 "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "'${node_ip}'", "dns": "", "port": "10050" } ], "groups": [ { "groupid": "2" } ], "templates": [ { "templateid": "10284" } ] }, "auth": "d22b88e46b411f3db0997d54afb06c0e", "id": 1 }' http://192.168.7.100/zabbix/api_jsonrpc.php | python -m json.tool done
(2)加上执行权限,并执行脚本
[root@zabbix ~]# chmod +x linux-zabbix-add.sh [root@zabbix ~]# bash linux-zabbix-add.sh { "id": 1, "jsonrpc": "2.0", "result": { "hostids": [ "10294" ] } } { "id": 1, "jsonrpc": "2.0", "result": { "hostids": [ "10295" ] } }
在zabbix网页上查看此时添加的主机
1、查看zabbix网页上添加的主机状态
2、查看192.168.7.101主机的数据
3、查看192.168.7.102主机的数据