• go操作zabbix api


    • api获取host

    package main
    
    import (
    	"fmt"
    
    	"github.com/navysummer/gozabbix"
    )
    
    func GetHost(api *gozabbix.API, host string) (gozabbix.JsonRPCResponse, error) {
    	params := make(map[string]interface{}, 0)
    	filter := make(map[string]string, 0)
    	filter["host"] = host
    	params["filter"] = filter
    	params["output"] = "extend"
    	method := "host.get"
    	fmt.Println(params)
    	response, err := api.ZabbixRequest(method, params)
    	return response, err
    }
    
    func main() {
    	api, err := gozabbix.NewAPI("http://ip:port/zabbix/api_jsonrpc.php", "Admin", "zabbix")
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    	_, err = api.Login()
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    	host := "Zabbix server"
    	ghost, err := GetHost(api, host)
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    	fmt.Println(ghost.Result)
    }
    

      

    • go sender zabbix

    package main
    
    import (
        "time"
        "github.com/navysummer/gozabbix"
    )
    
    const (
        defaultHost  = `localhost`
        defaultPort  = 10051
    )
    
    func main() {
        var metrics []*gozabbix.Metric
        metrics = append(metrics, gozabbix.NewMetric("localhost", "cpu", "1.22", time.Now().Unix()))
        metrics = append(metrics, gozabbix.NewMetric("localhost", "status", "OK"))
    
        // Create instance of Packet class
        packet := gozabbix.NewPacket(metrics)
    
        // Send packet to zabbix
        z := gozabbix.NewSender(defaultHost, defaultPort)
        z.Send(packet)
    }
    

      

  • 相关阅读:
    创建分区表(按照年份分区,自动新增分区)
    flash rock me
    苹果有虫才好吃
    Evolutility改造支持oracle
    Nhibernate问题三则
    Html5+razor+jqmobile尝鲜
    配置Instantclient
    T4,Redmine,Nhibernate etc
    monotouch开发ios应用手记
    大文件及文件夹上传(续)
  • 原文地址:https://www.cnblogs.com/navysummer/p/13746193.html
Copyright © 2020-2023  润新知