zoukankan      html  css  js  c++  java
  • zabbix一些高级功能介绍

    根据上篇配置的环境,接下来说明在zabbix agent上执行远程命令是如何完成的。

    远程命令受到一些限制:

    (1)在agent执行远程命令必须给zabbix用户定义sudu规则:

    (2)不支持active模式的agent

    (3)不支持代理模式

    (4)命令长度不得超过255个字符

    (5)可以使用宏

    (6)zabbix-server仅执行命令,而不关心命令是否执行成功

    修改一下agent的配置文件,vim /etc/zabbix/zabbix_agentd.conf  把EnableRemoteCommands和LogRemoteCommands这两个参数都设置为1,第一个参数表示支持远程命令执行,第二个表示该操作将被记录到日志中。

     

    回到zabbix web gui界面在client主机下定义一个新的item:

    此处我设置的数据类型为Boolean,非真(1)即假(0),item key 为监听tcp的80端口。

    再为该item定义一个trigger

    Expression表示最后一次取值是否为0,如果为0则触发该trigger。

     

    为该trigger定义一个action:

     

    指定了在哪台agent上执行远程命令,注意执行的命令前要添加sudo。

     

    action定义好了

     

    因为执行命令的用户为zabbix。此时该命令还无法执行,还得去sudoer文件去为zabbix用户添加执行权限,在agent端执行命令visudo

    添加一行,表示zabbix可以在任何主机(过来请求执行命令的主机)执行任何命令,而不需要密码。

     

    Defaults这个参数表示要求执行命令的用户必须通过tty终端登录了该主机,而执行远程命令的zabbix不会登陆系统,所以必须得注释掉该参数。

     

    手动启动httpd服务发现服务虽然启动了但报了一个错:

     

    vim /etc/hosts

    把第一行的主机名修改为client(当前主机名)。停掉httpd服务。这时远程命令就会自动执行了,ss -tnl 查看80端口会被监听了。查看一下日志最后一行显示命令已经执行:

     

    接下来自定义个item key,vim /etc/zabbix/zabbix_agentd.conf

    这个目录存放自定义item key的文件, 自定义item key的语法为:UserParameter=key,command或UserParameter=key[*],command,后面的那个[*]表示是可以带参数,参数在command中的调用为$1,$2..

     

    vim /etc/zabbix/zabbix_agentd.d/os.conf

    自定义的item key名字为os.memory.free  命令取得的值为空闲的内存数,还得重启agent服务 service zabbix-agent restart。

     

    回到gui界面,重新定义一个item

     

    再为该item定义一个graph

     

    此图下面已经显示所取得平均值了。

     

    接下来再用UserParameter=key[*],command这种语法格式定义item key       vim os.conf

    在zabbix服务器上执行mysql -e "show global status" | awk '/Com_select/{print $0}'

    取得它的查询次数 mysql -e "show global status" | awk '/Com_select/{print $2}'

     

    在os.conf文件后面定义:vim /etc/zabbix/zabbix_agentd.d/os.conf

    print后面加了两个$是为了避免与前面的$冲突,定义完毕,service zabbix-agnet restart,在该agent上安装mysql  yum -y install mysql-server   service mysqld start

    mysql   grant all on *.* to 'root'@'%' identified by 'password'    flush  privileges

     

    在zabbix服务器上去使用zbbix_get命令去获取刚刚定义item key

    zabbix_get -s 192.168.238.222 -k "Mysql.dml[192.168.238.222,root,password,select]"

     

    回到web页,再为agent定义一个item,监控server上的Com_select  先到server上进行授权  mysql  grant all on *.* to 'root'@'%' identified by 'password';

    到web gui上定义item 

     

    为该item定义一个graph

     

    点击preview

     

    zabbix提供网络发现功能:network discover,网络发现通常包含两个阶段:discover和actions,在执行网络发现功能前确保server和agent是时间同步的

    启动一台新的虚拟机安装agent,启动服务 service zabbix-agent start,回到web gui 在该目录下创建新的发现规则

    点击create discovery rule

    这里我定义了扫描的ip地址范围191-192(新的agent其ip地址就是191),扫描的时间间隔为10秒(为测试目的,生产环境根据需要定义,太短会消耗很多带宽)使用ping的方式进行扫描

     

     

    这时Monitoring目录下的Discovery已经发现了该主机了

     

    当主机发现后还得为它定义action,先去定义一个template发现该主机后将该主机链接到该template

    定义了template的名字,将该template放在了test组中。

     

    在test组中找到该template为其添加一个application:

     

     

    再为该application添加一个item

    上面的item key我事先已经在该被发现的agent上/etc/zabbix/zabbix_agentd.d/os.conf文件中定义好了 如下:

     

    再为该item定义一个graph

     

    template定义好了,现在去定义action了,在Configuration下的Actions目录下将Event source设定为Discovery

     

    点击Create action

     

     

    定义好condition,条件就使用我们刚才定义的discovery rule,discovery status 必须是discovered或者Up,而不是lost,下面的A和B这两项必须有

    接下来去定义Operations

     

    这样就为一个discovery定义了一个action

     

    可以在Configuration的Host groups中查看到被发现的主机:

     

    还可以在server的mysql中查看

     

    也可以在Monitoring中的Latest data中查看:

     

    接下来说auto-registion,自动注册功能,agent会主动将自己报告给server,而不需要server去扫描整个网络,减轻了网络的负担,新开一台agent虚拟机,记得首先同步一下时间

    配置文件有几个选项得修改

     

     

    上面这个参数在下面action中定义condition有用

     

    上面的ListenIp指定本机的网卡

     

    在Configuration的Actions下将Event source改为Auto registration 点击create action

     

     

     

     

    apache3已经自动注册了

     

     

    一般我们只是用主动或被动监控其中一种模式。

    apache3是主动注册的,我们为它可以定义Zabbix agent(active) 的item 

     

     

    为该item定义一个graph

     

    点击preview

     

  • 相关阅读:
    【kindeditor】kindeditor的使用
    【kindeditor】KindEditor获取多个textarea文本框的值并判断非空
    jsp文件放在WebRoot下还是WebInfo下
    前端居中模板(常用HTML模板)
    mybatis传入map参数,map中包含list(输入参数)
    mybatis动态sql片段与分页,排序,传参的使用与一对多映射与resultMap使用
    mysql实现随机获取几条数据的方法
    android library projects cannot be launched
    [leetcode]Longest Consecutive Sequence
    看懂下面C++代码才说你理解了C++多态虚函数!
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5380569.html
Copyright © 2011-2022 走看看