zoukankan      html  css  js  c++  java
  • zabbix--External checks 外部命令检测

    概述
    zabbix server 运行脚本或者二进制文件来执行外部检测,外部检测不需要在被监控端运行任何 agentd
    item key 语法如下:

    参数 定义
    script shell 脚本或者二进制文件名.
    parameter(s) Optional command line parameters.

    如果不想传递任何参数,如下:
    script[] 或者 script
    zabbix server 会再定义好的目录里面执行外部脚本(zabbix server 中的配置 extenalScripts),这个脚本将使用 zabbix
    的运行用户身份运行。请注意权限以及只有指定目录中的命令才能够被执行。
    zabbix 脚本使用标准方式输出(完整输出但是会删除末尾的空白) ,标准错误和退出代码将会被丢弃

    PS:请不要过度使用那个外部检测,这会严重降低 zabbix 系统性能

     下面写个简单脚本测试下:

    [root@localhost zabbix]# ls
    alertscripts  externalscripts
    [root@localhost zabbix]# cat externalscripts/mysql.sh 
    #!/bin/bash
    export MYSQL_PWD=123456
    mysql -uroot  -h 192.168.1.107 -e "select account_locked from mysql.user where user='zabbix';"
    [root@localhost zabbix]# chmod a+x externalscripts/mysql.sh 
    [root@localhost zabbix]# chown zabbix:zabbix externalscripts/mysql.sh 
    [root@localhost zabbix]# ll externalscripts/mysql.sh 
    -rwxr-xr-x 1 zabbix zabbix 131 Jun 22 16:13 externalscripts/mysql.sh
    [root@localhost zabbix]# pwd
    /usr/lib/zabbix
    [root@localhost zabbix]# 

    然后创建item

     检查能不能获取到数据:

    上面例子可以继续优化 实际上脚本可能会给多个主机使用,不同主机的数据库连接信息也不一样,需要改成传参的方式:

    加入位置参数:

    [root@localhost zabbix]# ./externalscripts/mysql.sh 192.168.1.107 zabbix 123456
    N
    [root@localhost zabbix]# cat ./externalscripts/mysql.sh 
    #!/bin/bash
    host=$1
    user=$2
    mysql_pwd=$3
    
    export MYSQL_PWD=$3
    mysql -uroot  -h $1 -e "select account_locked from mysql.user where user="$2";" | sed -n "2p"
    [root@localhost zabbix]# 

     修改下item:

     

    再配置下value maping

     

     lastest data看下效果:

  • 相关阅读:
    mongodb分片集群报错261
    Galera集群安装报错Operation not permitted
    k8s部署php程序访问显示报错
    k8使用secret拉取镜像失败的问题
    nginx反向代理与负载均衡
    ---connet MPT device to PC under Ubuntu
    ----vysor
    ---su
    ---mysql utf8 设置
    ---Android logcat 记录日志
  • 原文地址:https://www.cnblogs.com/laonicc/p/11069115.html
Copyright © 2011-2022 走看看