当前位置:首页 » 网页前端 » zabbix前端框架
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

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 jcwu@ubuntu:~$ sudo apt-get update

2 jcwu@ubuntu:~$ sudo apt-get install php5-cgi

3 jcwu@ubuntu:~$ sudo useradd www #php运行用户

php-cgi控制脚本

view sourceprint?01 jcwu@ubuntu:~$ 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 jcwu@ubuntu:~$ sudo update-rc.d php-fcgi defaults #添加至系统启动项

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

view sourceprint?01 jcwu@ubuntu:~$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 jcwu@ubuntu:~$ sudo apt-get update

14 jcwu@ubuntu:~$ 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 jcwu@ubuntu:~$ 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 zabbix@localhost 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,带控制面板的,纯中文绿色解压即可