5、zabbix_自動發現_磁盤io

zabbix 自動發現-磁盤io_1

在zabbix中添加新主機時,是需要手動添加,但在zabbix的Action裏有兩項功能,自動發現與自動註冊,運用這兩個功能中任意一個都可以實現自動添加機器,但添加的主機名是IP地址。

自動發現:添加discovery規則後,zabbix sever端基於IP範圍對agent機器進行掃描,並把掃描到的機器添加到web端。zabbix server端的操作,會使其壓力很大

自動註冊:zabbix agent端會自動發送信息到server端,然後agent主機會被添加到web端。zabbix agent端的操作

​ 建議使用自動註冊功能,當在zabbix web端配置完discovery規則後,以後公司新增機器,就算不在一個網段,只要能夠與server機器通信,修改一下agent配置文件,就可以自動添加主機。當把服務安裝做成標準化,基本就很省心。

  1. 官網配置說明

    地址: https://www.zabbix.com/documentation/3.4/zh/manual/discovery/auto_registration
    # 這裏定義自動註冊的方式
    
    1、安裝fping
    	yum -y install fping
    2、步驟說明
        名稱:自動註冊動作Linux
        條件:
        計算類型:AND
        條件(A):主機元數據 似 Linux
        條件(B):主機元數據 似 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
        操作
        向用戶發送消息:通過Admin發送所有媒體
        添加到主機組:Linux servers
        鏈接到模板:Template OS Linux
    
    3、zabbix_agentd.conf配置    
    	Server=地址
    	ServerActive=地址
    	HostnameItem=system.hostname		# 獲取主機名稱
        HostMetadataItem=system.uname      
    	HostMetadata=Liunx 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
    	RefreshActiveChecks=60    # 刷新時間爲60秒, 實驗環境弄短一點,線上長一點
    # 腳本	
    UserParameter=io.dis.status[*],/usr/local/zabbix/script/disk/discovery_iostat_disk.sh
    UserParameter=io.status[*],/usr/local/zabbix/script/disk/zabbix_iostat_disk.sh  $1 $2
    
  2. 腳本

    # 這裏是將文件弄成字典方式
    [root@gmv6 disk]# cat discovery_iostat_disk.sh 
    #!/bin/bash
    #
    #   Name:service 自動發現io_磁盤
    #   Version Number:1.01
    #   Type: 自動發現io_磁盤
    #   Language:bash shell  
    #   Date:2017-08-07  
    #   Author:xiong
    
    disk=(`awk '{print $1}' /tmp/io2.txt | sed -e "1,2d"`)
    length=${#disk[@]}
    
    printf "{\n"
    printf "\t\"data\":[\n"
    for ((i=0;i<$length;i++)); do
    	printf '\t\t{'
    	printf "\"{#DISK_NAME}\":\"${disk[$i]}\"}"
    	if [ $i -lt $[$length - 1] ];then
    		printf ",\n"
    	fi
    done
    printf "\n\t]\n"
    printf "}\n"
    
    [root@gmv6 disk]# cat zabbix_iostat_disk.sh 
    #!/bin/bash
    #
    #   Name:service 自動發現io_磁盤
    #   Version Number:1.01
    #   Type: 自動發現io_磁盤
    #   Language:bash shell  
    #   Date:2017-08-07  
    #   Author:xiong
    
    disk=$2
    case $1 in
    rrqm)
    	grep "$disk" /tmp/io2.txt | awk '{print $2}' ;;
    wrqm)
    	grep "$disk" /tmp/io2.txt | awk '{print $3}' ;;
    rs)
    	grep "$disk" /tmp/io2.txt | awk '{print $4}' ;;
    ws)
    	grep "$disk" /tmp/io2.txt | awk '{print $5}' ;;
    rkB)
    	grep "$disk" /tmp/io2.txt | awk '{print $6}' ;;
    wkB)
    	grep "$disk" /tmp/io2.txt | awk '{print $7}' ;;
    avgrqsz)
    	grep "$disk" /tmp/io2.txt | awk '{print $8}' ;;
    avgqusz)
    	grep "$disk" /tmp/io2.txt | awk '{print $9}' ;;
    await)
    	grep "$disk" /tmp/io2.txt | awk '{print $10}' ;;
    rawait)
    	grep "$disk" /tmp/io2.txt | awk '{print $11}' ;;
    wawait)
    	grep "$disk" /tmp/io2.txt | awk '{print $12}' ;;
    svctm)
    	grep "$disk" /tmp/io2.txt | awk '{print $13}' ;;
    util)
    	grep "$disk" /tmp/io2.txt | awk '{print $14}' ;;
    *)
            echo "使用方法  /bash disk_name disk_type" 
            exit 5 ;;
    esac
    
    # 這個腳本獲取io的狀態, 最重要的腳本
    [root@gmv6 disk]# cat iotop_total.sh 
    #!/bin/bash
    #
    #   Name:io scripts 
    #   Version Number:1.01
    #   Type:服務啓動腳本 
    #   Language:bash shell  
    #   Date:2019年1月7日  
    #   Author:xiong
    
    
    disk_raed(){
        NUM=`/bin/sudo /sbin/iotop -b -n 1 | grep "Total DISK READ" | grep -v grep | awk  -F "|" '{print $1}' | awk -F ":" '{print $2}' | awk '{print $1}' | awk -F "." '{print $1}'`
        echo ${NUM}    
    }
    
    disk_write(){
        NUM=`/bin/sudo /sbin/iotop -b -n 1 | grep "Total DISK WRITE"  | grep -v grep  | awk  -F "|" '{print $2}' | awk -F ":" '{print $2}' | awk '{print $1}' | awk -F "." '{print $1}'`
        echo ${NUM}    
    }
    
    main(){
        case $1 in
            disk_raed)
               disk_raed ;;
            disk_write)
               disk_write ;;
        esac
    }
    main $1
    
    最後需要隔一段時間執行一次這個腳本 crontab -e
    # zabbix io監控
    0 */1 * * * /usr/local/zabbix/script/disk/iostat.sh
    
  3. 查看鍵值是否正確(服務器上執行)

    [root@zabbix bin]# ./zabbix_get -s 地址 -k io.dis.status
    {
    	"data":[
    		{"{#DISK_NAME}":"sda"},
    		{"{#DISK_NAME}":"dm-0"},
    		{"{#DISK_NAME}":"dm-1"},
    		{"{#DISK_NAME}":"dm-2"},
    		{"{#DISK_NAME}":"dm-3"},
    		{"{#DISK_NAME}":"dm-4"},
    		{"{#DISK_NAME}":"dm-5"}
    	]
    }
    
  4. 服務器上配置模板

    創建自動發現規則
    在這裏插入圖片描述
    在這裏插入圖片描述

  5. 步驟

    ​ 配置 – 動作 – 事件源(自動註冊) – 創建動作

  6. 創建動作
    在這裏插入圖片描述
    在這裏插入圖片描述

  7. 最終效果
    在這裏插入圖片描述

接下篇- mysql庫 數據庫大小 索引大小, 數據庫行監控

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章