INT 21h

Hi, I am Vladimir Smagin, SysAdmin, DevOps and barely good guy. Telegram Email / GIT / Микроблог / GPG

Zabbix: удаление хоста из консоли

№ 9051 В разделе "Администрирование" от July 7th, 2018,

Требует установки пакета jq

Скрипт для вызова из консоли с передачей параметров

#!/bin/bash

HOST_NAME="$3"

USER="$1"
PASS="$2"
ZABBIX_SERVER='monitor.server.com'
API="http://$ZABBIX_SERVER/zabbix/api_jsonrpc.php"

authenticate() {
    echo `curl -s -H  'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"user.login\",\"params\":{\"user\":\""${USER}"\",\"password\":\""${PASS}"\"},\"auth\": null,\"id\":0}" $API`
}

AUTH_TOKEN=`echo $(authenticate)|jq -r .result`

gethostid() {
    echo `curl -s -H 'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"host.get\",\"params\":{\"output\":\"extend\",\"filter\":{\"host\":[\""$HOST_NAME"\"]}},\"auth\":\""${AUTH_TOKEN}"\",\"id\":0}" $API`
}

HOST_ID=`echo $(gethostid)|jq -r .result[0].hostid`

remove_host() {
    echo `curl -s -H 'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"host.delete\",\"params\":[\""${HOST_ID}"\"],\"auth\":\""${AUTH_TOKEN}"\",\"id\":0}" $API`
}
RESPONSE=$(remove_host)
echo ${RESPONSE}

Скрипт для запуска на виртуальной машине перед тем, как она будет выключена. Пригодна для использования на autoscale фермах Amazon.

#!/bin/bash
# Remove-Zabbix Init script should run when an AWS instance goes down and remove itself from Zabbix Server
# chkconfig: - 84 02
# description: Remove from zabbix
# Source function library.
. /etc/init.d/functions

start() {
/bin/touch /var/lock/subsys/Remove-Zabbix
}

stop() {
        /etc/init.d/zabbix-agent stop
        /bin/rm -f /var/lock/subsys/Remove-Zabbix
        HOST_NAME=`echo $(hostname)`

        USER='username' 
        PASS='password' 
        ZABBIX_SERVER='monitor.server.com'
        API="http://$ZABBIX_SERVER/zabbix/api_jsonrpc.php"

        # Authenticate with Zabbix API

        authenticate() {
                echo `curl -s -H  'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"user.login\",\"params\":{\"user\":\""${USER}"\",\"password\":\""${PASS}"\"},\"auth\": null,\"id\":0}" $API`
        }

        AUTH_TOKEN=`echo $(authenticate)|jq -r .result`

        # Get This Host HostId:

        gethostid() {
               echo `curl -s -H 'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"host.get\",\"params\":{\"output\":\"extend\",\"filter\":{\"host\":[\""$HOST_NAME"\"]}},\"auth\":\""${AUTH_TOKEN}"\",\"id\":0}" $API`
        }

        HOST_ID=`echo $(gethostid)|jq -r .result[0].hostid`

        # Remove Host

        remove_host() {
                echo `curl -s -H 'Content-Type: application/json-rpc' -d "{\"jsonrpc\": \"2.0\",\"method\":\"host.delete\",\"params\":[\""${HOST_ID}"\"],\"auth\":\""${AUTH_TOKEN}"\",\"id\":0}" $API`
        }
        RESPONSE=$(remove_host)
        echo ${RESPONSE}
}

case $1 in

        start)
          start
        ;;

        stop)  
          stop
        ;;

        restart)
          stop
          start
        ;;

esac    
exit 0

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Микроблог перейти

# 2019-02-14 13:07:54

есть у нас один деплойный плейбук сразу кучи проектов на кучу наших серверов и клиентов. хз что за демоны в голове сношались у человека, который его придумал.

# 2019-02-14 08:46:15

logstash не получится балансировать в кубере, filebeat держит соединение с логсташем постоянно, не разрывая соединение из-за чего будет работать только 1 под из всех поднятых.

# 2019-02-07 21:30:46

Эмуляторы RetroArch retroarch.com/index.php?page=l и Lakka www.lakka.tv/


© Vladimir Smagin, 2005-2019. Копирование материалов без разрешения запрещено. GPG DA4CD0F5E222EA727D6A40C413BCE12E5618F071
Яндекс.Метрика

Fortune cookie: It's a damn poor mind that can only think of one way to spell a word. -- Andrew Jackson