セブンイレブン---- ZabbbixのAPIの使用中のZabbix

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主机的数据

 

 

 

  

  

 

  

 

 

おすすめ

転載: www.cnblogs.com/struggle-1216/p/12369986.html