广告
返回顶部
首页 > 资讯 > 后端开发 > Python >3、zabbix_get和zabbix_
  • 563
分享到

3、zabbix_get和zabbix_

zabbix_get 2023-01-31 04:01:25 563人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Zabbix_get命令:zabbix_get是zabbix中的一个程序,用于zabbix-server到zabbix-agent获取数据。通常用来检测agent的配置是否正确。[root@localhost ~]# zabbix_get 

Zabbix_get命令:


zabbix_get是zabbix中的一个程序,用于zabbix-server到zabbix-agent获取数据。通常用来检测agent的配置是否正确。

[root@localhost ~]# zabbix_get -h
Zabbix get v2.2.11 (revision 56693) (12 November 2015)
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                            Give this help
  -V --version                         Display version number
Example: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"


参数说明:

-s --host: 指定客户端主机名或者IP

-p --port:客户端端口,默认10050

-I --source-address:指定源IP,写上zabbix server的ip地址即可,一般留空,服务器如果有多ip的时候,你指定一个。

-k --key:你想获取的key

至于使用长参数还是短的,自己选,我经常使用-s而不是--host,太长了。


获取CPU负载

[root@localhost ~]# zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg15]"
0.000000

key可以加引号,也可以不加。


获取主机名

[root@localhost ~]# zabbix_get -s 127.0.0.1 -p 10050 -k system.hostname
localhost.localdomain



Zabbix_sender命令:

zabbix_sender是什么?有什么作用?

zabbix获取key值有超时时间,如果自定义的key脚本一般需要执行很长时间,这根本没法去做监控,那怎么办呢?使用zabbix监控类型zabbix trapper,需要配合zabbix_sender给它传递数据。关于trapper的用法,我们来弄个实例。

执行超长时间脚本,如:脚本去几十台服务器拉去数据,每个日志都上G,然后日志整合在一起,统计出返回值。这种脚本比如超时,所以我们必须改成让客户端提交数据的方式。


zabbix_sender命令用法:

[root@localhost ~]# zabbix_sender -h
Zabbix Sender v2.2.11 (revision 56693) (12 November 2015)
usage: zabbix_sender [-Vhv] {[-zpsI] -ko | [-zpI] -T -i <file> -r} [-c <file>]
Options:
  -c --config <file>                   Absolute path to the configuration file
  -z --zabbix-server <server>          Hostname or IP address of Zabbix server
  -p --port <server port>              Specify port number of server trapper running on the server. Default is 10051
  -s --host <hostname>                 Specify host name. Host IP address and DNS name will not work
  -I --source-address <IP address>     Specify source IP address
  -k --key <key> 
                       Specify item key
  -o --value <key value>               Specify value
  -i --input-file <input file>         Load values from input file. Specify - for standard input
                                       Each line of file contains whitespace delimited: <hostname> <key> <value>
                                       Specify - in <hostname> to use hostname from configuration file or --host argument
  -T --with-timestamps                 Each line of file contains whitespace delimited: <hostname> <key> <timestamp> <value>
                                       This can be used with --input-file option
                                       Timestamp should be specified in Unix timestamp fORMat
  -r --real-time                       Send metrics one by one as soon as they are received
                                       This can be used when reading from standard input
  -v --verbose                         Verbose mode, -vv for more details
Other options:
  -h --help                            Give this help
  -V --version                         Display version number


使用参数:

  -c --config <file>                   配置文件绝对路径
  -z --zabbix-server <server>          zabbix server的IP地址
  -p --port <server port>              zabbix server端口.默认10051
  -s --host <hostname>                 主机名,zabbix里面配置的主机名(不是服务器的hostname),不能使用ip地址
  -I --source-address <IP address>     源IP
  -k --key <key>                       监控项的key
  -o --value <key value>               key值
  -i --input-file <input file>         从文件里面读取hostname、key、value 一行为一条数据,使用空格作为分隔符,如果主机名带空格,那么请使用双引号包起来
  -T --with-timestamps              一行一条数据,空格作为分隔符: <hostname> <key> <timestamp> <value>,配合 --input-file option,timestamp为unix时间戳
  -r --real-time                      将数据实时提交给服务器
  -v --verbose                         详细模式, -vv 更详细



Zabbix_sender使用实例:

先在主机zabbix server 上创建一个key。

wKiom1ddC4bjGJY1AAL7PrjIOmo830.png


传递一个数据到item中,注意-s后面为zabbix_agent.conf文件中配置的hostname,不是IP地址,也不是服务器的主机名。

[root@ZabbixServer alertscripts]# zabbix_sender -s "ZabbixServer" -z 127.0.0.1 -k "key.test.trapper" -o 1 -r
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000034"
sent: 1; skipped: 0; total: 1

failed为0,表示传送失败的为0个。


zabbix_sender还可以批量上传数据,即将服务器的hostname(zabbix_agent.conf文件中配置的主机名)、key、value三个值保存到文件中,然后将该文件中的数据上传到各个item中。


zabbix_sender批量传递key值

#cat f.txt
"Zabbix server" ttlsa.trapper 10
"Zabbix server" ttlsa.trapper 20
"Zabbix server" ttlsa.trapper 30
"Zabbix server" ttlsa.trapper 40
"Zabbix server" ttlsa.trapper 1
# ./zabbix_sender -z 127.0.0.1 -i f.txt 
info from server: "processed: 5; failed: 0; total: 5; seconds spent: 0.000085"
sent: 5; skipped: 0; total: 5

每行对应一个key值,一般是相同的主机名、不同的key、不同的key值。这边方便测试,所以都用了同一个key

这种方式也是zabbix trapper监控方式的模型。



Zabbix Trapper监控案例演示


创建两个监控项,monitor[TotalMemory]和monitor[FreeMemory],分别用来监控总内存和剩余内存。

监控脚本如下:

#!/bin/bash
hostname=$1
zabbix_server_ip=172.16.206.130
TotalMemory()
{
    TotalMemory=`cat /proc/meminfo | awk '/^MemTotal:/{print $2}'`
    echo "$hostname monitor[TotalMemory] $TotalMemory" 
}
FreeMemory()
{
    FreeMemory=`cat /proc/meminfo | awk '/^MemFree:/{print $2}'`
    echo "$hostname monitor[FreeMemory] $FreeMemory"
}
TotalMemory >> /tmp/test.txt
FreeMemory >> /tmp/test.txt
zabbix_sender -z $zabbix_server_ip -i /tmp/test.txt &>/dev/null
if [ `echo $?` -eq 0 ];then
    echo 0
else
    echo 1
fi
rm -rf /tmp/test.txt

注意:脚本最后一行是当数据上传完成后删除保存数据的文件,这样下次执行脚本时保证不会有相同的key对应多个value。



zabbix WEB上创建对应的item

wKiom1ddFJqRkypVAAI1aay1KHM304.png


注意:上面我们创建了item,也创建了获取item值的脚本。但是这个脚本不会自动执行,将数据传送到zabbix server上。所以我们还需要再创建一个监控项,这个监控项会定时执行我们创建的脚本。

创建自定义监控的conf文件

[root@ZabbixServer zabbix_agentd.d]# vim userparameter_memory.conf
UserParameter=send.date[*],/etc/zabbix/scripts/memory.monitor.sh $1

zabbix server上创建监控项:

wKiom1ddFgKAykRLAAN57wGRqro918.png







--结束END--

本文标题: 3、zabbix_get和zabbix_

本文链接: https://www.lsjlt.com/news/187894.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 3、zabbix_get和zabbix_
    Zabbix_get命令:zabbix_get是zabbix中的一个程序,用于zabbix-server到zabbix-agent获取数据。通常用来检测agent的配置是否正确。[root@localhost ~]# zabbix_get ...
    99+
    2023-01-31
    zabbix_get
  • Python 2 和 Python 3
      Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷。---摘录自《流畅的Python》   你可能从来没有听说过学 J...
    99+
    2023-01-31
    Python
  • SMS、OSD和Bitlocker(3)
    Moving the system files and rebooting So by this time we have two partitions on the disk and the OSD process is running....
    99+
    2023-01-31
    SMS OSD Bitlocker
  • int **a[3][4] 和 size
    BS的《C++编程》里面讲得很清楚,变量的申明,变量名称的后面部分比前面部分具有更强的约束力。所以,如下变量声明:int **a[3][4];表示“int **”类型的二维数组(“[]”比“int”和“*”更具有约束力)。这个二维数组共有1...
    99+
    2023-01-31
    int size
  • 3.安装PHP5和PHP7
    [toc] 11.10~11.2 安装PHP5 1.下载PHP5安装包并解压 [root@xavi ~]# cd /usr/local/src/ [root@xavi src]# wget http://cn2.php.net/dist...
    99+
    2023-01-31
  • python2和3搭建,pip2和pip
    linux自带python2,手动安装python3,sudo apt-get install python3.5下载pip,安装到python2使用easy_install 安装pip;sudo python3 -m easy_insta...
    99+
    2023-01-31
    pip
  • Linux 用户和组 (3) userm
    linux下usermod命令详解命 令:usermod 功能说明:修改用户帐号。 语  法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天...
    99+
    2023-01-31
    用户 Linux userm
  • Sublime Text 3 插件和py
      安装Python,设置环境变量 首先需要安装Python,访问地址https://www.python.org,下载Python,无脑点击下一步安装即可。 在CMD输入命令python,如果进入如图则表明Python安装成功: 如果...
    99+
    2023-01-31
    插件 Sublime Text
  • 1-3、ping 和tracert 命令
    C:\>ping 192.168.0.1 Pinging 192.168.0.1 with 32 bytes of data:Reply from 192.168.0.1: bytes=32 time=12ms TTL=64Rep...
    99+
    2023-01-31
    命令 ping tracert
  • 3、Jenkins升级和迁移
    一、Jenkins升级Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新)。如此频繁的更新,怎么升级呢?war:下载新版的war文件,替换旧版本war文件。重启即可。二进制:卸载旧版本,安装新版...
    99+
    2023-01-31
    Jenkins
  • JMS和ActiveMQ介绍(3)_Ac
    首先简单介绍一下ActiveMQ。ActiveMQ是由Apache软件基金会提供的开源免费消息服务器,目前版本是5.8.0。ActiveMQ具有以下特点:基于JMS 1.1和J2EE 1.4规范;支持多种连接协议:HTTP/S,IP组播,S...
    99+
    2023-01-31
    JMS ActiveMQ _Ac
  • Python 2.7.x 和 3.x 版
    python现在很火,最近花了些时间去了解了一下,最初了解的是2.7.x版本,感觉,从书写上是很不习惯,少了一双大概号,取而代之的是缩进;然后跟kotlin和swift一样省去了每行的分号,象我们这种分号强迫症的人真心的不习惯;还有!Tru...
    99+
    2023-01-31
    Python
  • 3、Ansible配置文件和Invent
    如果是用RPM包方式安装的Ansible,那么安装完成后会生成以下文件:/etc/ansible                              ###存放ansible配置文件的目录/etc/ansible/hosts     ...
    99+
    2023-01-31
    配置文件 Ansible Invent
  • python迭代和解析(3):range
    解析、迭代和生成系列文章:https://www.cnblogs.com/f-ck-need-u/p/9832640.html range range()是一个内置函数,它返回一个数字序列,功能和Linux下的seq命令差不多。 >...
    99+
    2023-01-30
    迭代 python range
  • 3.EVE-NG导入Dynamips和I
    文章列表(关注微信公众号EmulatedLab,及时获取文章以及下载链接)1、EVE-NG介绍(EVE-NG最好用的模拟器,仿真环境时代来临!)2、EVE-NG安装过程介绍3、EVE-NG导入Dynamips和IOL4、EVE-NG导入QE...
    99+
    2023-01-31
    EVE Dynamips NG
  • Python 2和Python 3的区别
    原文转载自:http://www.pythontip.com/blog/post/13118/1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和×××...
    99+
    2023-01-31
    区别 Python
  • 3、Nginx关于server块和loc
    前面第2篇文章中列出了全局段、events段、http段的一些指令的意义和用法,这篇文章将介绍server段和location段的相关指令。server段配置listen:listen指令有三种配置方法:1、listen address[:...
    99+
    2023-01-31
    Nginx server loc
  • Java如何求一个3*3矩阵对角线元素之和
    这篇文章主要为大家展示了“Java如何求一个3*3矩阵对角线元素之和”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java如何求一个3*3矩阵对角线元素之和”这...
    99+
    2022-10-19
  • #3 Python解释器和编辑器
    前言 上文介绍了Python在不同平台的安装方法,本文将带领你了解Python解释器和编辑器的概念,并且选择出最符合自己的解释器和编辑器! 一、Python解释器 其实上文介绍的安装Python,实质上安装的是Python解释器。当你创建...
    99+
    2023-01-30
    编辑器 Python
  • 怎么使用OpenAI API和GPT-3
    本文小编为大家详细介绍“怎么使用OpenAI API和GPT-3”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用OpenAI API和GPT-3”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作