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、ヘッダー)