Z大牛的小分享:给zabbix更换nagios图标

2021-02-03 09:56:58 浏览数 (1)

Zabbix的maps用来图形化显示监控设备的拓扑图,并且以不同的标记显示故障事件,通过该图表很直观的显示设备的整体情况,nagios中monitoringexchange.org上下载的图标还是很漂亮的,zabbix自带的图标就逊色多了,下面就讲怎么把nagios的图标添加到zabbix的图片库中。

下载链接如下:

链接: https://pan.baidu.com/s/1c2eGl8k 密码: 7cv7

github: https://github.com/bluetom520/zabbix-icon

脚本如下

#!/bin/sh

##懒懒的天空

### GLOBALS

IMG_EXT="{gd2,jpg}"

SQL_FILE="my_images_mysql.sql"

SQL_INS="INSERT INTO images VALUES ("

SQL_IMAGEID_RANGE=0

SQL_IMAGETYPE=1

SQL_NAME=""

SQL_IMAGE=""

### ERROR

NORMAL=0

ERR_ARGS=1

ERR_NO_DIR=2

ERR_NO_FILE=3

RETVAL=$NORMAL

########################################################################

### Actual Main

########################################################################

main() {

 local dir=$1

 local num=`mysql -uroot -p123456 zabbix -e "SELECT MAX(imageid) FROM images;"|grep -e '[0-9].*'`

 num=$(($num  1))

 # check the number of command argument

 if [ $# -lt 1 ]; then

 return $ERR_ARGS

 fi

 # check target dir

 [ ! -d $dir ] && return $ERR_NO_DIR

 # check target file

 check_image_file $dir || return $?

 # make sql file

 make_sql_file $num

 return $RETVAL

}

########################################################################

### Check image files existence

########################################################################

check_image_file() {

 local dir=$1

 local file_num=0

 file_num=$(eval ls $dir/*.$IMG_EXT 2>/dev/null | wc -l)

 [ $file_num -eq 0 ] && return $ERR_NO_FILE

 return $RETVAL

}

########################################################################

### Make SQL file to insert image files

########################################################################

make_sql_file() {

 local f=

 [ -f $SQL_FILE ] && rm -f $SQL_FILE

 SQL_IMAGEID=$1

 for f in $(eval ls $dir/*.$IMG_EXT 2>/dev/null)

 do

 SQL_NAME=$(basename $f | cut -d. -f1)

 SQL_IMAGE="0x$(od -tx1 $f | awk '{for(i=2; i<=NF; i ) printf("%s", toupper($i))}')" echo "$SQL_INS $SQL_IMAGEID, $SQL_IMAGETYPE, '$SQL_NAME', $SQL_IMAGE);">> $SQL_FILE

 SQL_IMAGEID=$(($SQL_IMAGEID   1))

 echo -n "." # in progress

 done

 echo -e "ncompleted"

 return $RETVAL

}

########################################################################

### Check error and display error message

########################################################################

check_error() {

 local result=$1

 case $result in

 $ERR_ARGS)

 usage

 ;;

 $ERR_NO_DIR)

 echo "cannot find target dir"

 ;;

 $ERR_NO_FILE)

 echo "cannot find "*.$IMG_EXT" files"

 ;;

 *)

 echo "unknown error"

 ;;

 esac

 return $result

}

########################################################################

### Usage

########################################################################

usage() {

 echo "Usage: make_img_insert_sql.sh <start_imageid>"

}

########################################################################

### Script Main

########################################################################

main "$@" || check_error $?

执行脚本

1.    脚本保存为make_img_insert_sql.sh

2.    vendors为图标目录 png导入不识别

3.    sh make_img_insert_sql.sh vendors

4.    会生成my_images_mysql.sql 文

5.    cat my_images_mysql.sql |mysql -uzabbix -pzabbix zabbix

6.    每执行完毕删除上一次的sql文件

7.    然后继续下一个目录

图标显示如下图

0 人点赞