Add Host Group จำนวนเยอะๆด้วย Shell Script
Add Host Group อย่างไร ให้เร็ว และง่าย
การ Add Host Group จำนวนเยอะๆ หากเราทำแบบ Manual อาจจะใช้เวลาค่อนข้างมาก
จึงอยากเสนอวิธีการในการ Add Host Group โดยใช้ Shell Script รันครั้งเดียว จบ ครบถ้วน
สิ่งที่เราต้องมี คือ
- List ของ Host Group ที่เราจะ Add
โดยจะใส่ไว้ใน file ชื่อ listgroupname เพื่อให้ Script ไปเรียกหาได้ - 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