學習zabbix(五)

前言php


 

zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix組件主要分兩個: zabbix-server和zabbix-agent。支持的監控協議有ICMP,IPMI,SNMP,HTTP以及zabbix協議(zabbix協議是最常使用的協議用來監控各被監控端)。
收集的數據存放在數據庫中,數據庫支持mysql,oracle等等。
第三個組件:zabbix web gui這個接口提供web頁面來監控和管理各被監控端。
第四個組件:zabbix proxy(實現分佈式監控專用組件非必要組件,被監控服務器超過一千以上可使用此組件。)html

 

本次實驗邏輯架構以下前端

 

 相關組件介紹node

zabbix_get進程去客戶端收集數據,
zabbix_agentd進程經過監聽在一個套接字上接收
zabbix_get的請求,經過zabbix_sender將
數據收集發送給服務器端,數據保存在zabbix數據庫中,
zabbix_get這種方法主要用於測試,經過寫腳本或遠程執行命令的方式。
zabbix server本身自動會週期性的去被監控端收集數據,收集哪些數據在服務器端事先定義。
zabbix server ,zabbix database,zabbix web gui 能夠部署在一臺服務器上,爲了提高性能能夠放在不一樣主機上。python

 

zabbix一些經常使用術語mysql


host(主機):要監控的網絡設備,可由IP或DNS名稱指定
host group(主機組):主機的邏輯容器,能夠包含主機和模板,但同一個組內的主機和模板不能互相連接;主機組一般在給用戶或用戶組指派監控權限時使用(大體瞭解下就能夠了)。
item(監控項):這個從名字上能夠理解,具體要監控哪些指標由它定義。
trigger(觸發器):就是超過了定義的合理範圍,這傢伙就會報警。
event(事件):這都是觸發器產生的。
action(動做):對事件如何應對,好比要執行哪些操做。
escalation(報警升級):若是在定義的5分鐘沒反應,從warning級別升到high級別,就是要提醒別人要儘快處理。
media(媒介):發送報警的手段和通道,如Email。
remote command(遠程命令):預約義的命令,可在被監控主機處於某個特定條件下時自動執行。
template(模板):用於快速定義被監控主機的預設條目集合,一般包含了item、trigger、graph、screen、application以及low-level discovery rule;模板能夠直接連接至單個主機。(這個概念不理解不過不要緊的,只要具體會怎麼操做就能夠了)
application(應用):一組item的集合。
以上術語的關係能夠用下圖表示(大體明白就行):linux

 

 

 

上圖中的poller這個進程就是去各客戶端獲取數據的。
zabbix產生的數據主要由四部分組成:
配置數據(忽略)
歷史數據:50bytes
歷史趨勢數據: 128bytes
事件數據:130bytes
歷史數據:採樣生成的數據
歷史趨勢數據:每小時的最大值、最小值、平均值、統計
經過對以上數據的計算,能夠得出咱們須要一個多大的zabbix數據庫,來定製磁盤硬件。
具體算法:
假設有60000個監控項,那每秒中處理的數據就有60000/60=1000條
歷史數據大小=天數X每秒鐘處理的數據量X24X3600X50Bytes
趨勢數據:
每個趨勢128Bytes,
大小=天數X監控項X24X128Bytes
事件數據:
每一個佔據130Bytes
大小:天數X86400X130(假設每秒中產生一個事件)nginx

 

本次實驗的zabbix軟件版本 c++

裝下面這個版本,紅框內選中的web

http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/

 

實驗所需機器3臺,系統環境以下

3臺機器,一臺作zabbix-server,一臺做爲zabbix-agent,一臺做爲zabbix-proxy

 

?
1
2
3
4
5
[root@linux-node1 ~] # uname -rm
2.6.32-504.el6.x86_64 x86_64
[root@linux-node1 ~] # cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@linux-node1 ~] #

  

安裝zabbix相關包


 

複製連接地址,下載wget
noarch代表與處理器無關,src是源碼包須要編譯
執行以下命令,在Zabbix Server和Zabbix Agent上

?
1
2
3
4
mkdir /tools -p
cd /tools/
wget   http: //repo .zabbix.com /zabbix/2 .4 /rhel/6/x86_64/zabbix-release-2 .4-1.el6.noarch.rpm
rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

查看這個包安裝了哪些

?
1
2
3
4
5
6
[root@linux-node1 tools] # rpm -ql zabbix-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
/etc/yum .repos.d /zabbix .repo
/usr/share/doc/zabbix-release-2 .4
/usr/share/doc/zabbix-release-2 .4 /GPL
[root@linux-node1 tools] #

它建立了一個zabbix.repo文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linux-node1 tools] # cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http: //repo .zabbix.com /zabbix/2 .4 /rhel/6/ $basearch/
enabled=1
gpgcheck=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
 
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http: //repo .zabbix.com /non-supported/rhel/6/ $basearch/
enabled=1
gpgkey= file : ///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@linux-node1 tools] #

  

 Zabbix Server服務器安裝以下包

?
1
2
3
4
5
6
7
8
9
10
11
12
[root@linux-node1 tools] # yum install zabbix zabbix-server zabbix-web zabbix-server-mysql  zabbix-web-mysql  zabbix-agent -y
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Package zabbix-2.4.8-1.el6.x86_64 already installed and latest version
Package zabbix-server-2.4.8-1.el6.x86_64 already installed and latest version
Package zabbix-web-2.4.8-1.el6.noarch already installed and latest version
Package zabbix-server-mysql-2.4.8-1.el6.x86_64 already installed and latest version
Package zabbix-web-mysql-2.4.8-1.el6.noarch already installed and latest version
Package zabbix-agent-2.4.8-1.el6.x86_64 already installed and latest version
Nothing to do
[root@linux-node1 tools] #

因爲Zabbix Server把數據存到mysql裏,所以還須要安裝mysql相關包

?
1
2
3
4
5
6
7
8
[root@linux-node1 tools] # yum install  -y mysql-server mysql
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Package mysql-server-5.1.73-8.el6_8.x86_64 already installed and latest version
Package mysql-5.1.73-8.el6_8.x86_64 already installed and latest version
Nothing to do
[root@linux-node1 tools] #

啓動mysqld

?
1
2
3
[root@linux-node1 tools] # /etc/init.d/mysqld start
Starting mysqld:                                           [  OK  ]
[root@linux-node1 tools] #

複製配置文件替換默認的

?
1
2
3
[root@linux-node1 tools] # cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
cp : overwrite ` /etc/my .cnf'? y
[root@linux-node1 tools] #

在[mysqld]模塊最後加入字符集的相關參數

?
1
2
3
character- set -server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci

加入以後以下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql .sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character- set -server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci

重啓mysql

?
1
2
3
4
[root@linux-node1 tools] # /etc/init.d/mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
[root@linux-node1 tools] #

登陸mysql查看

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@linux-node1 tools] # mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73-log Source distribution
 
Copyright (c) 2000, 2013, Oracle and /or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and /or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)
 
mysql>

 

官網有關於Zabbix建庫相關腳本

?
1
2
3
4
5
6
7
8
9
MySQL
shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>' ;
mysql> quit;
shell> mysql -uzabbix -p<password> zabbix < database /mysql/schema .sql
# stop here if you are creating database for Zabbix proxy
shell> mysql -uzabbix -p<password> zabbix < database /mysql/images .sql
shell> mysql -uzabbix -p<password> zabbix < database /mysql/data .sql

建庫和受權用戶操做以下

?
1
2
3
4
5
6
7
8
9
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix' ;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit
Bye
[root@linux-node1 tools] #

導入腳本操做以下

?
1
2
3
4
5
6
7
8
9
[root@linux-node1 tools] # cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
data.sql    images.sql  schema.sql 
[root@linux-node1 tools] # cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
[root@linux-node1 create] # ls
data.sql  images.sql  schema.sql
[root@linux-node1 create] # mysql -uzabbix -pzabbix zabbix <schema.sql
[root@linux-node1 create] # mysql -uzabbix -pzabbix zabbix <images.sql
[root@linux-node1 create] # mysql -uzabbix -pzabbix zabbix <data.sql
[root@linux-node1 create] #

檢查

   

配置文件修改


 

修改apache相關配置

zabbix Server默認用的apache,安裝Zabbix Server時,它自動幫咱們裝好了apache
修改apache配置文件裏zabbix.conf文件的時區,並取消註釋。這裏能夠vim修改,也能夠採用sed替換

?
1
2
3
4
5
6
7
8
9
[root@linux-node1 conf.d] # cd /etc/httpd/conf.d/
[root@linux-node1 conf.d] # ls
mod_dnssd.conf  php.conf  README  welcome.conf  zabbix.conf
[root@linux-node1 conf.d] # grep -n timezone zabbix.conf
19:        # php_value date.timezone Europe/Riga
[root@linux-node1 conf.d] # vim zabbix.conf
[root@linux-node1 conf.d] # grep -n timezone zabbix.conf
19:        php_value date .timezone Asia /Shanghai
[root@linux-node1 conf.d] #

查看下相關配置

這裏配置文件裏帶的默認的跳轉,Alias這一行,也就是zabbix默認代碼的目錄
?
1
2
3
4
5
6
7
8
9
10
11
[root@linux-node1 conf.d] # head -10 zabbix.conf
#
# Zabbix monitoring system php web frontend
#
 
Alias /zabbix /usr/share/zabbix
 
<Directory "/usr/share/zabbix" >
     Options FollowSymLinks
     AllowOverride None
     Order allow,deny

看看都有哪些東西

到這個目錄下ls一下,看到都是php代碼。zabbix前端都是php寫的
它的server端是c和c++寫的

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@linux-node1 conf.d] # cd /usr/share/zabbix/
[root@linux-node1 zabbix] # ls
acknow.php                     chart.php                    index.php           report5.php
actionconf.php                 charts.php                   items.php           report6.php
adm.gui.php                    conf                         js                  robots.txt
adm.housekeeper.php            conf. import .php              jsLoader.php        screenconf.php
adm.iconmapping.php            dashboard.php                jsrpc.php           screenedit.php
adm.images.php                 dashconf.php                 latest.php          screens.php
adm.macros.php                 discoveryconf.php            locale              scripts_exec.php
adm.other.php                  discovery.php                maintenance.php     scripts.php
adm.regexps.php                disc_prototypes.php          map.php             search.php
adm.triggerdisplayoptions.php  events.php                   maps.php            services.php
adm.triggerseverities.php      fonts                        media_types.php     setup.php
adm.valuemapping.php           graphs.php                   overview.php        slideconf.php
adm.workingtime.php            history .php                  popup_bitem.php     slides.php
api_jsonrpc.php                host_discovery.php           popup_httpstep.php  srv_status.php
applications.php               hostgroups.php               popup_media.php     styles
audio                          hostinventoriesoverview.php  popup_period.php    sysmap.php
auditacts.php                  hostinventories.php          popup.php           sysmaps.php
auditlogs.php                  host_prototypes.php          popup_right.php     templates.php
authentication.php             host_screen.php              popup_trexpr.php    tr_comments.php
browserwarning.php             hosts.php                    popup_usrgrp.php    tr_events.php
chart2.php                     httpconf.php                 profile.php         trigger_prototypes.php
chart3.php                     httpdetails.php              proxies.php         triggers.php
chart4.php                     httpmon.php                  queue.php           tr_logform.php
chart5.php                     image.php                    report1.php         tr_status.php
chart6.php                     images                       report2.php         tr_testexpr.php
chart7.php                     imgstore.php                 report3.php         usergrps.php
chart_bar.php                  include                      report4.php         users .php
[root@linux-node1 zabbix] #

 

如今的版本挺智能的,下面14到19行參數都自動加上了,之前沒有的

  

啓動apache
?
1
2
3
[root@linux-node1 conf.d] # /etc/init.d/httpd start
Starting httpd:                                            [  OK  ]
[root@linux-node1 conf.d] #

 

修改Zabbix Server默認配置文件

由於zabbix存mysql數據,因此要改下server端的配置文件,server端和mysql打交道 

?
1
2
3
4
[root@linux-node1 conf.d] # cd /etc/zabbix/
[root@linux-node1 zabbix] # ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
[root@linux-node1 zabbix] # vim zabbix_server.conf

  

 修改DBHost 和DBName

 

 用戶名和密碼

  

經過瀏覽器安裝配置zabbix-server


 

瀏覽器裏輸入以下連接

http://10.0.1.161/zabbix

看到以下界面進行安裝

點擊下一步,全部條件都知足
它在檢測一些依賴,注意當前的數值必須是mysql才行,時間時區也要對

 

端口是0,0就是默認的3306

 

test Ok next

 

 給它起個名字zabbix,這是是可選的。默認端口就是10051

  

summary

 

上面全部的操做都是建立了下面配置文件,並寫進去

 

點擊Finish自動跳轉到了登陸界面

默認的用戶名是Admin,密碼是zabbix

 

 

 登陸成功,第一件事就是改密碼

 zabbix  server 還沒運行,上面提示說明這個前端頁面不只僅訪問數據庫,還訪問zabbix  server

?
1
2
3
[root@linux-node1 zabbix] # /etc/init.d/zabbix-server start
Starting Zabbix server:                                    [  OK  ]
[root@linux-node1 zabbix] #

  

 Zabbix Server自己也要監控本身

接下來運行一個agent端,先修改agent配置文件

vim /etc/zabbix/zabbix_agentd.conf 

啓動agent

?
1
2
3
4
[root@linux-node1 ~] # vim /etc/zabbix/zabbix_agentd.conf
[root@linux-node1 ~] # /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node1 ~] #

  

zabbix的web界面介紹


 

一些儀表盤解釋

目前有0個主機啓動,1個主機關閉,有38個模板(zabbix自帶的監控模板)
items 是監控項的意思,(好比cpu,內存 都是監控項)
triggers是觸發器,啓用的,關閉的,有故障的,ok的
Required server performance,new value 參照指標

  

看configuration的子項
Maintenance 是維護的意思,好比停機維護。這期間不讓它報警這臺機器

Actions 是故障了要通知,怎麼通知呢,在這裏配置
好比配置發短信,發郵件,還能配置讓它執行命令,好比reboot

screens是一些圖片效果
slide shows是幻燈片,好比你有3個大屏,可是隻有一個屏幕,你可讓它來回切換
Maps 你能夠作一個架構圖
Discovery 和自動化部署有關,
IT services :sla(SLA:Service-Level Agreement的縮寫,意思是服務等級協議),好比我保證網站可用率 99%。(管理體系相關)你今年的sla達標了麼等

 

主機組,特別簡單
下面Zabbix server顯示紅色表示這臺機器沒有監控

 

來到主機這裏
後面幾列是觸發器,圖形。發現的規則。作web監控的(若是返回200表示ok,不是200讓它報警)
Interface是接口
zabbix agent監聽的端口是10050端口
zabbix server監聽的是10051端口

 

?
1
2
3
4
5
6
[root@linux-node1 ~] # netstat -lntp |grep 100
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      5846 /zabbix_agentd 
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      5692 /zabbix_server 
tcp        0      0 :::10050                    :::*                        LISTEN      5846 /zabbix_agentd 
tcp        0      0 :::10051                    :::*                        LISTEN      5692 /zabbix_server 
[root@linux-node1 ~] #

也可使用lsof命令查看

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linux-node1 ~] # lsof -i:10050
COMMAND    PID   USER   FD   TYPE DEVICE SIZE /OFF NODE NAME
zabbix_ag 5846 zabbix    4u  IPv4  24785      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5846 zabbix    5u  IPv6  24786      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5848 zabbix    4u  IPv4  24785      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5848 zabbix    5u  IPv6  24786      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5849 zabbix    4u  IPv4  24785      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5849 zabbix    5u  IPv6  24786      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5850 zabbix    4u  IPv4  24785      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5850 zabbix    5u  IPv6  24786      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5851 zabbix    4u  IPv4  24785      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5851 zabbix    5u  IPv6  24786      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5852 zabbix    4u  IPv4  24785      0t0  TCP *:zabbix-agent (LISTEN)
zabbix_ag 5852 zabbix    5u  IPv6  24786      0t0  TCP *:zabbix-agent (LISTEN)
[root@linux-node1 ~] # lsof -i:10051

  

添加對zabbix server的監控
把127.0.0.1改下。點擊這裏就能夠編輯它

 

  

 

JMX 監控jvm的
IPMI監控硬件的。監控IPMI性能比較差,常常獲取不到數據
監控項多了可能會慢,好比監控一項。溫度,就不用監控風扇了。風扇不轉了溫度確定上來了
Proxy:表示zabbix支持分佈式的。
enabled勾選的話,表示打開監控。監控Zabbix Server,也能夠不勾選,返回界面以後點擊Enable

 

 

模板

 

填上IPMI的用戶名密碼就能夠鏈接了,虛擬機不支持IPMI,這裏就不講了

 


它在作snmp監控的時候用,簡單來講,就是給一個變量設置一個值

主機資產,zabbix提供了一個資產管理的功能,默認是關閉狀態,能夠選manual手動填,也能夠選
Automatic自動,在建立items的時候,能夠把獲得的值映射到資產裏面,這個功能比較雞肋,好比下面網卡只有兩個,我服務器要是4個網卡呢

 

 

點擊就啓用了

最後一欄,它如今是灰色的表示它還和agent沒通訊,它若是正常通訊了。會變綠色的
變綠的說明監控上了。變紅表示沒監控上

變綠了

 

application和item以及graph介紹


 

application相似items監控項的監控組,就是組的概念

 

點擊右邊的items,看到以下顯示

監控間隔。60秒
歷史保留的天數7天
趨勢圖保留的天數,365天
點一下enabled就把這一項關閉了,關閉後就不監控這一項了
若是有個東西老報警。你就能夠把它關閉了

  

鼠標放觸發器上,看到條件表達式,每五分鐘,超過300 什麼值就報警

 

  

graphs 圖形,點進去,看到默認生成了一些

 

能夠看到每項默認的顏色,還支持函數,avg平均啊,最小啊。等

 

 

 

 

 

添加node2到監控裏


  

在linux-node2上裝zabbix客戶端

?
1
2
3
4
5
mkdir /tools -p
cd /tools/
wget   http: //repo .zabbix.com /zabbix/2 .4 /rhel/6/x86_64/zabbix-release-2 .4-1.el6.noarch.rpm
rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
yum install zabbix-agent  -y

 

自定義監控和圖表

zabbix服務端是不支持windows的,只有客戶端支持windows
下面地址能夠下載windows客戶端監控。
它是個exe文件,配置個zabbix.conf文件

它有2個參數須要注意下

-c  指定配置文件
-x  把它加入系統服務

http://www.zabbix.com/download2  

 

 修改linux-node2的Zabbix agent配置文件

vim /etc/zabbix/zabbix_agentd.conf

 

 啓動agent

?
1
2
3
[root@linux-node2 tools] # /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node2 tools] #

另外讓它開機啓動,能夠選擇加入rc.local

?
1
2
[root@linux-node2 ~] # echo "/etc/init.d/zabbix-agent start" >>/etc/rc.local
[root@linux-node2 ~] #

 

建立一個新的主機組

 

 

 

 

以下

  

接着建立一個主機

 

 

host-name這裏必須寫正確的,顯示的名稱能夠隨便寫,可是建議規範點

 

選擇模板
模板裏帶有好多監控項,觸發器,圖形。由於模板太多了。上百個,就搞成搜索的了

搜索linux
上面的是基於agent監控的,下面是基於snmp監控的,就不用裝agent了

 

模板配置完畢

 

 

過一會右邊會變綠的

 

 等一會變綠色了

 

若是你公司服務器都肯定使用zabbix
那麼zabbix應該在裝機的時候裝上,儘可能不要後期裝上(能夠提早配置好dns,域名,當模板)

 

在監控裏查看主機是否有數據了

 

選擇主機

 

經過拖動這裏也能夠改變時間範圍,查看歷史數據

 

 點擊這裏能夠隱藏下面的Zoom時間欄

 

 這個agent  ping  不是icmp的ping,而是經過agent ping的。agent發個請求看它返回不返回

 

 

活動內存,小於20M告警,觸發了

 

passwd文件校驗,它檢驗文件的md5值

 

每秒的上下文切換

 

自定義監控項並加入到監控頁面上


 

以上都是模板帶的監控項,如何自定義一個監控項呢
自定義監控項有2個步驟
一、改配置文件,在裏面寫上自定義的監控項
二、web頁面加上

 

假設想獲取node2上當前登陸的用戶數
其實這個默認模板已經有了,無論,咱們經過本身方式獲取

獲取命令以下

?
1
2
3
4
5
[root@linux-node2 ~] # uptime
  06:29:23 up 22 min,  1 user,  load average: 0.00, 0.00, 0.00
[root@linux-node2 ~] # uptime | awk -F ' '  '{print $5}'
1
[root@linux-node2 ~] #

 

修改linux-node2的配置文件

vim /etc/zabbix/zabbix_agentd.conf

修改下面地方

 

這個東西的寫法是這樣格式的
UserParameter=key,command

逗號隔開
保證這個key在整個系統是惟一的,command能夠換成腳本
另外這個用戶自定義的參數返回值最大是512KB,不能超過這個
UserParameter=login-user,uptime |awk -F ' ' '{print $4}'

這裏注意下,下面截圖是錯的,應該是$4

保存,重啓

?
1
2
3
4
5
[root@linux-node2 ~] # vim /etc/zabbix/zabbix_agentd.conf
[root@linux-node2 ~] # /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node2 ~] #

  

服務端測試下可否獲取這個客戶端自定義的值
zabbix-get命令。以前沒裝,補上

?
1
2
3
[root@linux-node1 ~] # zabbix_get
- bash : zabbix-get: command not found
[root@linux-node1 ~] # yum install zabbix-get -y

 

查看幫助用法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@linux-node1 ~] # zabbix_get
usage: zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>
[root@linux-node1 ~] # zabbix_get --help
Zabbix get v2.4.8 (revision 59539) (20 April 2016)
 
usage: zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>
 
Options:
   -s --host <host name or IP>          Specify host name or IP address of a host
   -p --port <port number>              Specify port number of agent running on the host. Default is 10050
   -I -- source -address <IP address>     Specify source IP address
 
   -k --key <key of metric>             Specify key of item to retrieve value for
 
   -h --help                            Display help information
   -V --version                         Display version number
 
Example: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"
[root@linux-node1 ~] #

 

獲取方式以下

?
1
2
3
[root@linux-node1 ~] # zabbix_get -s 10.0.1.162 -k login-user
1
[root@linux-node1 ~] #

 

客戶端克隆一個會話,服務端繼續取值,這就是一個自定義的key,固然你裏面寫什麼均可以

?
1
2
3
[root@linux-node1 ~] # zabbix_get -s 10.0.1.162 -k login-user
2
[root@linux-node1 ~] #

get命令獲取成功,才能加。準備加到web上  

點擊進去

 

點擊Items,顯示以下

 

點擊右上角的Create item

name能夠和key不同,可是key必須是以前設置的,右邊select是選擇系統自帶的key

選擇獲取的數據類型

 

Data type 中decimal是10進制的意思
units 是單位的意思。zabbix默認會把1000換算成1k的

 

 

 若是勾選這裏,上面的數會乘以文本框裏的東西

 

不過重要的key建議設置5分鐘,太頻繁沒什麼用,反而引發zabbix性能降低

 

設置額外的時間間隔,好比白天每5分鐘獲取一次,晚上3分鐘獲取一次

 

 

下面設置了就如下面爲準

 

 

把它加到一個應用裏,要麼本身寫一個,要麼選一個,這裏新建一個demo的應用

 

這一項和資產管理相關,它會把你獲取的某一項自動加到你選擇的資產管理裏面
隨便選一個,好比Tag

 

描述的東西能寫最好寫

 

 

學習建立圖形把自定義的key數據以圖形方式顯示

 

 

 

點擊Add

 

 

 

 勾選

 

 

有數據了

 

 

點擊+ 能夠加入到收藏裏,而後在儀表盤查看

 

 

 

 

##########################################################################################

zabbix自定義報警-動做
 
打開資產自動接收

 

 

這裏看到主機資產有數據了,這裏的數據,就是來自下面的關聯 

 

上面的數據就是設置login-user時候設置的關聯

 

 

 有些關聯顯示的慢,好比下面的OS,緣由就是items那裏設置的更新時間比較長,原先是3600秒,改爲60秒
 

 

建立觸發器

 

 

 

起個名字,添加個表達式

 

 

  

下面這裏還能夠設置時間,次數
下面意思,就是最後時間大於2次的
點擊Insert
 

  

描述能夠不寫,選擇警告級別

  

查看另外一個頁面 --依賴
若是某件事發生了,就別報這個警了。好比若是主機down了就別報警了。先不加這個依賴

 

  

客戶端多複製一個console,觸發它報警

 

圖形裏也能看到

 

  

profile裏面能夠設置報警聲音,啓用它

  

 儀表板,報警會產生一個事件

  

 處理告警,點擊ack

  

每個事件最好都ack一下,這是好習慣
 

  

actions是空的,說明什麼也沒幹
 

  

配置告警以後的actions
 
能夠配置一些告警短信和郵件等。默認自帶了一個actions,打開這個actions
 

 

 下面是默認短信發送內容

 

若是是發短信報警,要把上面的message改的短一些,改爲70個字符之內
國內英文單詞按字母算,漢字按個數算
精簡下,最下面是恢復的時候再發個短信,把下面粘貼下放下面便可,生產環境是這麼玩的

 
條件,
一、你這個機器沒在維護裏面
二、你這個觸發器故障的時候

 

有臺機器你不想讓他告警,可是又想監控它,可使用host=

 

下面是操做什麼

  

第一分鐘到第三分鐘,每分鐘發一個告警的通知
若是第3分鐘到第5分鐘,告警還在能夠設置發領導(現網這裏悠着點,確定要儘快解決,也是對本身一個督促)
 

 

 下面就是假設,假設6分鐘到10分鐘還沒處理,發給你的cto,這就是故障的升級機制

  

設置告警的介質
 
默認是email
jabber是一個開源的東西,用不上
sms是短信的,也可使用gsm的貓,短信貓等都是支持的

 

點開郵件,發現比較雞肋。 沒用用戶名密碼等,通常不使用它

 

短信這個除非你有短信貓,通常也不用
jabber更不用

 

 模擬觸發執行腳本,本身去建立

你能夠寫個腳本發郵件,發短信等,或者echo  hehe,通常使用腳本是主流

 
怎麼加腳本呢vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts
這裏配置了報警腳本的路徑
把你寫的腳本放這裏就行了,這樣它就能找到了

 

 

進入以下目錄寫一個腳本,內容以下。
通常狀況下,咱們是執行Zabbix腳本,好比發郵件

這個zabbix腳本要接收3個參數
$1,$2,$3
$1是郵件地址
$2 郵件主題
$3 郵件內容

?
1
2
3
4
5
[root@linux-node1 alertscripts] # pwd
/usr/lib/zabbix/alertscripts
[root@linux-node1 alertscripts] # cat Send_Mail.sh
echo $1 $2 $3 >> /tmp/test .log
[root@linux-node1 alertscripts] #

加上課執行權限

?
1
[root@linux-node1 alertscripts] # chmod +x Send_Mail.sh

網頁這裏就能夠這麼寫了

 

 

給它指定個用戶,讓某用戶能夠運行這個腳本
注意,前面是用戶組,後面是成員

 

點擊Members,而後點擊Admin,下面這裏不用動,點擊Media

 

報警介質添加
發給誰,什麼時間,什麼級別發
若是這個郵箱是老闆的話,能夠去掉不重要的告警

 

個人選擇以下

 

Add以後

 

權限這裏分讀寫和只讀以及拒絕訪問,最下面能夠看到權限只能分配給組

 

 模擬故障場景,linux-node2的ssh窗口多複製幾個,等待一會看到下面日誌有內容了
?
1
2
3
4
[root@linux-node1 alertscripts] # tail -f /tmp/test.log
525031638@qq.com PROBLEM linux-node2:login-user): 3
^C
[root@linux-node1 alertscripts] #

儀表盤裏也能看到它自動執行了action 

 

嘗試把腳本改爲以下發郵件的腳本,這個腳本須要把smtpserver,username,password改爲發件方的。
另外這個腳本須要接收3個參數,第一個參數是收件人的郵箱(Zabbix會傳給它),第二個參數是郵件主題(Zabbix會傳給它),第三個參數是郵件內容(Zabbix也會傳給它)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@linux-node1 alertscripts] # pwd
/usr/lib/zabbix/alertscripts
[root@linux-node1 alertscripts] # ll
total 8
-rwxr-xr-x  1 root root 714 Mar 13 20:16 pymail.py
-rwxr-xr-x. 1 root root  30 Nov 29 23:20 Send_Mail.sh
[root@linux-node1 alertscripts] # cat pymail.py
#!/usr/bin/python
#coding: utf-8 
import smtplib 
import sys
from email.mime.text import MIMEText 
from email.header import Header 
from email.Utils import COMMASPACE
   
receiver = sys.argv[1]
subject = sys.argv[2]
mailbody =  sys.argv[3]
smtpserver = 'smtp.exmail.qq.com' 
username = 'test1@xxxxxx.com' 
password = '123456' 
sender = username
   
msg = MIMEText(mailbody, 'html' , 'utf-8' ) #中文需參數‘utf-8’,單字節字符不須要 
msg[ 'Subject' ] = Header(subject, 'utf-8'
msg[ 'From' ] = username
msg[ 'To' ] = receiver
   
smtp = smtplib.SMTP() 
smtp.connect(smtpserver) 
smtp.login(username, password) 
smtp.starttls()
smtp.sendmail(msg[ 'From' ], msg[ 'To' ], msg.as_string()) 
smtp.quit()
[root@linux-node1 alertscripts] #

  

 

QQ郵箱能夠收到郵件

解決告警以後又收到了恢復正常的郵件

 

 看到郵件內容多了括號和空格,把下面多餘的空格和括號刪除便可

 

Update以後,彆扭的括號和空格都沒了

qq郵件能夠綁定微信。對於使用微信的用戶能夠及時看到告警

  

簡單製做一個模板
製做模板
 

 

查看linux自帶的模板

 

點開進去,能夠看到此模板配置狀況

 

建立自定義模板

 

給此模板命名爲demo,同時把linux-node2加入到此模板裏

link給一個模板

  

點擊Update

 

點擊Update以後,提示模板不能被經過此模板再去link給其它模板(這裏不是很明白,有時間再研究下)

  

去掉link,點擊update。模板建立好了,目前什麼都是空的。沒有application和items
創建完畢,目前什麼都是空的

  

添加items

 

 

 

把login-user 這個以前建立的item加入到模板裏
 
 key這裏,要手寫,不要選擇,由於是自定義的,select是搜索不到的

 

還能夠給這個模板繼續建立Application,起名app1

  

  

把以前建立的items加入到app1

 

 app1裏面多了Items,那個login-user
 

 

最後demo模板結果以下

 

你能夠把這個模板連接到任何一臺機器上,這樣模板裏有的監控項,那個機器就有了
其實你自定義的監控項能夠從配置文件裏取出來,放下面目錄下,而後在客戶端主配置文件裏include進去

這裏面默認還有個mysql的監控項呢
?
1
2
3
4
[root@linux-node2 zabbix_agentd.d] # cd /etc/zabbix/zabbix_agentd.d/
[root@linux-node2 zabbix_agentd.d] # ls
userparameter_mysql.conf
[root@linux-node2 zabbix_agentd.d] #

這個agent.conf自帶include選項
生產環境都建議這麼幹。儘可能不要修改原來的配置文件。更專業一點

  

zabbix導入自定義模板--tcp的11種狀態監控
 
 獲取服務器的tcp的11種狀態的模板和腳本(經常使用於web服務器和反向代理服務器)。
腳本里採用ss命令取tcp狀態,ss命令性能強於netstat
這裏使用2個文件

  

建立一個用於存放腳本插件的目錄
?
1
2
3
4
5
6
7
[root@linux-node2 alertscripts] # cd /etc/zabbix/
[root@linux-node2 zabbix] # ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
[root@linux-node2 zabbix] # mkdir shells
[root@linux-node2 zabbix] # cd shells/
[root@linux-node2 shells] # pwd
/etc/zabbix/shells

把腳本上傳上去

?
1
2
3
4
5
6
7
8
9
[root@linux-node2 shells] # rz -E
rz waiting to receive.
[root@linux-node2 shells] #
[root@linux-node2 shells] # ls
zabbix_linux_plugin.sh
[root@linux-node2 shells] # chmod +x zabbix_linux_plugin.sh
[root@linux-node2 shells] # ./zabbix_linux_plugin.sh
Usage: . /zabbix_linux_plugin .sh {tcp_status key|memcached_status key|redis_status key|nginx_status key}
[root@linux-node2 shells] #
 
你要告訴它,你監控什麼東西,它的key是什麼。
這裏截取模板文件部份內容

所以,運行此腳本須要給它2個參數

?
1
2
3
4
5
[root@linux-node2 shells] # ./zabbix_linux_plugin.sh tcp_status LISTEN
14
[root@linux-node2 shells] # ./zabbix_linux_plugin.sh tcp_status TIME-WAIT
52
[root@linux-node2 shells] #

 

在下面目錄下,建立一個文件,存放自定義的key和value,而value經過此腳本獲取

key這裏是linux_status[*] ,表示它支持列表

?
1
2
3
4
5
6
7
[root@linux-node2 zabbix_agentd.d] # pwd
/etc/zabbix/zabbix_agentd .d
[root@linux-node2 zabbix_agentd.d] # ls
userparameter_mysql.conf  zabbix-linux-plugin.conf
[root@linux-node2 zabbix_agentd.d] # cat zabbix-linux-plugin.conf
UserParameter=linux_status[*], /etc/zabbix/shells/zabbix_linux_plugin .sh "$1" "$2" "$3"
[root@linux-node2 zabbix_agentd.d] #

重啓linux-node2的Zabbix agent

?
1
2
3
4
[root@linux-node2 zabbix_agentd.d] # /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node2 zabbix_agentd.d] # cd

  

server端經過zabbix_get獲取數據沒問題

?
1
2
3
[root@linux-node1 zabbix] # zabbix_get -s 10.0.1.162 -k linux_status[tcp_status,ESTAB]
2
[root@linux-node1 zabbix] #

  

注意,zabbix監控的時候,是使用的zabbix用戶

?
1
2
3
[root@linux-node2 ~] # ll /tmp/netstat.tmp
-rw-rw-r-- 1 zabbix zabbix 31 Mar 13 22:09 /tmp/netstat .tmp
[root@linux-node2 ~] #

  

接下來你要作的是,建立一種模板,tcp有11個狀態,你要建立11個key
而後作個圖,這裏有別人作好的
配置--模板--導入

 選擇電腦上的模板文件

  

 模板導入成功

 

 
 

 

 

點擊Items看到11個監控項,name右邊是key

 

 
 
接下來給一個主機加這個模板

 

add

 

能夠批量更改

 

 

改時間間隔爲30秒,僅僅出於測試目的,現網不要這麼作
 
 

 

原本是300的,都變成了30秒

 

 

 查看圖形顯示這裏
若是沒有數據會返回0,注意0不是空。這裏寫成0是有意義的。
  

##############################################################################

 
zabbix自動註冊簡單介紹---建立自動註冊的actions
 
怎麼把1000臺機器加zabbix裏
zabbix提供了網絡發現和自動註冊2個功能,發現有機器連過來,給它加個模板
若是是windows,link一個win的模板。若是是linux,link一個linux的模板。
server主動發現,是你設置一個IP範圍,server主動去掃描
自動註冊是agent端發起的。這些都依賴於action
甚至可讓它自動加入到主機組
 

 

下面就是自動註冊

 

在operations這裏找到Add host

 
 
 
 action裏面能夠加入以下動做。自動加入到組,而且自動Link一個模板
 

 

 

 

 

 
 
建立Screen
screen讓你能夠把喜歡或者以爲重要的graph加入到一個圖形界面裏顯示。好比同時顯示2個監控圖形。

 

 

 

建立1個2行2列的screen。

 

 

 
 
 

 

 點擊change能夠添加圖形

 

 
點擊change能夠隨便選擇,選擇放graph
注意下面Dynamic要勾上

 

 
4個change都改了

 

 面板這裏這裏能夠添加喜好的screen

 

加入進來了

 

從Monitor--Screens裏也能夠加

 

 

 


 

zabbix監控主動模式


 

默認狀況下zabbix是運行在被動模式,這個主動和被動是針對zabbix-agent來講的
agent默認監聽一個端口,10050,server會按期主動過來要數據。server端主動的發命令,告訴agent。取哪些數據
若是1萬臺機器,zabbix同時要發10000個請求到agent,問他們數據。這麼弄確定有問題
zabbix agent也支持主動模式,主動給服務器發消息,這時候用於分佈式比較好了

 
下面是目前被動模式的配置

 

 

 

 
 
 
 
 添加agent主動監控模板
模板能夠克隆目前的被動模板,而後更改成主動模式

 

 

所有克隆

 

 

 
zabbix基本上除了加機器,全部地方均可以克隆,其他均不動,這裏加個Active。點擊下面的add便可

 

 
看到了剛纔克隆的
 
 
 
點開這個模板,你能看到它鏈接了某個模板

 

點擊進去

 

 

 

點擊Full clone

 
 

 

把克隆出來的改爲以下名字,多了個Active用來區分,而後點擊Add

 

 
 

 

 
把系統模板的連接改下,改爲主動的那個

改爲以下

以上更改僅僅是添加了新的模板,items這裏並沒改掉

 

 
找到這個模板,而後全選

 


 

批量修改

 

 

下面這裏改爲Active的

 

右邊的items這裏都變成了Active的。上面沒變的是link的另外一個模板的,所以link的模板也要改

 

 

 
批量更改link的模板的items
 

 

也改爲active的

 

 改爲以下的了
 
 

 

 再次查看系統active的模板,items所有變成active的了

 

 

刪除以前的node2主機,改爲主動模式添加

 

node2的配置文件須要更改
把Server和ListenPort都註釋掉

 

 

下面是設置爲0才表示agent開啓主動監控模式

 

把ServerActive改爲Zabbix Server的地址,把Hostname改爲本身的主機名

 

 

 過濾下配置
?
1
2
3
4
5
6
7
8
9
10
[root@linux-node2 ~] # grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile= /var/run/zabbix/zabbix_agentd .pid
LogFile= /var/log/zabbix/zabbix_agentd .log
LogFileSize=0
StartAgents=0
ServerActive=10.0.1.161
Hostname=linux-node2.example.com
Include= /etc/zabbix/zabbix_agentd .d/
UserParameter=login-user,uptime | awk -F ' '  '{print $4}'
[root@linux-node2 ~] #

重啓agent服務

?
1
2
3
4
[root@linux-node2 ~] # /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node2 ~] #

看到再也不監聽端口了

?
1
2
3
4
5
6
7
8
9
10
11
[root@linux-node2 ~] # netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID /Program name  
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2075 /sshd          
tcp        0      0 :::22                       :::*                        LISTEN      2075 /sshd          
[root@linux-node2 ~] # ps -ef | grep zabbix
zabbix    76194      1  0 19:38 ?        00:00:00 zabbix_agentd -c /etc/zabbix/zabbix_agentd .conf
zabbix    76195  76194  0 19:38 ?        00:00:00 zabbix_agentd: collector [idle 1 sec]         
zabbix    76197  76194  0 19:38 ?        00:00:00 zabbix_agentd: active checks #1 [idle 1 sec]  
root      76211  75384  0 19:42 pts /0    00:00:00 grep --colour=auto zabbix
[root@linux-node2 ~] #

  

網頁裏添加主機

 

 
 
 模板裏添加此主機
 

 

 
 
 這時候,主機這裏顯示灰色

 

 監控這裏開始有數據了,表示主動監控成功了

 

 

 
 
 
Zabbix Proxy
 
假如你有多個機房,你每一個機房均可以部署zabbix proxy,它的做用主要方面是減輕Zabbix Server的壓力
有些公司有1萬個主機須要監控,部署了10個Zabbix Proxy,proxy 不處理任何東西,僅僅蒐集數據
在10.0.1.163機器上安裝Zabbix Proxy
先配置yum源
?
1
2
3
4
mkdir /tools -p
cd /tools/
wget   http: //repo .zabbix.com /zabbix/2 .4 /rhel/6/x86_64/zabbix-release-2 .4-1.el6.noarch.rpm
rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

  

zabbix-proxy須要有一個數據庫,由於它要蒐集數據,另外zabbix-proxy是沒有web界面的,它只是一個進程
?
1
yum install -y zabbix-proxy  zabbix-proxy-mysql mysql-server

  

安裝完畢
?
1
2
3
4
5
6
7
8
9
10
11
12
[root@linux-proxy tools] # yum install -y zabbix-proxy  zabbix-proxy-mysql mysql-server
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
  * base: mirrors.cn99.com
  * extras: mirrors.cn99.com
  * updates: mirrors.cn99.com
Package zabbix-proxy-2.4.8-1.el6.x86_64 already installed and latest version
Package zabbix-proxy-mysql-2.4.8-1.el6.x86_64 already installed and latest version
Package mysql-server-5.1.73-8.el6_8.x86_64 already installed and latest version
Nothing to do
[root@linux-proxy tools] #

啓動剛裝的mysql,並設置密碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[root@linux-proxy tools] # /etc/init.d/mysqld start
Initializing MySQL database:  WARNING: The host 'linux-proxy.example.com' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK
 
To start mysqld at boot time you have to copy
support-files /mysql .server to the right place for your system
 
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
 
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h linux-proxy.example.com password 'new-password'
 
Alternatively you can run:
/usr/bin/mysql_secure_installation
 
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
 
See the manual for more instructions.
 
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
 
You can test the MySQL daemon with mysql- test -run.pl
cd /usr/mysql-test ; perl mysql- test -run.pl
 
Please report any problems with the /usr/bin/mysqlbug script!
 
                                                            [  OK  ]
Starting mysqld:                                           [  OK  ]
[root@linux-proxy tools] # /usr/bin/mysqladmin -uroot password 'zabbix'
[root@linux-proxy tools] # mysql -uroot -pzabbix
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73 Source distribution
 
Copyright (c) 2000, 2013, Oracle and /or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and /or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)
 
mysql>

  

建立zabbix_proxy庫,並受權zabbix用戶,導入數據

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[root@linux-proxy tools] # rpm -ql zabbix-proxy-mysql
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-2 .4.8
/usr/share/doc/zabbix-proxy-mysql-2 .4.8 /create
/usr/share/doc/zabbix-proxy-mysql-2 .4.8 /create/schema .sql
[root@linux-proxy tools] # /usr/bin/mysqladmin -uroot password 'zabbix'
/usr/bin/mysqladmin : connect to server at 'localhost' failed
error: 'Access denied for user ' root '@' localhost ' (using password: NO)'
[root@linux-proxy tools] # mysql -uroot -pzabbix
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution
 
Copyright (c) 2000, 2013, Oracle and /or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and /or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> create database zabbix_proxy character set utf8;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix' ;
Query OK, 0 rows affected (0.00 sec)
 
mysql> use zabbix_proxy;
Database changed
mysql> source  /usr/share/doc/zabbix-proxy-mysql-2 .4.8 /create/schema .sql
Query OK, 0 rows affected (0.01 sec)
 
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

  

修改proxy配置文件
 
?
1
[root@linux-proxy tools] # vim /etc/zabbix/zabbix_proxy.conf

看到以下注釋,proxy也能夠運行在Active和Passtive模式下,工做中主要仍是運行在Active模式下

 

這裏雖然默認是0,最好是取消註釋,下面是Zabbix Server的地址

 

下面這裏是Zabbix Server的端口,默認就是10051,不用更改,下面是proxy的名稱,這裏不要和別的proxy以及agent重名了。
 

 DBHost和DBName都沒變,不用修改

 

 

 用戶名和密碼。

檢查配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@linux-proxy tools] # vim /etc/zabbix/zabbix_proxy.conf
[root@linux-proxy tools] # grep '^[a-Z]'  /etc/zabbix/zabbix_proxy.conf
ProxyMode=0
Server=10.0.1.161
Hostname=node3-proxy
LogFile= /var/log/zabbix/zabbix_proxy .log
LogFileSize=0
PidFile= /var/run/zabbix/zabbix_proxy .pid
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
DBSocket= /var/lib/mysql/mysql .sock
ExternalScripts= /usr/lib/zabbix/externalscripts
[root@linux-proxy tools] #

  

 啓動服務,檢查監聽,看到proxy使用的是10051端口
?
1
2
3
4
5
6
7
8
9
10
11
[root@linux-proxy tools] # /etc/init.d/zabbix-proxy start
Starting Zabbix proxy:                                     [  OK  ]
[root@linux-proxy tools] # netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID /Program name  
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2076 /sshd          
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      13310 /zabbix_proxy 
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      13219 /mysqld       
tcp        0      0 :::22                       :::*                        LISTEN      2076 /sshd          
tcp        0      0 :::10051                    :::*                        LISTEN      13310 /zabbix_proxy 
[root@linux-proxy tools] #

  

 
接下來在zabbix-server上加上這個proxy節點

 

生產中最好把描述寫上,方便別人

 

接下來相似正常添加主機,先把下面的刪除了

 

 
接下來把node2加進去,讓proxy監控,和通常加主機沒太多區別

 

下面這裏要選擇proxy

 
先彆着急add,模板這裏也要改。改爲以下

 

 添加完畢,以下

還須要把node2的指向改爲proxy

?
1
[root@linux-node2 ~] # vim /etc/zabbix/zabbix_agentd.conf

下面改爲proxy地址,由於它要把數據發給proxy

重啓agent

?
1
2
3
4
[root@linux-node2 ~] # /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node2 ~] #

  

配置的一個小插曲
網頁上加入對linux-node2.example.com 主機的監控,Zabbix Proxy必須能解析node2的主機名。若是解析不了,會報以下錯誤
?
1
2
3
4
5
6
7
8
9
10
11
[root@linux-proxy tools] # tail -f /var/log/zabbix/zabbix_proxy.log
  13537:20170315:225713.912 proxy #17 started [http poller #1]
  13542:20170315:225713.918 proxy #22 started [history syncer #4]
  13531:20170315:225713.918 proxy #11 started [trapper #2]
  13543:20170315:225713.918 proxy #23 started [self-monitoring #1]
  13532:20170315:225713.918 proxy #12 started [trapper #3]
  13528:20170315:225713.919 proxy #8 started [poller #5]
  13533:20170315:225713.922 proxy #13 started [trapper #4]
  13538:20170315:225713.941 proxy #18 started [discoverer #1]
  13520:20170315:225813.966 sending heartbeat message to server failed: error: "negative response: " failed "" , info: "proxy " linux-proxy.example.com " not found"
  13534:20170315:225858.853 cannot send list of active checks to [10.0.1.162]: host [linux-node2.example.com] not found

  

下面是正常狀況下的日誌,Proxy從Server那邊獲取數據,而後接受node2的數據,若是解析不了node2的主機名,就會報上面錯誤
?
1
2
3
4
5
6
7
8
9
10
11
[root@linux-proxy tools] # tail -f /var/log/zabbix/zabbix_proxy.log
  13638:20170315:230149.414 proxy #17 started [http poller #1]
  13642:20170315:230149.415 proxy #21 started [history syncer #3]
  13634:20170315:230149.415 proxy #13 started [trapper #4]
  13637:20170315:230149.420 proxy #16 started [housekeeper #1]
  13641:20170315:230149.420 proxy #20 started [history syncer #2]
  13633:20170315:230149.424 proxy #12 started [trapper #3]
  13643:20170315:230149.426 proxy #22 started [history syncer #4]
  13635:20170315:230149.431 proxy #14 started [trapper #5]
  13639:20170315:230149.448 proxy #18 started [discoverer #1]
  13620:20170315:230149.453 received configuration data from server, datalen 7423

  

 另外proxy的配置文件,這裏能夠隨便寫,可是要有意義,還不能和別的重名

 

 網頁這裏配置的proxy名字也要對應

 

 
 
 
 

Zabbox自動化監控---自動註冊


 

自動化監控分爲:
agent自動註冊
server端自動發現
經過zabbix api方式插入數據(好比從cmdb讀取資產裏的主機,而後經過Zabbix的api插入Zabbix數據庫)

 
 
 自動註冊確定運行在主動模式下了
頁面上刪除機器,使用自動註冊讓它被監控
更改agent配置
 
 
下面的163結尾的地址是proxy的地址
 

 

 
hostname確定是惟一的

 

 
一、自動註冊
下面這個相似角色,模板
下面是你的主機元數據,經過獲取agent端的元數據,能夠提取關鍵字,而後關聯相應的模板。這裏不用修改
 
system.uname是什麼呢,做用是什麼呢,我這metadata是經過這個監控項獲取,你不用設置

 

經過zabbix_get 獲取值下面,相似uname -a的輸出
看到有Linux,server端就給你加Linux模板
?
1
2
[root@linux-node1 ~] # zabbix_get -s 10.0.1.161 -k system.uname
Linux linux-node1.example.com 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64
就改了上面這一個
?
1
2
3
4
[root@linux-node2 ~] # /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node2 ~] #

  

接下來web頁面配置
配置一個事件,不多有人看到事件源自哪裏
選擇自動註冊,這樣再選擇create action
 

 

 

 

 

條件,由於那個zabbix連在proxy上的
首先你那個agent主機是連在proxy上的,其次你的matedata相似Linux
 
就是下面這種
?
1
2
[root@linux-node1 ~] # zabbix_get -s 10.0.1.161 -k system.uname
Linux linux-node1.example.com 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64

這兩個條件
注意你的條件是a and b,operation 表示你想讓它幹什麼。添加這臺主機,而後添加主機組,再link一個模板

建立完畢,等着,一會就出現了發現的主機

 

 

 

一會出來了
你要是以爲慢,能夠重啓下agent,agent第一次起來就去請求數據了
檢查,已經自動加入到組裏了
已經自動link上模板了

 

 
 
Zabbox自動化監控---自動發現
 
此次不會用到Zabbix proxy,是Zabbix server主動掃描IP段,繼續刪除這臺機器
刪除完畢後action這裏自動註冊關閉了,防止干擾下面的實驗,你覺得成功了,實際上是它的功勞

 

接下來不使用proxy了
使用discovery,你能夠配置一下掃描一個ip段,掃描到以後把它加進來
先改爲被動模式,node的agent.conf改爲以下,server的地址

 

StartAgents改爲3

 

下面這裏改爲默認的127.0.0.1
 
其他的不用管了
?
1
2
3
4
5
6
7
8
9
10
11
12
[root@linux-node2 ~] # grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile= /var/run/zabbix/zabbix_agentd .pid
LogFile= /var/log/zabbix/zabbix_agentd .log
LogFileSize=0
Server=10.0.1.161
StartAgents=3
ServerActive=127.0.0.1
Hostname=linux-node2.example.com
HostMetadataItem=system. uname
Include= /etc/zabbix/zabbix_agentd .d/
UserParameter=login-user,uptime | awk -F ' '  '{print $4}'
[root@linux-node2 ~] #

  

以上就是改爲被動模式,啓用監聽端口,連上server
?
1
2
3
4
[root@linux-node2 ~] # /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@linux-node2 ~] #
 
discovery默認有一個,點開

 

 

 
IP range小點,否則等待全部主機超時,慢,由於作實驗,因此無所謂
以IP地址爲標識
勾上enabled

 

 

這時候須要建立action,注意右邊

 

 

默認有一個是關閉的,在它的基礎上改

 

默認的這些都不用改

 

operation這裏添加add host

 

而後點擊右邊的啓用

 

看到這裏又自動發現了

  

######################################################################################

Zabbix api


 

對於以上兩種方式,有些人都不選,傾向於使用第三種:使用zabbix api加上這個監控
在把這臺機器刪除了,而後discovery和自動註冊的都關閉了
再換一種方式把它加進去,zabbix api兩個做用
一、管理zabbix
二、查詢一些數,把一些zabbix報警的圖形一塊發郵件
它支持不少方法

 

api的配置,在httpd.conf目錄下。以下編輯zabbix.conf

?
1
[root@linux-node1 ~] # vim /etc/httpd/conf.d/zabbix.conf

 

接口文件在以下目錄下
?
1
2
3
4
5
6
[root@linux-node1 zabbix] # cd /usr/share/zabbix/
[root@linux-node1 zabbix] # ls api_jsonrpc.php
api_jsonrpc.php
[root@linux-node1 zabbix] # ls api_jsonrpc.php -l
-rw-r--r-- 1 root root 2342 Apr 20  2016 api_jsonrpc.php
[root@linux-node1 zabbix] #

 

能夠看到,首先它是個api,傳輸模式是rpc的,傳輸格式是json的
既然是api,那確定有驗證,給api發用戶名密碼,得返回token吧
後面拿這個token就能夠繼續請求了,和openstack相似
打開文檔看
https://www.zabbix.com/documentation/2.4/manual/api/reference
第一步,由於涉及登陸,找用戶相關的

 

Authenticate a user.
Request:

?
1
2
3
4
5
6
7
8
9
{
     "jsonrpc": "2.0",
     "method": "user.login",
     "params": {
         "user": "Admin",
         "password": "zabbix"
     },
     "id": 1
}

Response:

?
1
2
3
4
5
{
     "jsonrpc": "2.0",
     "result": "0424bd59b807674191e7d77572075f33",
     "id": 1
}

  

返回的這個就是要的sessionid,後面的請求帶着session就可了

 

經過curl訪問

-s 靜默
-X POST
-H 接類型
-d 接內容,用單引號引發來

粘貼到命令行上,回車後返回一串值
?
1
2
3
4
5
6
7
8
9
10
11
12
[root@linux-node2 ~] # curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
{
     "jsonrpc" : "2.0" ,
     "method" : "user.login" ,
     "params" : {
         "user" : "Admin" ,
         "password" : "zabbix"
     },
     "id" : 1
}'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php
{ "jsonrpc" : "2.0" , "result" : "5733cec620a75d1f7e2ebcf725c7ccec" , "id" :1}[root@linux-node2 ~] #
[root@linux-node2 ~] #

看着不舒服,給它處理下,調用python的工具處理下,命令以下

?
1
2
3
4
5
6
7
8
9
10
11
curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
 
{
     "jsonrpc" : "2.0" ,
     "method" : "user.login" ,
     "params" : {
         "user" : "Admin" ,
         "password" : "zabbix"
     },
     "id" : 1
}'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool

  

執行以下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@linux-node2 ~] # curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
>
> {
>     "jsonrpc" : "2.0" ,
>     "method" : "user.login" ,
>     "params" : {
>         "user" : "Admin" ,
>         "password" : "zabbix"
>     },
>     "id" : 1
> }'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool
{
     "id" : 1,
     "jsonrpc" : "2.0" ,
     "result" : "d05f9fa13c8b182d61e462b8aaded670"
}
[root@linux-node2 ~] #

  

 

上面爲何要設置id,由於可能又多個請求,給不一樣的會話設置不一樣的id
你才知道這個是你的
把這個字符串記錄下來

d05f9fa13c8b182d61e462b8aaded670

你請求的時候還能夠加個下面userdata爲true,這樣還能返回用戶信息

 命令以下

?
1
2
3
4
5
6
7
8
9
10
11
curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
{
     "jsonrpc" : "2.0" ,
     "method" : "user.login" ,
     "params" : {
         "user" : "Admin" ,
         "password" : "zabbix" ,
         "userData" : true
     },
     "id" : 1
}'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool

執行以下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@linux-node2 ~] # curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
> {
>     "jsonrpc" : "2.0" ,
>     "method" : "user.login" ,
>     "params" : {
>         "user" : "Admin" ,
>         "password" : "zabbix" ,
>         "userData" : true
>     },
>     "id" : 1
> }'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool
{
     "id" : 1,
     "jsonrpc" : "2.0" ,
     "result" : {
         "alias" : "Admin" ,
         "attempt_clock" : "0" ,
         "attempt_failed" : "0" ,
         "attempt_ip" : "" ,
         "autologin" : "1" ,
         "autologout" : "0" ,
         "debug_mode" : false ,
         "gui_access" : "0" ,
         "lang" : "en_GB" ,
         "name" : "Zabbix" ,
         "refresh" : "30" ,
         "rows_per_page" : "50" ,
         "sessionid" : "dbfdc9c932d15760f0ed05bb5955511b" ,
         "surname" : "Administrator" ,
         "theme" : "default" ,
         "type" : "3" ,
         "url" : "" ,
         "userid" : "1" ,
         "userip" : "10.0.1.162"
     }
}
[root@linux-node2 ~] #

  

接下來獲取監控的主機有哪些

 https://www.zabbix.com/documentation/2.4/manual/api/reference/user/get

找一個簡單的,只獲取hostid,注意auth是sessionid

?
1
2
3
4
5
6
7
8
9
10
curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
{
     "jsonrpc" : "2.0" ,
     "method" : "host.get" ,
     "params" : {
         "output" : [ "hostid" ]      
     },
     "auth" : "dbfdc9c932d15760f0ed05bb5955511b" ,
     "id" : 2
} '   http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool

執行結果以下,hostid是10084

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@linux-node2 ~] # curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
> {
>     "jsonrpc" : "2.0" ,
>     "method" : "host.get" ,
>     "params" : {
>         "output" : [ "hostid" ]      
>     },
>     "auth" : "dbfdc9c932d15760f0ed05bb5955511b" ,
>     "id" : 2
> } '   http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool
{
     "id" : 2,
     "jsonrpc" : "2.0" ,
     "result" : [
         {
             "hostid" : "10084"
         }
     ]
}
[root@linux-node2 ~] #

 

hostid就是下面這裏的

 

 

 

把hostid改爲host看看是否返回主機名
?
1
2
3
4
5
6
7
8
9
10
curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
{
     "jsonrpc" : "2.0" ,
     "method" : "host.get" ,
     "params" : {
         "output" : [ "host" ]      
     },
     "auth" : "dbfdc9c932d15760f0ed05bb5955511b" ,
     "id" : 2
} '   http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool

執行結果以下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@linux-node2 ~] # curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
> {
>     "jsonrpc" : "2.0" ,
>     "method" : "host.get" ,
>     "params" : {
>         "output" : [ "host" ]      
>     },
>     "auth" : "dbfdc9c932d15760f0ed05bb5955511b" ,
>     "id" : 2
> } '   http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool
{
     "id" : 2,
     "jsonrpc" : "2.0" ,
     "result" : [
         {
             "host" : "Zabbix server" ,
             "hostid" : "10084"
         }
     ]
}
[root@linux-node2 ~] #

  

 

 

也能夠判斷它是否存在

 

 

 

接下來使用api方式添加被監控主機

https://www.zabbix.com/documentation/2.4/manual/api/reference/host/create

 

建立的時候能夠指定模板,以及主機組

 

在官網裏看到實例以下,添加主機的時候能夠指定模板,主機組,資產

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
     "jsonrpc" : "2.0" ,
     "method" : "host.create" ,
     "params" : {
         "host" : "Linux server" ,
         "interfaces" : [
             {
                 "type" : 1,
                 "main" : 1,
                 "useip" : 1,
                 "ip" : "192.168.3.1" ,
                 "dns" : "" ,
                 "port" : "10050"
             }
         ],
         "groups" : [
             {
                 "groupid" : "50"
             }
         ],
         "templates" : [
             {
                 "templateid" : "20045"
             }
         ],
         "inventory_mode" : 0,
         "inventory" : {
             "macaddress_a" : "01234" ,
             "macaddress_b" : "56768"
         }
     },
     "auth" : "038e1d7b1735c6a5436ee9eae095879e" ,
     "id" : 1
}

查看linux servers這個主機組,它的組id是2

 

再找一個模板id,看到模板id是10001

 

 

 先獲取受權的sessionid

?
1
2
3
4
5
6
7
8
9
10
11
curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
  
{                   
     "jsonrpc" : "2.0" ,
     "method" : "user.login" ,
     "params" : {
         "user" : "Admin" ,
         "password" : "zabbix"
     },                   
     "id" : 1              
}'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool

根據返回的sessionid來建立主機

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@linux-node2 ~] # curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
  
{                   
     "jsonrpc" : "2.0" ,
     "method" : "user.login" ,
     "params" : {
         "user" : "Admin" ,
         "password" : "zabbix"
     },                   
     "id" : 1              
}'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool
{
     "id" : 1,
     "jsonrpc" : "2.0" ,
     "result" : "4c0999123f2da1b09b6a079c02a363ad"
}
[root@linux-node2 ~] #

  

 

 

 執行命令以下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
{
     "jsonrpc" : "2.0" ,
     "method" : "host.create" ,
     "params" : {
         "host" : "Linux server" ,
         "interfaces" : [
             {
                 "type" : 1,
                 "main" : 1,
                 "useip" : 1,
                 "ip" : "10.0.1.162" ,
                 "dns" : "" ,
                 "port" : "10050"
             }
         ],
         "groups" : [
             {
                 "groupid" : "2"
             }
         ],
         "templates" : [
             {
                 "templateid" : "10001"
             }
         ]
     },
     "id" : 1,
     "auth" : "4c0999123f2da1b09b6a079c02a363ad"
}'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool

  

 

 執行結果以下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[root@linux-node2 ~] # curl  -s  -X  POST   -H  'Content-Type:application/json'  -d '
> {
>     "jsonrpc" : "2.0" ,
>     "method" : "host.create" ,
>     "params" : {
>         "host" : "Linux server" ,
>         "interfaces" : [
>             {
>                 "type" : 1,
>                 "main" : 1,
>                 "useip" : 1,
>                 "ip" : "10.0.1.162" ,
>                 "dns" : "" ,
>                 "port" : "10050"
>             }
>         ],
>         "groups" : [
>             {
>                 "groupid" : "2"
>             }
>         ],
>         "templates" : [
>             {
>                 "templateid" : "10001"
>             }
>         ]
>     },
>     "id" : 1,
>     "auth" : "4c0999123f2da1b09b6a079c02a363ad"
> }'  http: //10 .0.1.161 /zabbix/api_jsonrpc .php |python -mjson.tool
{
     "id" : 1,
     "jsonrpc" : "2.0" ,
     "result" : {
         "hostids" : [
             "10116"
         ]
     }
}
[root@linux-node2 ~] #

  

建立成功

 

點開看看

 

 

模板也自動加上了

相關文章
相關標籤/搜索