當前位置:首頁 » 網頁前端 » zabbix前端框架
擴展閱讀
安卓應用緩存怎麼回事 2022-07-06 21:42:14

zabbix前端框架

發布時間: 2022-05-19 03:28:26

Ⅰ 如何通過Zabbix獲取監控數據

zabbix基本架構:
1.Server
zabbix系統核心進程,輪詢並捕獲數據、發送通知等。是zabbix agent和zabbix proxy匯報數據的對象。server自身可遠程檢測網路服務。所有的前後端配置、統計信息、可操作數據存儲於此。包含server、前段界面和後端DB幾部分。
2.Agent
部署在被監控主機上用於監控本地資源和應用並向zabbix server匯報結果。使用本地系統調用故非常高效。有主動和被動兩種檢測模式。被動模式下agent根據server或proxy的具體請求來返回數據。主動模式下先主動由server獲取監控項列表在檢測並返回新的數據。採用主動或被動檢測取決於相應監控項的配置。
3.Proxy
可以自由選擇部署或者不部署,主要用於分擔server的負載。在集中化監控遠程位置、分支、網路的場景中是很好的解決方案。可從被監控設備收集數據緩存在proxy本地後傳遞給其所屬的zabbix server。proxy需要單獨的資料庫
4.Java gateway
java實現的守護進程用於監控JMX類型的應用程序。
5.Sender
命令行工具zabbix_sender,用於向zabbix server發送性能數據和可用性數據。多用於用戶腳本定期向server發送數據。
如:
shell> cd bin
shell> ./zabbix_sender -z zabbix -s "Linux DB3" -k db.connections -o 43
6.Get
命令行工具zabbix_get,用於同agent通信從agent獲取數據。可用於zabbix agents的troubleshooting。
如:
shell> cd bin
shell> ./zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"
#zabbix術語表:
host
需要被監控的設備,如交換機、路由器、WEB伺服器、DB伺服器等
host group
被監控設備的邏輯分組,如DB伺服器一組、WEB伺服器一組等。可包含主機和模板。用於許可權控制
item
需要被監控的項,如CPU空閑率、某一塊磁碟的使用率等
trigger
用於評估收到的監控值是否超出設定的閾值的邏輯表達式
event
如trigger狀態改變等值得注意的事件
action
預先定義的響應event的一系列operations
escalation
執行action中的operations的定製場景;一連串的發送通知、執行遠程命令
media
傳遞notification的方式
notification
通過media發送給用戶的關於某個event的消息
remote command
在被監控機器上觸發並自動執行的預定義命令
template
用於簡化和加速主機上大規模監控任務的部署。包含一系列項目,如items, triggers, graphs, screens, applications, low-level discovery rules
application
邏輯組中的一組items
web scenario
一個或多個HTTP request用以檢查web站點可用性
frontend
zabbix的web界面
zabbix api
允許通過JSON RPC 協議創建、更新和獲取zabbix對象如,hosts, items, graphs and others。或者執行其他任務
zabbix server
zabbix核心,履行監控,與zabbix proxies、zabbix client交互、計算trigger、發送notification、存儲數據等任務
zabbix agent
部署在被監控主機上用於監控本地資源和應用
zabbix proxy
可代zabbix server收集數據分擔處理負載
#zabbix配置:
可通過WEB界面或者模板進行配置
需配置內容包括users、user groups、hosts、host groups、items、Triggers、Events、notification、templates、visualisation等。
最終配置會被存儲在後端database中。
zabbix取數方式
1.zabbix api
基於WEB的API,通過JSON PRC協議獲取或更改zabbix配置,並可用於獲取歷史監控數據。clients和API間的request和response使用JSON格式。包含一系列可從功能上分為不同組別的方法。
發起HTTP請求的格式類似如下:
POST HTTP/1.1
Content-Type: application/json-rpc
{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}
其中是zabbix前端的地址;Content-Type必須指明且為application/json-rpc, application/json or application/jsonrequest三者之一。{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}是請求的具體內容。
一些實例:
*登錄認證
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}
其中:
jsonrpc:指明JSON-RPC協議版本,這里是2.0版本
method:指明調用的API方法,這里是用戶登錄
params:需要傳遞給API method的參數,這里是用戶名和密碼
id:本次請求的標識符
auth:用戶認證令牌,目前尚無所以為null
若參數無誤response將會包含用戶認證令牌,如:
{
"jsonrpc": "2.0",
"result": "",
"id": 1
}
*獲取hosts信息
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": ""
}
本例使用可用的用戶認證令牌通過host.get方法獲取所配置的主機的ID 、name等信息,返回如下
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "10084",
"host": "Zabbix server",
"interfaces": [
{
"interfaceid": "1",
"ip": "127.0.0.1"
}
]
}
],
"id": 2
}
為了考慮性能影響、盡量僅列出所需項而非返回所有數據
*創建新監控項
例如在上一步獲取的host上建立新的監控項、監控/home/joe/目錄的剩餘空間
{
"jsonrpc": "2.0",
"method": "item.create",
"params": {
"name": "Free disk space on $1",
"key_": "vfs.fs.size[/home/joe/,free]",
"hostid": "10084",
"type": 0,
"value_type": 3,
"interfaceid": "1",
"delay": 30
},
"auth": "",
"id": 3
}
其中params參數中的幾個關鍵參數含義如下:
name:監控項的名稱,這個可以自己靈活定義,其中的$1代表key_中的第一個參數,此處為/home/joe/
key_:預定義的監控項,zabbix提供了一系列此類監控內容,此處需從其中進行選擇。
hostid:即上步獲得的hostid
value_type:監控數據值的類型,不同的數字代表不同的類型,此處的3代表整型
delay:zabbix取數時間間隔,此處為30秒取一次
返回結果如下:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"24759"
]
},
"id": 3
}
itemid為生成的監控項的id
*獲取歷史數據:
從歷史記錄表獲取itemids為23296的按clock降序排列的十條記錄
history參數可能的取值
0 - float;
1 - string;
2 - log;
3 - integer;
4 - text.
{
"jsonrpc": "2.0",
"method": "history.get",
"params": {
"output": "extend",
"history": 0,
"itemids": "23296",
"sortfield": "clock",
"sortorder": "DESC",
"limit": 10
},
"auth": "",
"id": 1
}
返回結果:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "23296",
"clock": "1351090996",
"value": "0.0850",
"ns": "563157632"
},
{
"itemid": "23296",
"clock": "1351090936",
"value": "0.1600",
"ns": "549216402"
},
...]
}
*錯誤處理
下例忘記了groups這個參數
{
"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"
}
]
},
"id": 3,
"auth": ""
}
返回結果如下,包含的不是result屬性而是error屬性
{
"jsonrpc": "2.0",
"error": {
"code": -32602,
"message": "Invalid params.",
"data": "No groups for host \"Linux server\"."
},
"id": 3
}
對於獲取監控數據來說,比較關心的應該是history.get這個方法。這種方式實際上最終還是由後台資料庫獲取的。方法提供了豐富的參數,使用非常靈活。但對於一次性大規模的取出大量主機大量監控項的大批數據不太適合。

Ⅱ 如何在ubuntu下編譯安裝zabbix系統

第一部分,php\nginx\mysql組件安裝
1,php-cgi
zabbix的web前端是用php寫成的,需要php來運行

view sourceprint?1 [email protected]:~$ sudo apt-get update

2 [email protected]:~$ sudo apt-get install php5-cgi

3 [email protected]:~$ sudo useradd www #php運行用戶

php-cgi控制腳本

view sourceprint?01 [email protected]:~$ cat /etc/init.d/php-fcgi

02 #!/bin/bash

03

04 BIND=127.0.0.1:9000

05 USER=www

06 PHP_FCGI_CHILDREN=15

07 PHP_FCGI_MAX_REQUESTS=1000

08 PHP_CGI=/usr/bin/php-cgi

09 PHP_CGI_NAME=`basename $PHP_CGI`

10 PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"

11 RETVAL=0

12

13 start() {

14 echo -n "Starting PHP FastCGI: "

15 start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS

16 RETVAL=$?

17 echo "$PHP_CGI_NAME."

18 }

19 stop() {

20 echo -n "Stopping PHP FastCGI: "

21 killall -q -w -u $USER $PHP_CGI

22 RETVAL=$?

23 echo "$PHP_CGI_NAME."

24 }

25

26 case "$1" in

27 start)

28 start

29 ;;

30 stop)

31 stop

32 ;;

33 restart)

34 stop

35 start

36 ;;

37 *)

38 echo "Usage: php-fastcgi {start|stop|restart}"

39 exit 1

40 ;;

41 esac

42 exit $RETVAL

43

44 [email protected]:~$ sudo update-rc.d php-fcgi defaults #添加至系統啟動項

2,nginx
參考http://wiki.nginx.org/Install

view sourceprint?01 [email protected]:~$sudo vi /etc/apt/source.list

02 #在文件尾添加以下2行

03 deb http://nginx.org/packages/ubuntu/ lucid nginx

04 deb-src http://nginx.org/packages/ubuntu/ lucid nginx

05 #############官方文檔中如下#######################################

06 su -s

07 nginx=stable # use nginx=development for latest development version

08 add-apt-repository ppa:nginx/$nginx

09 # add-apt-repository 安裝命令為 apt-get install python-software-properties

10 apt-get update

11 apt-get install nginx

12 #############我的安裝命令########################################

13 [email protected]:~$ sudo apt-get update

14 [email protected]:~$ sudo apt-get install nginx

設置php-cgi

view sourceprint?1 sudo vi /etc/nginx/conf.d/default.conf

將root html提前到server_name下面
將location /中的index 指令後加上index.php
設置php解析

view sourceprint?01 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

02 #

03 location ~ \.php$ {

04 root html;

05 fastcgi_pass 127.0.0.1:9000;

06 fastcgi_index index.php;

07 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

08 #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

09 fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;

10 include fastcgi_params;

11 }

測試

view sourceprint?1 sudo vi /usr/share/nginx/html/info.php

2 #添加

3 <!--?php phpinfo(); ?-->

4 #然後reload nginx

5 sudo kill -HUP $(cat /var/run/nginx.pid)

在瀏覽器中打開http://192.168.1.115/info.php

這樣就OK了
3,mysql
用來存儲監控數據,這里可以選很多種db2、mysql、oracle、postgresql、sqlite

view sourceprint?1 [email protected]:~$ sudo apt-get install mysql-server

第二部分,zabbix編譯安裝和web前面配置

0-准備工作

view sourceprint?1 #安裝編譯套件

2 sudo apt-get install build-essential

3 #安裝php前端需要的包

4 sudo apt-get install libmysqlclient15-dev php5-gd php5-mysql

5 #安裝zabbix需要的包,snmp\curl\ssl\fping

6 sudo apt-get install snmp libsnmp-dev snmpd libcurl4-openssl-dev fping

1-添加用戶,並添加到admin用戶組

view sourceprint?1 sudo adser zabbix

2 sudo adser zabbix admin

2-獲取zabbix 1.8.11 源碼包,並解壓

view sourceprint?1 cd /usr/src && wget http //prdownloads sourceforge net/zabbix/zabbix-1.8.11.tar.gz?download

2 sudo mv zabbix-1.8.11.tar.gz?download zabbix-1.8.11.tar.gz

3 tar xvf zabbix-1.8.11.tar.gz

3-mysql資料庫初始化

view sourceprint?1 mysql -uroot -p -e"create database zabbix;"

2 mysql -uroot -p -e"grant all privileges on zabbix.* to [email protected] identified by 'zabbix';"

3 mysql -D zabbix -uzabbix -pzabbix < zabbix-1.8.11/create/schema/mysql.sql

4 mysql -D zabbix -uzabbix -pzabbix < zabbix-1.8.11/create/data/data.sql

5 mysql -D zabbix -uzabbix -pzabbix < zabbix-1.8.11/create/data/images_mysql.sql

4-編譯安裝

view sourceprint?1 cd zabbix-1.8.11/

2 ./configure --prefix=/usr/local --with-mysql --with-net-snmp \

3 --with-libcurl --enable-server --enable-agent && \

4 make

5 sudo make install

6 #--with-net-snmp是啟用SNMP協議

7 #--with-libcurl是監控web網站用的

8 #--enable-server只可在服務端上使用

9 #其它還有IPMI等,參閱./configure --help

5-系統其它設置

view sourceprint?1 sudo vi /etc/services

2 #添加

3 zabbix_agent 10050/tcp # Zabbix ports

4 zabbix_trap 10051/tcp

6-設置zabbix配置文件目錄

view sourceprint?1 sudo mkdir /etc/zabbix

2 sudo chown -R zabbix.zabbix /etc/zabbix/

3 cp misc/conf/zabbix_* /etc/zabbix/

修改配置文件zabbix_server.conf

view sourceprint?1 vi /etc/zabbix/zabbix_server.conf

搜索DBUser DBPassword這兩個關鍵字,替換為前面mysqlDB中設置的用戶和密碼(這里都是zabbix\zabbix)
7-設置zabbix開機啟動

view sourceprint?1 sudo cp misc/init.d/debian/zabbix-server /etc/init.d

2 sudo cp misc/init.d/debian/zabbix-agent /etc/init.d

3 cd !$

4 sudo chmod 755 zabbix-*

5 sudo update-rc.d zabbix-server defaults

6 sudo update-rc.d zabbix-agent defaults

其實misc/init.d/ubuntu/下面還有2個conf配置文件,但這個扔/etc/init.d里來啟動zabbix會報錯
8-zabbix web界面安裝設置

view sourceprint?1 sudo mkdir /usr/share/nginx/html/zabbix/

2 cd /usr/src/zabbix-1.8.11/frontends/ && sudo cp -r php /usr/share/nginx/html/zabbix

在瀏覽器中打開http://192.168.1.115/zabbix開始web界面的setup
這里有2個重要的地方,一是 zabbix會檢查php的設置
如下圖,圖中標紅的是默認需要修改的參數,php的設置文件為/etc/php5/cgi/php.ini
改完後記得

view sourceprint?1 sudo service php-fcgi restart

二是mysql db的設置

最後,要手動將生成的設置文件zabbix.conf.php上傳到/usr/share/nginx/html/zabbix/conf
gnome終端對rz支持不好,我就不上傳了,而是直接將下載的zabbix.conf.php的內容進行Ctl+C,直接在伺服器上vi zabbix.conf.php然後再Shift+Insert粘貼進去
然後再點幾個Next.就安裝完了
zabbix默認用戶是admin,密碼是zabbix,登陸後一定要修改。

Ⅲ zabbix 前端代碼 是什麼框架

zabbix web應用使用PHP開發,大量應用OOP方法,主要採用MVC架構,由controller實例進行邏輯處理,最後通過view實例輸出。創建controller對象時,controller的類名通過CRouter來獲取,所有zabbix的路由是一種靜態路由,即所訪問的地址是固定的。另外還有一種單層處理模式,直接有請求的PHP腳本處理並輸出。

zabbix web應用通過判斷請求的url是否包含action參數來決定採用什麼模式處理,如果包含action參數就採用MVC模式,否則採用單層處理模式。
希望能夠幫助到你~

Ⅳ 運維監控 zabbix可以做哪些監控

1、監控windows進程內存。在C盤中創建腳本a.bat,內容tasklist。

Ⅳ 各位大神,我想問一下zabbix監控,主要用到了什麼技術,求解答,在線等急,謝謝各位

  1. linux操作系統的使用 (zabbix server是搭建在linux環境下)

  2. web服務搭建知識 (比如apache,nginx配置)

  3. 資料庫知識 (配置資料庫,簡單的增刪改查)

最後,如果想二次開發還需要你掌握一門編程語言,因為zabbix僅僅提供了一個框架和解決方案,如果只是簡單的監控zbx基本滿足需求,畢竟現在監控多維度監控,以前的監控cpu,mem,disk目前已經無法滿足目前的監控需求。所以入門簡單,玩深了還是需要稍微用點時間。

Ⅵ zabbix需要有php的基礎嗎

php的,用了thinkphp框架,i wipe,又造一遍輪子,之前和小夥伴@淑高用python弄過一個簡單的運維後台,集成了saltstack和ansible,後來離職了就沒搞了),現在想在cmdb系統中顯示伺服器的一些基本監控情況,這里用到zabbix api來獲取伺服器信息。

Ⅶ 如何把zabbix里的數據展示到前端

做過Zabbix的同學都知道,Zabbix通過專用的Agent或者SNMP收集相關的監控數據,然後存儲到資料庫裡面實時在前台展示。Zabbix監控數據主要分為以下兩類:
歷史數據:history相關表,從history_uint表裡面可以查詢到設備監控項目的最大,最小和平均值,即存儲監控數據的原始數據。
趨勢數據:trends相關表,趨勢數據是經過Zabbix計算的數據,數據是從history_uint裡面匯總的,從trends_uint可以查看到監控數據每小時最大,最小和平均值,即存儲監控數據的匯總數據。
Zabbix可以通過兩種方式獲取歷史數據:
1.通過Zabbix前台獲取歷史數據
通過Zabbix前台查看歷史數據非常簡單,可以通過Monitoring->Lastest data的方式查看。也可以點擊右上角的As plain test按鈕保存成文本文件。
2.通過前台獲取的數據進行處理和二次查詢有很多限制,因此可以通過SQL語句直接從後台DB查詢數據。
首先大家應該熟悉SQL語句Select 常用用法:

SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]
FROM { Table_name | View_name} [ [,{table2_name | view2_name}
[,…] ]
[ WHERE Serch_conditions ]
[ GROUP BY Group_by_list ]
[ HAVING Serch_conditions ]
[ ORDER BY Order_list [ASC| DEsC] ]
說明:
1)SELECT子句指定要查詢的特定表中的列,它可以是*,表達式,列表等。
2)INTO子句指定要生成新的表。
3)FROM子句指定要查詢的表或者視圖。
4)WHERE子句用來限定查詢的范圍和條件。
5)GROUP BY子句指定分組查詢子句。
6)HAVING子句用於指定分組子句的條件。
7)ORDER BY可以根據一個或者多個列來排序查詢結果,在該子句中,既可以使用列名,也可以使用相對列號,ASC表示升序,DESC表示降序。
8)mysql聚合函數:sum(),count(),avg(),max(),avg()等都是聚合函數,當我們在用聚合函數的時候,一般都要用到GROUP BY 先進行分組,然後再進行聚合函數的運算。運算完後就要用到Having子句進行判斷了,例如聚合函數的值是否大於某一個值等等。

Ⅷ zabbix可以監控什麼

zabbix server可以通過SNMP,zabbix agent,ping,埠監視等方法提供對遠程伺服器/網路狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

zabbix agent需要安裝在被監視的目標伺服器上,它主要完成對硬體信息或與操作系統有關的內存,CPU等信息的收集。

(8)zabbix前端框架擴展閱讀:

1、Agent監控方式

在Agent監控方式下,zabbix-agent會主動收集本機的監控信息並通過TCP協議與zabbix-server傳遞信息。

Agent監控方式分為主動和被動模式。在被動模式下,zabbix-agent監聽10050埠,等待zabbix-server的監控信息收集信息請求;在主動模式下,zabbix-agent收集監控信息並通過10050埠主動將數據傳給zabbix-server所在伺服器的10051埠。

2、Trapper監控方式

Trapper監控方式使用zabbix-sender程序主動向zabbix-server發送數據。key的名稱和發送的數據內容都可以靈活定義。發送的信息採用JSON格式,遵循zabbix-sender協議。可以自定義腳本利用zabbix-sender協議來zabbix-server發送信息。

3、SNMP監控方式

SNMP包括進程管理和被管理設備兩部分。作為一種國際通用的網路管理協議被廣泛的應用於各種交換機,路由器等網路設備的管理上,而現在也越來越多被用於對伺服器的監控上。

4、JMX監控方式

JMX是Java平台為應用程序,設備,系統等植入管理功能的框架。在zabbix中,JMX數據的獲取由zabbix-java-gateway代理程序來負責數據的採集。

5、IPMI監控方式

IPM原本是Intel架構中企業系統的周邊設備所採用的一種工業標准,以後成為業界通用的標准。用戶可以利用IPMI監控伺服器的物理特性,如溫度,電壓,電扇工作狀態,電源供應等指標。

Ⅸ zabbix zabbix_server服務端啟動,然後PHP卡死,nginx前端報502 bad getway錯誤

可能環境沒配好吧。可以使用phpfind或phpstudy。nginx+php一鍵安裝包。php版本可以任意切換。phpfind只有16m,帶控制面板的,純中文綠色解壓即可