Centos7.4は、LNMPプラットフォームとZabbixをデプロイしてモニタリングを実装し、Pythonスクリプトを記述して高速制御を実現します

1. LNMPプラットフォームをデプロイする

yum -y install gcc gcc-c ++ make automake php php-mysql openssl-devel pcre-devel

cd nginx-1.12.2

useradd -s / sbin / nologin nginx

./configure --prefix = / usr / local / nginx --with-http_ssl_module
make && make install
rpm -ivh php-fpm-5.4.16-42.el7.x86_64.rpm 

systemctl restart php-
fpm systemctl enable php-fpm

cd / usr / local / nginx / conf /

vim nginx.conf

ln -s / usr / local / nginx / sbin / nginx / sbin / nginx

vim /usr/local/nginx/html/test.php

mysqlのインストール、zabbixライブラリの作成、認証など。

次に、zabbixをデプロイします

tar -xf zabbix-3.4.4.tar.gz 

cd zabbix-3.4.4 /
./configure --enable-server --enable-proxy --enable-agent --with-mysql = / usr / bin / mysql_conf --with-net-snmp --with-libcurl
make &&インストールする

データベースディレクトリに移動してデータベーステーブルをインポートし、フロントエンドディレクトリに移動してWebページのコンテンツをnginxにコピーします。権限を設定します。

Zabbixサーバー構成ファイルとエージェント構成ファイルを変更します

useradd -s / sbin / nologin zabbix

nginxにアクセス

http://192.168.122.10/index.php

完全なzabbix構成

アカウントはadminで、パスワードはzabbixです

3、Pythonスクリプトを書く

1. zabbix公式Webサイトにアクセスし、API関連情報を見つけ、zabbixバージョン番号を取得します

コードは次のとおりです。

インポートリクエスト
インポートjson

url = 'http://192.168.122.10/api_jsonrpc.php'
headers = {'Content-Type': 'application / json-rpc'}
data = {
    "jsonrpc": "2.0"、
    "method": "apiinfo。 version "、
    " params ":[]、
    " id ":1
}

r = requests.post(url = url、headers = headers、data = json.dumps(data))
result = r.json()
print( 'Zabbixバージョンは%s'%result ['result'])

2. zabbix公式Webサイトにアクセスし、API関連情報を見つけ、zabbixトークンを取得します

コードは次のとおりです。

インポートリクエスト
インポートjson

url = 'http://192.168.122.10/api_jsonrpc.php'
headers = {'Content-Type': 'application / json-rpc'}
data = {
    "jsonrpc": "2.0"、
    "method": "user。 login "、
    " params ":{
        " user ":" Admin "、
        " password ":" zabbix "
    }、
    " id ":1
}

r = requests.post(url = url、headers = headers、data = json.dumps(data))
result = r.json()
print( 'Zabbix Tokenは%s'%result ['result'])

1. zabbix公式Webサイトにアクセスし、API関連情報を見つけて、ホストを作成します

コードは次のとおりです。

#!/ usr / bin / env python3
import requests
import json

def get_token(url、headers):
    data = {
        "jsonrpc": "2.0"、
        "method": "user.login"、
        "params":{
            "user": "Admin"、
            "password": "zabbix"
        } 、
        "id":1
    }
    r = requests.post(url = url、headers = headers、data = json.dumps(data))
    return r.json()['result']

def get_hosts(token、url、headers):
    data = {
    "jsonrpc": "2.0"、
    "method": "host.get"、
    "params":{
        "filter":{
        }
    }、
    "auth":token、
    "id":5
}

    r = requests.post(url = url、headers = headers、data = json.dumps(data))
    n = r.json()['result']
    in nのアイテム:
        print(item ['hostid']、item ['ホスト'])

def get_groups(token、url、headers):
    data = {
    "jsonrpc": "2.0"、
    "method": "hostgroup.get"、
    "params":{
        "output": "extend"、
        "filter":{
        }
    }、
    "auth":トークン、
    "id":2
}

    r = requests.post(url = url、headers = headers、data = json.dumps(data))
    b = r.json()['result']
    for item in b:
        print(item ['groupid']、item ['名前'])

def get_tamp(token、url、headers):
    data = {
    "jsonrpc": "2.0"、
    "method": "template.get"、
    "params":{
        "output": "extend"、
        "filter":{
        }
    }、
    "auth":トークン、
    "id":1
}

    r = requests.post(url = url、headers = headers、data = json.dumps(data))
    c = r.json()['result']
    in item in c:
        print(item ['templateid']、item ['ホスト'])

def create_host(token、url、headers):
    hostname = input( '作成したい監視ホストの名前を入力してください:')
    ip = input( '作成したい監視ホストのIPを入力してください:')
    gid = input( '作成する監視ホストのGIDを入力してください: ')
    tempid = input('作成する監視ホストのTEMPIDを入力してください: ')  
    data = {
    "jsonrpc": "2.0"、
    "method": "host.create "、
    " params ":{
        " host ":hostname、
        " interfaces ":[
            {
                " type ":1、
                " main ":1、
                " "useip":1、
                "ip":ip、
                "dns": ""、
                」ポート ":" 10050 "
            }
        ]、
        "グループ ":[
            {
                "groupid":gid
            }
        ]、
        "templates":[
            {
                "templateid":tempid
            }
        ]、
        "inventory_mode":0、
        "inventory":{
        }
    }、
    "auth":token、
    "id":4
}

    r = requests.post(url = url、headers = headers、data = json.dumps(data))

def show_memu(token、url、headers):
    cmds = {'1':get_groups、 '2':get_tamp、 '3':create_host、 '0':get_hosts}
    prompt = '' '(0)は既存のホストをリストしますIDとホスト名
(1)グループIDとホストグループをリストします
(2)テンプレートIDとテンプレートをリストし
ます(3)モニタリングホストを作成します
(4)終了
1234から必要な機能を選択してください。モニタリングホストを作成するにはグループIDを入力する必要があります、テンプレートID、IPアドレスおよびその他の情報: '' '
    while True:
        選択=入力(プロンプト)
        if選択==' 4 ':         選択を
            解除するとブレーク
' 0123 ':
            印刷('無効!、正しい関数を選択してください ' )
        cmds [choice](トークン、URL、ヘッダー)

if __name__ == '__main__':
    url = 'http://172.17.2.187/api_jsonrpc.php'
    headers = {'Content-Type': 'application / json-rpc'}
    token = get_token(url、headers)
    show_memu(トークン、URL、ヘッダー)

 

73件の元の記事を公開 賞賛4 20,000回以上の閲覧

おすすめ

転載: blog.csdn.net/qq_27592485/article/details/102490634