Add Host Group จำนวนเยอะๆด้วย Shell Script

Add Host Group อย่างไร ให้เร็ว และง่าย

การ Add Host Group จำนวนเยอะๆ หากเราทำแบบ Manual อาจจะใช้เวลาค่อนข้างมาก
จึงอยากเสนอวิธีการในการ Add Host Group โดยใช้ Shell Script รันครั้งเดียว จบ ครบถ้วน

สิ่งที่เราต้องมี คือ

  1. List ของ Host Group ที่เราจะ Add
    โดยจะใส่ไว้ใน file ชื่อ listgroupname เพื่อให้ Script ไปเรียกหาได้
  2. Script มีการใช้ jq ดังนั้นเราต้องมี jq ในเครื่องด้วย
    Centos : yum -y install jq
    Ubuntu : apt-get install jq
#!/bin/bash
#File Name is HostGroupAdd.sh
#This Program for Add Host Group
#This Program work with listgroupname which have Host group
#Modify By stitchietare

ZABBIX_USER=UserZabbix
ZABBIX_PASS=PasswordZabbix
ZBAPI='http://xx.xx.xx.xx/zabbix/api_jsonrpc.php'

# Authenticate with Zabbix API
authenticate() {
echo `curl -k -s -H 'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"user.login\",\"params\":{\"user\":\""${ZABBIX_USER}"\",\"password\":\""${ZABBIX_PASS}"\"},\"auth\": null,\"id\":0}" $ZBAPI`
}
AUTH_TOKEN=`echo $(authenticate)|jq -r .result`


for NAME in $(cat listgroupname);
do

#Add Host Group

curl -k -s -H 'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"hostgroup.create\",\"params\":{\"name\":\""${NAME}"\"},\"auth\":\""${AUTH_TOKEN}"\",\"id\": 0}" $ZBAPI

done

$vi listgroupname ขึ้นมา ใส่ชื่อของ HostGroup ที่เราจะสร้างลงไป

PreProd-Webserver
Prod-Webserver
PreProd-Webapplication
Prod-Webapplication
PreProd-LoadBalance
Prod-LoadBalance
PreProd-Database
Prod-Database

จะได้ File 2 Files คือ
HostGroup-Add.sh
listgroupname

เมื่อเรา Run File HostGroup-Add.sh ให้เราไปเช็คใน Zabbix ดูใน Host Group