• zabbix系列之六——安装后配置二Items


    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp

    1Items

    1.1creating items

    index

    detail

    note

    1

    Configuration->hosts

    2

    Click on Items in the row of the host

    3

    Click on Create item in the upper right corner of the screen

    4

    Enter parameters of the item in the form

    1.You can also create an item by opening an existing one, pressing the Clone button and then saving under a different name.

    2.parameter description refer to

    https://www.zabbix.com/documentation/3.4/manual/config/items/item

    3.Text data limits depend on the database backend.

    4.Unit blacklist.

    By default, specifying a unit for an item will result in a multiplier prefix being added - for example, value 2048 with unit B would be displayed as 2KB. For a pre-defined, hardcoded list of units this is prevented: ms | RPM|rpm|%

    5.Item value preprocessing

    The Preprocessing tab allows to define transformation rules for the received values. Transformations are executed in the order in which they are defined.

    6. Unsupported items

    An item can become unsupported if its value cannot be retrieved for some reason. Such items are still rechecked at a fixed interval, configurable in Administration section.

    1.1.1Item key format

    Description:Item key format, including key parameters, must follow syntax rules.The following illustrations depict the supported syntax. Allowed elements and characters at each point can be determined by following the arrows - if some block can be reached through the line, it is allowed, if not - it is not allowed.

    To construct a valid item key, one starts with specifying the key name, then there's a choice to either have parameters or not - as depicted by the two lines that could be followed.

    Item key format

    Name

    format

    Description

    Key name

    0-9a-zA-Z_-.

    Numbers,lowercase/uppercase letters,upderscore,dash,dot is allowed

    Key parameters

    1multiple parameters can be separated by comma  (,)

    2 Each key parameter can be either a quoted string, an unquoted string or an array.

    3 can also be left empty using the default value.

    1

    2

    3such as icmpping[,,200,,500]. part parameters are left at their defaults

     

    Parameter - quoted string:

    any Unicode character is allowed, and included double quotes must be backslash escaped.

     

    To quote item key parameters, use double quotes only. Single quotes are not supported.

     

    Parameter - unquoted string: any Unicode character is allowed except comma and right square bracket (]). Unquoted parameter cannot start with left square bracket ([).

     

     

    Parameter – array: it is again enclosed in square brackets, where individual parameters come in line with the rules and syntax of specifying multiple parameters.

     

    1.1.2Custom intervals

    Create custom rules to set the times when an item is checked.Two ways:

    Method

    Description

    Detail

    1Flexible intervals

    A flexible interval is defined with Interval and Period:

    Interval – the update interval for the specified time period

    Period – the time period when the flexible interval is active

    allow to redefine the default update interval

    2Scheduling

    are used to check items at specific times

    whereby an item check can be executed at a specific time or sequence of times

    Detail rules refer to:

    https://www.zabbix.com/documentation/3.4/manual/config/items/item/custom_intervals

    1.2 Item types

    Such as zabbix agent checks| SNMP agent checks|SNMP traps|IPMI checks|Simple checks…

    Note: If a particular item type requires a particular interface (like an IPMI check needs an IPMI interface on the host) that interface must exist in the host definition.

    1 Multiple interfaces can be set in the host definition: Zabbix agent, SNMP agent, JMX and IPMI

    2 If an item can use more than one interface, it will search the available host interfaces (in the order: Agent→SNMP→JMX→IPMI) for the first appropriate one to be linked with.

    3

    1.2.1 Zabbix agent

    Type

    Description

    Detail

    Zabbix agent

    for passive checks

    Zabbix gent (active)

    for active checks

    Zabbix agent supports lots of item keys, Parameters without angle brackets are mandatory. Parameters marked with angle brackets < > are optional.

    Details for item keys refer to :

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent

    windows specific item keys refer to:

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent/win_keys

    1.2.2SNMP agent

    Overview:

    Column

    Detail

    note

    purpose

    monitoring on devices

    such as printers, network switches, routers or UPS that usually are SNMP-enabled and on which it would be impractical to attempt setting up complete operating systems and Zabbix agents.

    Specail note

    To be able to retrieve data provided by SNMP agents on these devices, Zabbix server must be initially configured with SNMP support.

    SNMP checks are performed over the UDP protocol only

    feature

    1Use bulk requests

    2query SNMP devices for multiple values in a single request.

    3retry at least one time

    1incorrect SNMP response:SNMP response from host "gateway" does not contain all of the requested variable bindings.

    2If monitoring SNMPv3 devices, make sure that msgAuthoritativeEngineID (also known as snmpEngineID or “Engine ID”) is never shared by two devices. According to RFC 2571 (section 3.1.1.1) it must be unique for each device.

     

    Configuring SNMP monitoring

    1安装snmp

    安装前基础知识:Snmp部分常用OID

    http://www.ttlsa.com/monitor/snmp-oid/

    https://www.cnblogs.com/aspx-net/p/3554044.html

    系统参数(1.3.6.1.2.1.1)

    OID

    描述

    备注

    请求方式

    .1.3.6.1.2.1.1.1.0

    获取系统基本信息

    SysDesc

    GET

    .1.3.6.1.2.1.1.3.0

    监控时间

    sysUptime

    GET

    .1.3.6.1.2.1.1.4.0

    系统联系人

    sysContact

    GET

    .1.3.6.1.2.1.1.5.0

    获取机器名

    SysName

    GET

    .1.3.6.1.2.1.1.6.0

    机器坐在位置

    SysLocation

    GET

    .1.3.6.1.2.1.1.7.0

    机器提供的服务

    SysService

    GET

    .1.3.6.1.2.1.25.4.2.1.2

    系统运行的进程列表

    hrSWRunName

    WALK

    .1.3.6.1.2.1.25.6.3.1.2

    系统安装的软件列表

    hrSWInstalledName

    WALK

     

    说明:

    1) OID等同于名称(备注中的字符串),如果要查看对应的信息可通过OID或名称执行脚本:

    如查看网络接口信息,通过OID和名称查询结果一样

    命令

    结果

    说明

    snmpwalk -v 1 14.215.130.184 -c public IfDescr

    (使用名称)

    IF-MIB::ifDescr.1 = STRING: lo

    IF-MIB::ifDescr.2 = STRING: em1

    IF-MIB::ifDescr.3 = STRING: em2

    IF-MIB::ifDescr.4 = STRING: em3

    IF-MIB::ifDescr.5 = STRING: em4

    1查询所有网络接口信息

    2说明共有5个网口,名称为lo,em1,…

    3 lo表示本地回路

    snmpwalk -v 2c  14.215.130.184 -c public .1.3.6.1.2.1.2.2.1.2

    (使用OID)

    snmpwalk -v 2c  14.215.130.184 -c public IF-MIB::ifDescr.1

    (使用名称)

    IF-MIB::ifDescr.1 = STRING: lo

    1查询接口1的信息

    2注意

    .1.3.6.1.2.1.2.2.1.2.1

    最后的1代表接口1,如果查询第二个则可为2,以此类推

    snmpwalk -v 2c  14.215.130.184 -c public .1.3.6.1.2.1.2.2.1.2.1

    (使用OID)

    https://blog.csdn.net/alizee6352012/article/details/10170985

     

    2、安装和使用

    http://www.ttlsa.com/zabbix/zabbix-snmp-install/

    安装snmp配置

    步骤

    详细

    备注

    yum安装snmp

    yum install net-snmp* -y

    snmp配置

    # vim /etc/snmp/snmpd.conf

    view systemview included .1.3.6.1.2.1.25.1.1 //找到这行,增加下面配置

    view systemview included .1 // 这个是新增加的

    proc mountd // 找到这些配置,把注释去掉

    proc ntalkd 4

    proc sendmail 10 1

    disk / 10000

    load 12 14 14

     

    启动snmpd

    service snmpd start

     

    通过snmp获取数据

    1首先需要对应的OID,参考

    http://www.ttlsa.com/monitor/snmp-oid/

    https://www.cnblogs.com/aspx-net/p/3554044.html

    本文以184服务器为测试环境:

    snmpwalk -c public -v 2c 14.215.130.184 sysName

    得到结果:

    SNMPv2-MIB::sysName.0 = STRING: ISHYC-003538

    例如获取主机名可采用名称或OID形式获取:

    1使用名称:

    # snmpwalk -c public -v 2c 173.219.255.122 sysName // 使用名称

    2使用OID:

    # snmpwalk -c public -v 2c 173.219.255.122 .1.3.6.1.2.1.1.5.0 // 使用OID

    得到结果都为

    SNMPv2-MIB::sysName.0 = STRING: li519-232

    对应li519-232即为主机名

    3配置snmp监控

    步骤

    详细

    备注

    1使用SNMP接口为设备创建一个主机

    1创建一个主机(或已有主机)

    2在SNMP interfaces接口栏输入ip地址

    3也可使用snmp模板或自行添加snmp监控项

    4点击add保存

    1已有主机可直接配置

    2snmp模板可能与主机不兼容

    3snmp检查不需要代理端口,可忽略

    2找出要监控项目的SNMP字符串(或OID)

    根据http://www.ttlsa.com/monitor/snmp-oid/

    https://www.cnblogs.com/aspx-net/p/3554044.html

    中常用OID选择要监控的项目

    如:监控端口1,2,3(IFSpeed)上的接口当前带宽。

    对应名称为: IF-MIB::ifSpeed.1, IF-MIB::ifSpeed.2, IF-MIB::ifSpeed.3

     

    注意:3COM似乎是使用数百个端口号,例如 端口1=端口101,端口3=端口103,但思科使用常规数字,例如。 端口3=3。

    关于OID和MIB介绍

    http://blog.sina.com.cn/s/blog_4502d59c0101fcy2.html

    3创建监控项

    1回到Zabbix并点击前面创建的SNMP主机的监控项

    2创建端口1监控项,单击Create item,输入监控项name, 如:SNMP-IFSpeed (pbs)1(自定义)

    3将type改为SNMPv* agent (*表示1或2或3),本文采用SNMPv2 agent。为版本号

    4、host interface确保已存在SNMP

    5、设置key为有意义的内容,如SNMP-ifspeed1,可自定义。如报错,可遵循SNMP-**格式

    6、snmp oid填入:IF-MIB::ifSpeed.1,

    7、snmp community填入public,其他默认,点击”update”。

    8、依次添加端口2监控项,对应名称可为SNMP-IFSpeed (pbs)2,key可为SNMP-ifspeed2,snmp oid为IF-MIB::ifSpeed.2,snmp community为public

     

    对snmp监控,key没有太大作用,主要通过snmp oid进行区分

    1.2.2.1Dynamic indexes

    动态索引下配置:(未使用,没明白)

    在SNMP OID中的索引号可能是动态的,随时间而改变,导致监控可能停止。

    为避免,定义一个考虑动态索引号的OID。

    如:

    如果需要检索索引值以匹配Cisco设备上的GigabitEthernet0/1接口的ifInOctets,请使用以下OID:

    ifInOctets["index","ifDescr","GigabitEthernet0/1"]

    语法:

    <OID of data>["index","<base OID of index>","<string to search for>"]

    参数

    描述

    备注

    OID of data

    主OID用于监控项上的数据检索。

    即SNMP OID表中的名称

    index

    处理方法。目前支持一种方法:
    index – 搜索索引,并将其附加到数据OID

    即固定

    base OID of index

    该OID将被搜索以获取与该字符串对应的索引值。

    string to search for

    用于在进行查找时与值精确匹配的字符串。区分大小写

    Details refer to:

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp/dynamicindex

    例如:

    配置的检测语法:

    HOST-RESOURCES-MIB::hrSWRunPerfMem["index","HOST-RESOURCES-MIB::hrSWRunPath", "/usr/sbin/apache2"]

    如果设备存在以下SNMP信息:

    ...

    HOST-RESOURCES-MIB::hrSWRunPath.5376 = STRING: "/sbin/getty"

    HOST-RESOURCES-MIB::hrSWRunPath.5377 = STRING: "/sbin/getty"

    HOST-RESOURCES-MIB::hrSWRunPath.5388 = STRING: "/usr/sbin/apache2"

    HOST-RESOURCES-MIB::hrSWRunPath.5389 = STRING: "/sbin/sshd"

    ...

    则检索出对应的OID(5388对应的检测项),返回数据:

    HOST-RESOURCES-MIB::hrSWRunPerfMem.5388 = INTEGER: 31468 Kbytes

    2索引查询缓存

    动态检索请求下,Zabbix检索并缓存基本OID下完整的SNMP表进行检索。(不用再请求监控的主机,注意每个poller处理使用单独的缓存)

    1.2.3 SNMP traps

    与snmp agent相反,该情况下为从支持SNMP的设备发送的,由Zabbix收集或“trapped”。

    (即设备主动发送)

    1snmp agenttrap区别

    类别

    区别

    备注

    Snmp代理(agent)

    1要监控的设备无法安装操作系统或zabbix agent。

    2zabbix服务器进行数据获取

    3zabbix服务器初始化配置必须具备snmp支持

    4端口161

    Snmp trap

    1、 设备主动发送数据,zabbix收集或”trapped”

    2、 端口162

    3、 使用trap可以检测在查询间隔期间发生的一些可能被查询数据丢失的短期问题

    Zabbix中接收SNMP trap旨在使用snmptrapd和内置机制之一来传递trap到Zabbix - 一个perl脚本或SNMPTT。

    2接收trap流程

    1)snmptrapd 收到trap

    2)snmptrapd将trap传递给SNMPTT或调用Perl接收器

    3)SNMPTT或Perl trap接收器解析,格式化并将trap写入文件

    4)Zabbix SNMP trap读取并解析trap文件

    5)对于每个trap,Zabbix发现主机接口与接收的trap地址匹配的所有“SNMP trap”监控项。请注意,在匹配期间只使用主机接口中选定的“IP”或“DNS”。

    6)对于每个找到的监控项,将trap与“snmptrap[regexp]”中的regexp进行比较。 trap设置为all匹配项的值。如果没有找到匹配的监控项,并且有一个“snmptrap.fallback”监控项,则将trap设置为该值。

    7)如果trap未设置为任何监控项的值,Zabbix默认记录不匹配的trap。(这由管理 - >常规 - >其它中的“记录不匹配的SNMP trap(Log unmatched SNMP traps)”配置。)

    3配置snmp trap

    步骤

    详细

    备注

    复制perl脚本并授权

    1、    zabbix源码解压后,找到zabbix_trap_receiver.pl路径。

    本文为:/home/web2018/invt_oms/zabbix-3.4.7/misc/snmptrap/zabbix_trap_receiver.pl

    2、    复制perl脚本到zabbix安装目录,并授权

    cp /home/web2018/invt_oms/zabbix-3.4.7/misc/snmptrap/zabbix_trap_receiver.pl /usr/share/zabbix

    授权:

    chmod +x /usr/share/zabbix/zabbix_trap_receiver.pl

    配置snmptrap链接:https://blog.csdn.net/liang_baikai/article/details/53522293

    https://www.zabbix.org/wiki/Start_with_SNMP_traps_in_Zabbix

    linux下载zabbix源码命令:
    wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.1/zabbix-2.2.1.tar.gz

    tar -zxvf zabbix-2.2.1.tar.gz

    snmptrapd的配置文件并修改

    1 find / -name snmptrapd.conf对应结果:/etc/snmp/snmptrapd.conf

    2修改

    vim /etc/snmp/snmptrapd.conf,增加2行代码:

    authCommunity execute public

    perl do "/usr/share/zabbix/zabbix_trap_receiver.pl"

     

    修改zabbix_server.conf文件,启动snmptrap的功能

    vi /etc/zabbix/zabbix_server.conf

    配置:

    StartSNMPTrapper=1

    SNMPTrapperFile= /tmp/zabbix_traps.tmp

    SNMPTrapperFile=/tmp/zabbix_traps.tmp (must be same as in zabbix_trap_receiver.pl)

    即查看vi /usr/share/zabbix/zabbix_trap_receiver.pl中的SNMPTrapperFile配置明细,必须保持一致

    重启zabbix_server服务

    Systemctl restart zabbix-server

     

    启动snmptrapd服务

    systemctl restart snmptrapd

    执行命令测试trap:

    snmptrap -v 1 -c public 14.215.130.184 '.1.3.6.1.6.3.1.1.5.4' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.4 s "eth0"

    查看vi /tmp/zabbix_traps.tmp,显示trap数据:

    18:01:17 2018/05/02 ZBXTRAP 14.215.130.184

    PDU INFO:

      notificationtype               TRAP

      version                        0

      receivedfrom                   UDP: [14.215.130.184]:50455->[14.215.130.184]:162

    注意:由于本文配置zabbix-server服务器ip为14.215.130.184,如果trap命令的ip为127.0.0.1则zabbix无法获取trap信息

    Zabbix上配置

    1创建主机,并配置SNMP接口。”配置”à主机à设置具有正确ip或dns的snmp接口,本文配置SNMP接口ip为14.215.130.184端口161

    2创建snmptrap监控项,配置name: SNMP-TRAP-ALL

    Key:snmptrap.fallback

    Type:SNMP trap

    Host interface:14.215.130.184:161

    Type of information:log

    查看最新数据,存在则部署成功

    1将每个收到的trap地址与所有SNMP接口的IP和DNS地址进行比较,以查找相应的主机

    2 key分两种:snmptrap.fallback(采集任何未被snmptrap[]规则匹配的trap)和snmptrap[regexp ](采集所有符合regexp规则的SNMP信息,如果没有规则则会采集所有信息, regexp为正则表达式)

    目前不支持多行正则表达式匹配,要使SNMP trap监控工作,必须首先正确设置。

    3实际测试snmptrap[]会捕获当前SNMP接口ip下所有的trap信息,如果trap信息非配置的snmp接口ip,则不会捕获和显示(如上面提到的127.0.0.1trap信息)

    以上为perl脚本处理snmptrap信息配置,也可配置为SNMPTT处理:

    https://blog.csdn.net/mintazoedeng/article/details/70210358

    官网中给出的为SNMPTT方式作为trap处理器,实际采用嵌入perl脚本方式效率更好,本文即使用官网最后提供的perl脚本实现trap处理。(This simple example uses SNMPTT as traphandle. For better performance on production systems, use embedded Perl to pass traps from snmptrapd to SNMPTT or directly to Zabbix.)

    1.2.4 IPMI checks(未成功)

    1简介:

    1) 硬件监控,监控zabbix中智能平台管理接口(Intelligent Platform Management Interface (IPMI))设备的健康状态和使用状态。

    2) 执行IPMI监控zabbix服务器需要初始化配置IPMI支持。

    3) Zabbix ipmi监控需要设备支持IPMI(HP iLO, DELL DRAC, IBM RSA, Sun SSP, etc).

    2配置

    Step

    Detail

    note

    主机配置

    1主机配置IPMI监控,添加IPMI接口(ip和端口)并定义授权IPMI参数

    详细步骤:ConfigurationàHostàIPMI interfacesàclick on ”Add”àip: 14.215.130.184  port:623àupdate

    服务器配置

    1 vi /etc/zabbix/zabbix_server.conf

    取消注释StartIPMIPollers=0

    并修改为StartIPMIPollers=3 (poller个数为3)

    2保存后重启zabbix_server

    systemctl restart zabbix-server

    Zabbix服务器默认未配置开启IPMI poller,因此,添加IPMI items无效,需要配置zabbix_server.conf。

    配置监控项(item)

    1create item

    2

    1安装ipmi命令:

    yum -y install OpenIPMI OpenIPMI-devel ipmitool freeipmi

    2查看服务器型号:

    dmidecode | grep "Product"

    结果:

    Product Name: PowerEdge R620

    Product Name: 0XWDCF

    网上查询PowerEdge R620和0XWDCF均指dell服务器

    3ipmi配置信息

    http://blog.sina.com.cn/s/blog_6dc1452201014j9s.html

    3.1)查看网络配置信息

    ipmitool lan print 1

    结果:

    Set in Progress         : Set Complete

    Auth Type Support       : MD5

    Auth Type Enable        : Callback : MD5

                            : User     : MD5

                            : Operator : MD5

                            : Admin    : MD5

                            : OEM      :

    IP Address Source       : Static Address

    IP Address              : 192.168.0.120

    Subnet Mask             : 255.255.255.0

    MAC Address             : 20:47:47:87:55:e2

    注意:根据该列表提供的auth方式设置命令auth值。

    3.2)查看用户列表

    ipmitool user list 1

    可以看到当前有两个用户,一个是默认匿名用户,一个是root

    ID  Name            Callin  Link Auth         IPMI Msg   Channel Priv Limit

    1                    true    false      false      NO ACCESS

    2   root             true    true       true       ADMINISTRATOR

    3                    true    false      false      NO ACCESS

    4                    true    false      false      NO ACCESS

    3.3)设置root密码

    ipmitool user set password 2

    (表示设置id为2的用户的password,即root的密码)

    根据提示输入2次密码。本文为invt8888test

    3.4)测试ipmi配置的ip地址:

    两种方式:ping 192.168.0.120或ipmitool -H 192.168.1.70 -U root power status

    正常结果:power is on.

    注意:ipmitool只能对其他服务器执行,对本机执行则返回无结果;

    用户开启

    ipmitool user enable 2

    本地查看sensor监控列表

    ipmitool -I open sensor list

    ipmitool lan set 1 access on  # 开启IPMI Over LAN

     

    https://jingyan.baidu.com/article/1876c8527f42c7890b1376e8.html

    https://www.linuxidc.com/Linux/2017-05/143523.htm

    https://blog.csdn.net/yunsongice/article/details/5408802

    https://www.zhihu.com/question/29248759

    //测试是否有联通性

    ipmitool -H 192.168.0.120 -I lan chassis power status

    监控电压:Voltage 1

    https://www.iyunv.com/thread-13105-1-1.html

    http://blog.51cto.com/pesen/1283836

     

    修改ipmi的ip地址:ipmitool lan set 1 ipaddr 172.17.0.128

    //增加一条数据到arp解析表

    arp -s 172.17.0.128 20:47:47:87:55:e2

    //查看arp解析表数据

    arp -n

    //创建用户:

    invt/invt8888test

    //查看zabbix日志

     

    //查看日志

    grep 'Added sensor' /var/log/zabbix/zabbix_server.log

    vi /var/log/zabbix/zabbix_server.log

    1.2.5 Simple checks

    1简单检查,用于远程无客户端检查服务。不需要zabbix agent,zabbix server/proxy负责处理简单检查,例如:net.tcp.service[ftp,,155] net.tcp.service[http] net.tcp.service.perf[http,,8080]

    2虚拟机的简单检查监控项需要使用user name和password,其他则不需要

    3直接创建监控项即可。需要注意:zabbix使用fping来处理ICMP pings,需要服务器或被监控对象安装,并确保权限正确以及fping文件位置和zabbix server/proxy配置的路径一致(FpingLocation参数),否则,ICMP pings将不被处理。

    Fping授权:

    shell> chown root:zabbix /usr/sbin/fping

    shell> chmod 4710 /usr/sbin/fping

    其他参数详细:https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/simple_checks

    4虚拟机监控参考:https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/simple_checks/vmware_keys

    详细监控见:

    https://www.zabbix.com/documentation/3.4/manual/vm_monitoring

    步骤

    详细

    备注

    配置

    编译版需要加上--with-libxml2 和 --with-libcurl 编译选项;包安装版已自带,不需额外配置

     

    自动发现

    使用 low-level discovery 规则自动发现 VMware hypervisors 和虚拟机

     

     

     

     

     

     

     

     

    1.2.6Log file monitoring

    1基本信息:日志文件监控

    描述

    详细

    备注

    通知

    用于告知用户日志文件包含指定字符或字符规则模式

    监控条件

    1主机运行zabbix agent

    2日志监控项设置。

    监控日志文件大小限制取决于大文件支持。大文件支持在32位solaris不支持。

    2配置

    步骤

    详细

    备注

    校验agent参数

    确保agent配置文件中:

    1 Hostname参数和前端host name匹配

    2ServerActive参数中的Servers指定为active checks 处理,即type类型为zabbix agent(active)

    本文配置:

    1Vi /etc/zabbix/zabbix_agentd.conf

    2设置Hostname:

    Hostname=Zabbix-server和web前端配置一致

    3设置ServerActive:

    ServerActive=14.215.130.184

    监控项配置

    1创建监控项,配置

    Name:log item test

    Type:zabbix agent(active)

    Key: log[/var/log/zabbix/zabbix_server.log,[error,Warning],,,,,]

    Log time format: pppppp:yyyyMMdd:hhmmss

    /var/log/zabbix/zabbix_server.log

    注意

    1、server和agent采用2个计数器保存被监控日志的大小和最近修改时间(对于logrt),另外:

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/log_items

    正则表达式匹配部分的提取

    1仅提取匹配文件中感兴趣部分值,而不是匹配的整行。

    2通过log和logrt监控项中附加的output参数实现。

    log[/path/to/the/file,"large result buffer allocation.*Entries: ([0-9]+)",,,,1]其中

    "large result buffer allocation.*Entries: ([0-9]+)"为正则表达式,

    Zabbix返回结果仅为数字,是因为output参数定义为1,表示第一个也是唯一一个感兴趣子群:([0-9]+) (代表数字)

    通过提取和返回数字,可定义触发器

    maxdelay参数

    参数允许忽略日志文件中的一些较旧的行,以便在“maxdelay”秒内获取最近分析的行。

    指定'maxdelay'>0可能导致忽略重要的日志文件记录和错过的报警。只有在必要时才使用。

     

    1.2.7Calculated items

    1基础:

    计算类监控项在其他监控项基础上进行计算。

    描述

    详细

    备注

    1

    计算监控项可创建虚拟数据源,所有计算在zabbix server端,与计算监控项无关的则在zabbix agent或proxies端

    2配置

    描述

    详细

    备注

    配置key和Formula

    key唯一性, Formula计算公式,2者无关联。Key值不能在Formula中使用

    1简单Formula公式

    func(<key>|<hostname:key>,<parameter1>,<parameter2>,...)

    2所有计算公式中的监控项必须存在,如果更新了引用的item,需手动更新formula中涉及的key

    计算item失效情况

    1引用的item存在以下情况:1)找不到2)被禁用3)属于被禁用的主机4)不支持

    2无数据用于计算

    3被0整除

    4使用非法语法

    样例1

    计算硬盘剩余百分比

    计算公式:

    100*last("vfs.fs.size[/,free]")/last("vfs.fs.size[/,total]")

    样例2

    计算zabbix10分钟处理的数字值平均值

    avg("Zabbix Server:zabbix[wcache,values]",600)

    ARGUMENT

    DEFINITION

    func

    One of the functions supported in trigger expressions: last, min, max, avg, count, etc

    key

    The key of another item whose data you want to use. It may be defined as key or hostname:key.
    Note: Putting the whole key in double quotes (“…”) is strongly recommended to avoid incorrect parsing because of spaces or commas within the key.
    If there are also quoted parameters within the key, those double quotes must be escaped by using the backslash (). See Example 5 below.

    parameter(s)

    Function parameter(s), if required.

    1.2.8Internal checks

    1简介:可检测zabbix内部处理,即监测zabbix server或proxy内部执行状况。如果主机被server监控则在server端计算;类似,则在proxy端计算。内部监测由zabbix poller处理。

    描述

    详细

    备注

    支持的检测

    1无”<”号的参数为常量,如zabbix[host,<type>,available]中的host和available

    2item和item参数的值仅在支持类型下有效(如不支持在proxy端,则仅在server下可收集数据)

    样例

    创建item:

    Name: zabbix[boottime]

    Type: zabbix internal

    Key: zabbix[boottime]

    1.2.9SSH checks

    1简介:无客户端监控,不需要agent。Zabbix server须初始配置支持SSH2(rpm包安装情况下不需要)。

    注意:libssh2库最小支持版本为1.0.0

    2配置

    描述

    详细

    备注

    密码认证

    Ssh检测提供2种密码验证方式:

    1 user/password用户/密码对

    2 key-file密钥文件

    1 User/password方式不需要额外配置

    2 /home/zabbix在这里是zabbix用户帐户的主目录,而.ssh是一个目录,默认情况下,公钥和私钥将由主目录中的ssh-keygen命令生成。

    3 centos主目录的zabbix用户账号位置为/var/lib/zabbix

    4公钥和私钥默认生成在/home/zabbix/.ssh目录下(分别为id_rsa.pub和 id_rsa),该目录与zabbix server配置的SSHKeyLocation参数一致

    5密钥类型不为rsa可能不被zabbix中的libssh2支持

    Key-file密钥文件认证

    Key-file认证方式:

     1)vi /etc/zabbix/zabbix_server.conf

    2)设置SSHKeyLocation=/home/zabbix/.ssh

    3)重新配置zabbix的home目录

    3.1)停止agent和server。

    systemctl stop zabbix-agent

    systemctl stop zabbix-server

    3.2)尝试移动home目录位置(如果存在)

    usermod -m -d /home/zabbix zabbix

    3.3)移动失败则创建home目录(centos中)

    test -d /home/zabbix || mkdir /home/zabbix

    3.4)home目录权限设置

    chown zabbix:zabbix /home/zabbix

    chmod 700 /home/zabbix

    4) 启动:

    systemctl start zabbix-agent

    systemctl start zabbix-server

    5)执行秘钥生成命令

    sudo -u zabbix ssh-keygen -t rsa

    5.1)Enter file in which to save the key (/home/zabbix/.ssh/id_rsa):直接enter自动创建目录 '/home/zabbix/.ssh'

    5.2)Enter passphrase (empty for no passphrase):输入为空或自定义字符。

    本文配置passphrase为空

    Shell配置

    1每个SSH检测监控的主机上仅执行一次

    2)执行以下命令,将公钥文件安装到远程主机10.10.10.10,以便以root账号执行SSH检测:

    sudo -u zabbix ssh-copy-id root@10.10.10.10

    2.1) Are you sure you want to continue connecting (yes/no)?输入yes

    2.2) root@14.215.130.184's password:输入密码,如果失败则再次执行sudo -u zabbix ssh-copy-idroot@10.10.10.10命令。

    2.3)成功后Number of key(s) added: 1

    2.4)使用默认的私钥(/home/zabbix/.ssh/id_rsa)检测SSH 登录

    sudo -u zabbix ssh root@10.10.10.10

    本文配置为14.215.130.184

    Item配置

    配置item:

    Name:SSH test check(without passphrase)

    Type:SSH agent

    Key:ssh.run[clear]

    Host interface:****.10050

    Authentication method:public key

    User name:root

    Public key file:id_rsa.pub

    Private key file:id_rsa

    Key passphrase:

    Excuted script:具体执行脚本,多个脚本分行排列。如systemctl status mysql   top

    libssh2库可能将执行脚本缩短为32kB

    1.2.10 Trapper items

    1、概述

    Trapper items接收进入的数据而不是查询的数据。适合任何push(推送)到zabbix的数据。

    使用trapper item必须:1)zabbix设置trapper item 2)发送数据到zabbix

    2配置

    描述

    详细

    备注

    Item配置

    创建item:

    Name: trapper item

    Type: zabbix trapper

    Key: trap

    Type of information:text

    Allowed hosts:可为空或指定ip

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/trapper

    发送数据

    1该测试样例中,我们使用zabbix_sender工具发送测试数据:

    zabbix_sender -z 14.215.130.184 -p 10051 -s "Zabbix-server" -k trap -o "test value"
    2 在monitoring—》latest data查看数据:

    2018-05-04 14:44:14  test value

    1安装zabbix-sender

    yum install -y zabbix-sender

    2注意:"Zabbix-server"与Host中的Host name参数一致

    1.2.11 jmx monitoring

    1概述

    监控JMX(Java Management Extensions,即Java管理扩展)计数器。Zabbix通过名为Zabbix Java gateway的守护进程形式支持jmx监控。

    注意:java getway和被监控jmx应用间通讯不能启用防火墙,即开启端口。

    2对java应用开启远程jmx监控

    2.1)监控结构图:

     

    描述

    详细

    备注

    Zabbix-server ßàjava-gateway

    1) Zabbix-server通过java-gateway支持jmx监控;java-gateway提供10052端口给zabbix-server或proxy进行请求连接

    2) Zabbix server或proxy通过配置StartJavaPollers参数设置连接java-gateway线程数。而java-gateway则通过START_POLLERS配置工作线程数。建议StartJavaPollers小于或等于START_POLLERS

    1)Java-gateway需要安装,本文采用rpm(安装包方式)安装,不需要额外下载,直接yum命令安装即可:

    yum install -y zabbix-java-gateway

    2) 当然java必须先安装和配置好

    3)一个zabbix-server或proxy仅能配置一个gateway

    java-gateway ßàjmx

    Jmx可以理解为具体的java应用程序或基于jvm的容器,如本文的tomcat。Jmx提供默认的12345端口给java-gateway远程请求。

     

     

    2.2)安装配置顺序:

    描述

    详细

    备注

    1 Zabbix-server端安装java gateway

    本文为rpm安装,不需额外下载安装包,直接执行命令:

    yum install -y zabbix-java-gateway

    官网:https://www.zabbix.com/documentation/3.4/manual/concepts/java

    为编译安装,而本文为rpm安装,不使用按其安装方式,配置方式可参考。

    2配置java-gateway

    1)修改配置:

    vi /etc/zabbix/zabbix_java_gateway.conf

    修改内容:

    PID_FILE="/run/zabbix/zabbix_java.pid"

    Pid文件可通过find / -name zabbix_java.pid命令查找

    2)其他保留不变(端口默认10052),保存后重启gateway

    systemctl restart zabbix-java-gateway

    本文修改后内容为:PID_FILE="/run/zabbix/zabbix_java.pid"

     

    3 修改zabbix-server配置

    1)      修改

    vi /etc/zabbix/zabbix_server.conf

    2)      修改内容:

    JavaGateway=14.215.130.184

    StartJavaPollers=5

    3) 保存后重启zabbix-server

    systemctl restart zabbix-server

    JavaGateway=14.215.130.184 即java-gateway安装服务器,本文java-gateway和zabbix-server在同一个服务器。可将java-gateway安装在其他服务器

    StartJavaPollers=5开启请求线程数,小于或等于java-gateway的START_POLLERS

    4 客户端配置

    (如tomcat配置)

    1) 修改catalina.sh文件。

    vi /home/web2018/iotdebug/bin/catalina.sh

    2.1)非安全模式下监控,在Execute The Requested Command上添加

    CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=14.215.130.184 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

    保存后重启tomcat即可

    2.2)安全模式下监控,单用户(系统仅一个用户)情况:(未验证)

    a)通过: find / -name management 根目录查找jdk安装路径中的management目录。

    定位到该目录下:cd /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.171-2.6.13.0.el7_4.x86_64/jre/lib/management

    b)由于jdk默认不存在jmxremote.password文件,执行命令重命名:cp jmxremote.password.template jmxremote.password

    c) 创建自己的用户权限组:

    vi jmxremote.access

    在 monitorRole   readonly上添加自定义用户角色以及权限:

    invttest readonly

    其中invttest为自定义用户角色,readionly为用户操作权限(读权限)。

    d)创建用户权限组用户

    vi jmxremote.password

    在最后添加用户角色及密码

    invttest invt2018&Test)

    e)授权仅当前用户可读写操作jmxremote文件:

    chmod 600 jmxremote.*

    f) 修改catalina.sh文件。

    vi /home/web2018/iotdebug/bin/catalina.sh

    在Execute The Requested Command上添加

    CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=14.215.130.184 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true

    -Dcom.sun.management.jmxremote.password.file=$CATALINA_HOME/conf/jmxremote.password"

    注意;如果多用户情况下使用该配置,则无法正常监控,会提示报错:如java.lang.SecurityException: Authentication failed! Credentials required

    2.3)安全模式下监控,多用户(系统有多个用户),密码验证,非SSL:

    a)将单用户情况下的jmxremote.*复制到应用目录下(如tomcat目录下,随意放置),本文复制到tomcat的conf目录下

    cp jmxremote.password /home/web2018/iotdebug/conf/

    cp jmxremote.access /home/web2018/iotdebug/conf/

    b)设置文件权限,仅当前用户可读写操作:

    chmod 600 jmxremote.*

    c)增加自定义用户权限,并增加密码:

    vi jmxremote.access

    增加用户密码:web2018 invt2018&Test)

    在最后添加用户权限: invt readonly,保存

    vi jmxremote.password

    在最后添加用户密码;invt invttest2018,保存

    如果使用默认的monitorRole或controlRole用户,则只在jmxremote.password中取消对应的用户注释,并修改密码即可。

    d) 修改catalina.sh文件。

    vi /home/web2018/iotdebug/bin/catalina.sh

    在Execute The Requested Command上添加

    CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=14.215.130.184 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/home/web2018/iotdebug/conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/home/web2018/iotdebug/conf/jmxremote.access"

    本配置采用绝对路径

    f)重启tomcat,几分钟后,zabbix实现对jmx监控。如果报错:java.lang.SecurityException: Access denied!

    则检查监控项Item中是否配置了用户和密码。本文由于主机导入的jmx模板未配置用户和密码报错。

    解决办法(批量更新):

    a)      仅对当前主机item项增加用户名和密码(不影响系统模板):找到主机àItemsà选择TYPES中要增加的item类型,(本文为JMX agent)à勾选全选选项(第一个勾选项)à选择”Mass update”批量更新à更新username和password即可

    b)      更改整个模板,影响所有使用该模板的主机:

    主机àTemplatesà选择要修改的关联模板à选择关联模板中的Itemsà勾选全选à批量更新

     

    2.4)安全模式下监控,多用户(系统有多个用户)密码验证+SSL:(无有效SSL证书,无法验证)

    a)在上述基础上,增加SSL秘钥:本文使用java自带的keytool 生成秘钥库keystore,执行命令:

    keytool -genkey -alias tomcatsslkey -keyalg RSA -keystore /home/zabbix/mykey.keystore

    其中tomcatsslkey为秘钥库别名, /home/zabbix/mykey.keystore为存储位置

    b)提示输入密码并确认(本文密码invt2018):

    Enter keystore password:

    Re-enter new password:

    c)提示输入基本信息:

    What is your first and last name?

    随便输入即可。

    d)全部输入后,提示确认

     Is CN=tomcat, OU=apache, O=apcahe, L=beijing, ST=cn, C=cn correct?

      [no]:

    输入: y

    e)提示输入key password密码:如果与keystore password相同可直接回车。本文直接回车。生成后会有个Warning: 忽略

    f)将生成的秘钥导出为公钥:

    keytool -export -alias tomcatsslkey -keystore /home/zabbix/mykey.keystore -rfc -file /home/zabbix/mypublickey.key

    其中-file /home/zabbix/mypublickey.key为导出后的文件位置和名称,提示输入密码:invt2018

    g) 将生成的公钥导入并生成信任证书(Truststore信任证书):

    keytool -import -alias tomcatsslkey -file /home/zabbix/mypublickey.key -keystore /home/zabbix/mytrustkey.keystore

    提示输入密码并确认,可与keystore保持一致。本文保持一致。

    至此,keystore、truststore、公钥证书都已生成完毕。查看/home/zabbix目录,生成了mykey.keystore

    h)配置tomcat,

    vi conf/server.xml

    新增如下配置:

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

     maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/home/zabbix/mykey.keystore" keystorePass="invt2018" />

    浏览器输入https://14.215.130.184:8443确认不安全访问,访问成功则配置成功。

    i) 修改catalina.sh文件。

    vi /home/web2018/iotdebug/bin/catalina.sh

    在Execute The Requested Command上添加

    CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=14.215.130.184 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/home/web2018/iotdebug/conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/home/web2018/iotdebug/conf/jmxremote.access -Dcom.sun.management.jmxremote.ssl=true -Djavax.net.ssl.keyStore=/home/zabbix/mykey.keystore -Djavax.net.ssl.keyStorePassword=invt2018 -Dcom.sun.management.jmxremote.ssl.need.client.auth=true -Djavax.net.ssl.trustStore=/home/zabbix/mytrustkey.keystore -Djavax.net.ssl.trustStorePassword=invt2018"

    重启tomcat,但zabbix无法实现jmx监控,因为用keytool自签发的证书,CAS Client并不信任这个证书。并报错:

    error during JRMP connection establishment; nested exception is: 
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 

    1本文tomcat名称为iotdebug路径/home/web2018/iotdebug

    2 CATALINA_OPTS配置为一行,-D前注意空格

    3 Djava.rmi.server.hostname为tomcat所在的主机ip,

    -Dcom.sun.management.jmxremote.port=12345为提供远程监控端口号,必须为未被使用的,且防火墙开通

    4 多tomcat监控好的方法是自动发现,笨方法可采用下面链接

    https://www.cnblogs.com/owenma/p/6894639.html

    https://blog.csdn.net/Hu_wen/article/details/53587250?locationNum=14&fps=1

    5 配置的jmxremote.access和jmxremote.password在整个服务器上有效(只需配置一次),因为所有的java应用均依赖于jdk。仅需要在java应用(如tomcat)配置相应的文件路径,jmx会自己查找

    4) 设置权限:

    chmod a+rx /home/user

    设置所有用户对/home/user有读权限

    https://www.cnblogs.com/langke93/p/4089662.html

    5) 如果jmxremote权限不限制为启动tomcat的用户所有,在修改catalina.sh文件后tomcat启动时会报错:

    Error: Password file read access must be restricted: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.171-2.6.13.0.el7_4.x86_64/jre/lib/management/jmxremote.password

     

    配置参考:https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html

     

    6)SSL自定义参考:

    https://blog.csdn.net/shfqbluestone/article/details/21242323

    https://www.cnblogs.com/Sunzz/p/8862338.html

    https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html

     

    5 配置zabbix监控模板

    1)      HostàJMX interfacesà点击”Add”à输入ip(被监控项(如tomcat)所在服务器的ip),端口默认12345àupdate

    2)      TemplatesàLink new templatesà点击”select”à在弹出框中勾选Template App Generic Java JMX和Template App Apache Tomcat JMXà点击弹出框底部的”select”à点击”update”

    3)      几分钟后,如果jmx图标为绿色,则配置成功。在monitoringàlatest dataà查看监控的jmx最新数据(如tomcat,Threads)

    Template App Generic Java JMX和Template App Apache Tomcat JMX自带了许多通用的监控项

    报错:JMX agent item "jmx["java.lang:type=Threading",ThreadCount]" on host "Zabbix-server" failed: first network error, wait for 15 seconds

    JMX agent item "jmx["java.lang:type=OperatingSystem",OpenFileDescriptorCount]" on host "Zabbix-server" failed: first network error,

    取消该模板关联,部分配置不支持导致?

    1.2.12 mysql监控

    https://blog.csdn.net/xiegh2014/article/details/72859982

    1简介:

    描述

    详细

    备注

     

    ODBC监控对应zabbix页面中的Database monitor 监控项,ODBC是访问数据管理系统(DBMS)的C语言中间件API。可访问任何数据库。

    Zabbix通过ODBC接口和配置驱动连接到数据库,可监控数据队列,使用统计等。Zabbix支持unixODBC(常用的开源ODBC API实现,linux系统自带安装包)

     

     

     

     

    2配置

    步骤

    详细

    备注

    安装unixODBC

    yum -y install unixODBC unixODBC-devel

     

    Linux系统一般都自动安装可跳过

    安装ODBC

    yum install mysql-connector-odbc

    连接mysql的ODBC驱动

    配置odbc

    1)     查看odbc安装信息:

    • odbcinst –j

    结果为:

    unixODBC 2.3.1

    DRIVERS............: /etc/odbcinst.ini

    SYSTEM DATA SOURCES: /etc/odbc.ini

    FILE DATA SOURCES..: /etc/ODBCDataSources

    USER DATA SOURCES..: /root/.odbc.ini

    SQLULEN Size.......: 8

    SQLLEN Size........: 8

    SQLSETPOSIROW Size.: 8

    2) 修改odbcinst.ini中配置:

    vi /etc/odbcinst.ini

    找到对应的mysql驱动信息:

    [MySQL]

    Description=ODBC for MySQL

    Driver=/usr/lib/libmyodbc5.so

    Setup=/usr/lib/libodbcmyS.so

    Driver64=/usr/lib64/libmyodbc5.so

    Setup64=/usr/lib64/libodbcmyS.so

    FileUsage=1

    说明:[MySQL]中的mysql为数据库驱动名, Driver为驱动包位置

    3) 查看/etc/odbc.ini,本文linux系统默认不存在该文件。

    先创建:

    touch /etc/odbc.ini

    修改

    vi /etc/odbc.ini

    添加内容:

    [test]

    Description=MySQL test database

    Driver=MySQL

    Server=14.215.130.184

    User=zabbix

    Password=zabbix2018

    Port=3306

    Database=zabbix

    4) 执行命令:

    isql test

    报错:

    [ISQL]ERROR: Could not SQLConnect

    5)报错解决:原因为驱动包不存在,查看本系统已有驱动包;

    find / -name libmyodbc*

    结果:

    /usr/lib64/libmyodbc8a.so

    /usr/lib64/libmyodbc8w.so

     

    如果继续使用驱动名MYSQL,则修改/etc/odbcinst.ini中的Driver文件路径配置

    或直接使用/etc/odbcinst.ini中配置了/usr/lib64/libmyodbc8a.so或/usr/lib64/libmyodbc8w.so的驱动名称MySQL ODBC 8.0 Unicode Driver和MySQL ODBC 8.0 ANSI Driver,本文使用MySQL ODBC 8.0 Unicode Driver

    6)再次修改vi /etc/odbc.ini

    [test]

    Description=MySQL test database

    Driver=MySQL ODBC 8.0 Unicode Driver

    Server=14.215.130.184

    User=zabbix

    Password=zabbix2018

    Port=3306

    Database=zabbix

    保存后,执行isql test命令,连接成功。可执行sql语句,如show tables;退出sql命令:quit;

    1)Mysql连接报错:远程连接可以,本地连接报错:

    ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)

    https://segmentfault.com/q/1010000005657136

    修改登录方式,增加主机

    mysql -h 192.168.1.200 -u root –p

    登录成功。原因:主机的host文件无localhost和127.0.0.1的映射或未配置'zabbix'@'localhost'权限

    https://blog.csdn.net/ynnmnm/article/details/45154725

    查看host文件:

    vi /etc/hosts

    添加映射关系

    3) isql 命令报错:

    原因分析参考:

    https://blog.csdn.net/okhelp/article/details/73770001

    该文章提供了思路,原因驱动文件不存在。

    vi /etc/odbcinst.ini

    其他mysql驱动名称配置信息:

    [MySQL]

    Description=ODBC for MySQL

    Driver=/usr/lib/libmyodbc5.so

    Setup=/usr/lib/libodbcmyS.so

    Driver64=/usr/lib64/libmyodbc5.so

    Setup64=/usr/lib64/libodbcmyS.so

    FileUsage=1

     

    [MySQL ODBC 8.0 Unicode Driver]

    Driver=/usr/lib64/libmyodbc8w.so

    UsageCount=1

     

    [MySQL ODBC 8.0 ANSI Driver]

    Driver=/usr/lib64/libmyodbc8a.so

    UsageCount=1

     

    配置监控项

    1)Hostsà点击已添加的主机àTemplatesà选择Link new templates右侧的selectà勾选弹出框中的Template DB MySQL模板à滚动弹出框底部,点击selectà弹出框消失,点击Link new templates下的Addà执行update,将mysql的监控模板关联到当前主机,几分钟后查看monitoringàLatest data

    没有数据,该默认模板需要自行提供脚本及其他配置,可参考网上(尝试也未能成功)

    2)自定义监控项:

    自定义监控项:

    Name: select count(1) from users

    Type:database monitor

    Key: db.odbc.select[mysql-simple-check,test]

    Type of information:numeric(unsigned)

    Update interval:30m

    说明:test为上面/etc/odbc.ini定义的数据库连接名称,mysql-simple-check为识别字符(自定义)

    更多参考https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/odbc_checks

    实际并无太多价值

    注意:mysql监控项貌似不行,每次执行mysql语句时报错

    官网有类似bug信息https://support.zabbix.com/browse/ZBX-7665

     

    https://support.zabbix.com/browse/ZBX-11573

     

     

     

     

    报错信息;

    37565:20180509:174256.293 Got signal [signal:11(SIGSEGV),reason:1,refaddr:0x60]. Crashing ...

     37565:20180509:174256.293 ====== Fatal information: ======

     37565:20180509:174256.293 Program counter: 0x7f5fffec2377

     37565:20180509:174256.293 === Registers: ===

     37565:20180509:174256.293 r8      =                0 =                    0 =                    0

     37565:20180509:174256.293 r9      =               10 =                   16 =                   16

     37565:20180509:174256.293 r10     =     7fff4e751e20 =      140734509686304 =     

                   96

     37565:20180509:174256.294 === Backtrace: ===

     37565:20180509:174256.294 27: /usr/sbin/zabbix_server: poller #2 [got 1 values in 0.000650 sec, getting values](zbx_log_fatal_info+0x13c) [0x563229e1d734]

     37565:20180509:174256.294 26: /usr/sbin/zabbix_server: poller #2 [got 1 values in 0.000650 sec, getting values](+0xe7b49) [0x563229e1db49]

     37565:20180509:174256.295 25: /lib64/libpthread.so.0(+0xf5e0) [0x7f60119175e0]

     37565:20180509:174256.295 24: /usr/lib64/libmyodbc8w.so(+0x83377) [0x7f5fffec2377]

     37565:20180509:174256.295 23: /usr/lib64/libmyodbc8w.so(_Z22add_compiled_collationP12CHARSET_INFO+0x25) [0x7f5fffec2d25]

     37565:20180509:174256.295 22: /usr/lib64/libmyodbc8w.so(_Z22init_compiled_charsetsi+0x15) [0x7f5ffff14cb5]

     37565:20180509:174256.295 21: /usr/lib64/libmyodbc8w.so(+0x827ac) [0x7f5fffec17ac]

    37565:20180509:174256.295 14: /usr/lib64/libmyodbc8w.so(SQLAllocHandle+0x60) [0x7f5fffeacaf3]

     37565:20180509:174256.295 13: /lib64/libodbc.so.2(+0xd8dc) [0x7f60103468dc]

     37565:20180509:174256.295 12: /lib64/libodbc.so.2(SQLConnect+0x1a7) [0x7f6010348af7]

     37565:20180509:174256.295 11: /usr/sbin/zabbix_server: poller #2 [got 1 values in 0.000650 sec, getting values](odbc_DBconnect+0x24d) [0x563229e75259]

    37565:20180509:174256.295 3: /usr/sbin/zabbix_server: poller #2 [got 1 values in 0.000650 sec, getting values](daemon_start+0x325) [0x563229e1ce7a]

     37565:20180509:174256.295 2: /usr/sbin/zabbix_server: poller #2 [got 1 values in 0.000650 sec, getting values](main+0x312) [0x563229d75ea7]

     37565:20180509:174256.295 1: /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f600e3aec05]

     37565:20180509:174256.295 0: /usr/sbin/zabbix_server: poller #2 [got 1 values in 0.000650 sec, getting values](+0x34599) [0x563229d6a599]

     37565:20180509:174256.295 === Memory map: ===

     37565:20180509:174256.297 563229d36000-563229f3d000 r-xp 00000000 fd:00 204967485                  /usr/sbin/zabbix_server_mysql

     37565:20180509:174256.297 56322a13c000-56322a1a4000 r--p 00206000 fd:00 204967485                  /usr/sbin/zabbix_server_mysql

     37565:20180509:174256.297 56322a1a4000-56322a1ad000 rw-p 0026e000 fd:00 204967485                  /usr/sbin/zabbix_server_mysql

     37565:20180509:174256.297 56322a1ad000-56322a1b5000 rw-p 00000000 00:00 0

     37565:20180509:174256.303 7f6012316000-7f6012317000 rw-p 00000000 00:00 0

     37565:20180509:174256.303 7fff4e715000-7fff4e9f5000 rw-p 00000000 00:00 0                          [stack]

     37565:20180509:174256.303 7fff4e9fe000-7fff4ea00000 r-xp 00000000 00:00 0                          [vdso]

     37565:20180509:174256.303 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

     37565:20180509:174256.303 ================================

     37565:20180509:174256.303 Please consider attaching a disassembly listing to your bug report.

     37565:20180509:174256.303 This listing can be produced with, e.g., objdump -DSswx zabbix_server.

     37565:20180509:174256.303 ================================

     37533:20180509:174256.306 One child process died (PID:37565,exitcode/signal:1). Exiting ...

     

     

  • 相关阅读:
    行为型模式之 命令模式
    结构型模式之 代理模式
    oop编程思想
    2013应届毕业生各大IT公司待遇整理汇总篇(转)
    python定义class
    python——博客园首页信息提取与分析(转载有改动)
    深入浅出TCP/IP协议
    python基础之socket
    python基础
    c++stl之stack
  • 原文地址:https://www.cnblogs.com/cslj2013/p/9182411.html
Copyright © 2020-2023  润新知