学习zabbix(五)

前言


 

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix组件主要分两个: zabbix-server和zabbix-agent。支持的监控协议有ICMP,IPMI,SNMP,HTTP以及zabbix协议(zabbix协议是最常使用的协议用来监控各被监控端)。
收集的数据存放在数据库中,数据库支持mysql,oracle等等。
第三个组件:zabbix web gui这个接口提供web页面来监控和管理各被监控端。
第四个组件:zabbix proxy(实现分布式监控专用组件非必要组件,被监控服务器超过一千以上可以使用此组件。)

 

本次实验逻辑架构如下

 

 相关组件介绍

zabbix_get进程去客户端收集数据,
zabbix_agentd进程通过监听在一个套接字上接收
zabbix_get的请求,通过zabbix_sender将
数据收集发送给服务器端,数据保存在zabbix数据库中,
zabbix_get这种方法主要用于测试,通过写脚本或远程执行命令的方式。
zabbix server自己自动会周期性的去被监控端收集数据,收集哪些数据在服务器端事先定义。
zabbix server ,zabbix database,zabbix web gui 可以部署在一台服务器上,为了提升性能可以放在不同主机上。

 

zabbix一些常用术语


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的集合。
以上术语的关系可以用下图表示(大致明白就行):

 

 

 

上图中的poller这个进程就是去各客户端获取数据的。
zabbix产生的数据主要由四部分组成:
配置数据(忽略)
历史数据:50bytes
历史趋势数据: 128bytes
事件数据:130bytes
历史数据:采样生成的数据
历史趋势数据:每小时的最大值、最小值、平均值、统计
通过对以上数据的计算,可以得出我们需要一个多大的zabbix数据库,来定制磁盘硬件。
具体算法:
假设有60000个监控项,那每秒中处理的数据就有60000/60=1000条
历史数据大小=天数X每秒钟处理的数据量X24X3600X50Bytes
趋势数据:
每一个趋势128Bytes,
大小=天数X监控项X24X128Bytes
事件数据:
每个占据130Bytes
大小:天数X86400X130(假设每秒中产生一个事件)

 

本次实验的zabbix软件版本 

装下面这个版本,红框内选中的

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个步骤
1、改配置文件,在里面写上自定义的监控项
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

 

 

 

 勾选

 

 

有数据了

 

 

点击+ 可以加入到收藏里,然后在仪表盘查看

 

 

 

 

转载于:https://www.cnblogs.com/wuhg/p/10476503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值