Áú»¢¶Ä²©

§³§à§Ù§Õ§Ñ§ß§Ú§Ö §á§Ý§Ñ§Ô§Ú§ß§Ñ (§â§å§Ü§à§Ó§à§Õ§ã§ä§Ó§à)

§¿§ä§à §á§à§ê§Ñ§Ô§à§Ó§à§Ö §â§å§Ü§à§Ó§à§Õ§ã§ä§Ó§à §á§à §ã§à§Ù§Õ§Ñ§ß§Ú§ð §á§â§à§ã§ä§à§Ô§à §Ù§Ñ§Ô§â§å§Ø§Ñ§Ö§Þ§à§Ô§à §á§Ý§Ñ§Ô§Ú§ß§Ñ §Õ§Ý§ñ Áú»¢¶Ä²© §Ñ§Ô§Ö§ß§ä§Ñ 2.

§¹§ä§à §Ó§í §ã§à§Ù§Õ§Ñ§Õ§Ú§ä§Ö

§£ §ç§à§Õ§Ö §ï§ä§à§Ô§à §â§å§Ü§à§Ó§à§Õ§ã§ä§Ó§Ñ §Ó§í §Õ§à§Ò§Ñ§Ó§Ú§ä§Ö §ß§à§Ó§í§Û §Ù§Ñ§Ô§â§å§Ø§Ñ§Ö§Þ§í§Û §á§Ý§Ñ§Ô§Ú§ß MyIP. §±§Ý§Ñ§Ô§Ú§ß §Ò§å§Õ§Ö§ä §â§Ö§Ñ§Ý§Ú§Ù§à§Ó§í§Ó§Ñ§ä§î 1 §Þ§Ö§ä§â§Ú§Ü§å §á§à§Õ §ß§Ñ§Ù§Ó§Ñ§ß§Ú§Ö§Þ myip, §Ü§à§ä§à§â§Ñ§ñ §Ó§à§Ù§Ó§â§Ñ§ë§Ñ§Ö§ä §Ó§ß§Ö§ê§ß§Ú§Û IP-§Ñ§Õ§â§Ö§ã §ç§à§ã§ä§Ñ, §ß§Ñ §Ü§à§ä§à§â§à§Þ §â§Ñ§Ò§à§ä§Ñ§Ö§ä Áú»¢¶Ä²© §Ñ§Ô§Ö§ß§ä 2.

§¹§Ñ§ã§ä§î 1: §¯§Ñ§á§Ú§ã§Ñ§ß§Ú§Ö §Ü§à§Õ§Ñ §ß§Ñ Go

§£ §ï§ä§à§Þ §â§Ñ§Ù§Õ§Ö§Ý§Ö §Ó§í §å§Ù§ß§Ñ§Ö§ä§Ö, §Ü§Ñ§Ü §ß§Ñ§á§Ú§ã§Ñ§ä§î §á§Ý§Ñ§Ô§Ú§ß, §Ü§à§ä§à§â§í§Û §Õ§à§Ò§Ñ§Ó§Ý§ñ§Ö§ä §ß§à§Ó§å§ð §Þ§Ö§ä§â§Ú§Ü§å §Ó Áú»¢¶Ä²© agent 2.

  1. §³§à§Ù§Õ§Ñ§Û§ä§Ö §ß§à§Ó§å§ð §Õ§Ú§â§Ö§Ü§ä§à§â§Ú§ð myip §Ó /usr/local/zabbix/go/plugins/.

  2. §³§à§Ù§Õ§Ñ§Û§ä§Ö §æ§Ñ§Û§Ý main.go §Ó §Õ§Ú§â§Ö§Ü§ä§à§â§Ú§Ú myip §Ú §à§á§â§Ö§Õ§Ö§Ý§Ú§ä§Ö §Ú§Þ§ñ §Ó§Ñ§ê§Ö§Ô§à Go-§á§Ñ§Ü§Ö§ä§Ñ.

/usr/local/zabbix/go/plugins/myip/main.go

package main

§°§ã§ä§Ñ§Ó§î§ä§Ö §æ§Ñ§Û§Ý §à§ä§Ü§â§í§ä§í§Þ, §é§ä§à§Ò§í §Õ§à§Ò§Ñ§Ó§Ú§ä§î §Ò§à§Ý§î§ê§Ö §ã§ä§â§à§Ü, §Ü§Ñ§Ü §à§á§Ú§ã§Ñ§ß§à §Ó §ã§Ý§Ö§Õ§å§ð§ë§Ú§ç §ê§Ñ§Ô§Ñ§ç.

  1. §µ§Ü§Ñ§Ø§Ú§ä§Ö §á§Ñ§Ü§Ö§ä§í §Õ§Ý§ñ §Ú§Þ§á§à§â§ä§Ñ. §¿§ä§Ú §á§Ñ§Ü§Ö§ä§í §á§à§Õ§Õ§Ö§â§Ø§Ú§Ó§Ñ§ð§ä §â§Ñ§Ò§à§ä§å §á§Ý§Ñ§Ô§Ú§ß§Ñ.

/usr/local/zabbix/go/plugins/myip/main.go

package main
       
       import (
           "fmt"
           "io/ioutil"
           "net/http"
           "git.zabbix.com/ap/plugin-support/plugin/container"
           "git.zabbix.com/ap/plugin-support/plugin"
       )
  1. §°§á§â§Ö§Õ§Ö§Ý§Ú§ä§Ö §ã§ä§â§å§Ü§ä§å§â§å §á§Ý§Ñ§Ô§Ú§ß§Ñ. §£§ã§ä§â§à§Ö§ß§ß§Ñ§ñ §ã§ä§â§å§Ü§ä§å§â§Ñ plugin.Base §á§à§Ù§Ó§à§Ý§ñ§Ö§ä §á§à§Ý§å§é§Ú§ä§î §Õ§à§ã§ä§å§á §Ü §ã§ä§Ñ§ß§Õ§Ñ§â§ä§ß§à§Û §æ§å§ß§Ü§è§Ú§à§ß§Ñ§Ý§î§ß§à§ã§ä§Ú §á§Ý§Ñ§Ô§Ú§ß§Ñ.

/usr/local/zabbix/go/plugins/myip/main.go

package main
       
       import (
           "fmt"
           "io/ioutil"
           "net/http"
           "git.zabbix.com/ap/plugin-support/plugin/container"
           "git.zabbix.com/ap/plugin-support/plugin"
       )
       
       type Plugin struct {
           plugin.Base
       }
              
       var impl Plugin
  1. §²§Ö§Ñ§Ý§Ú§Ù§å§Û§ä§Ö §Ú§ß§ä§Ö§â§æ§Ö§Û§ã §á§Ý§Ñ§Ô§Ú§ß§Ñ Export. §ª§ß§ä§Ö§â§æ§Ö§Û§ã Export §Ó§í§á§à§Ý§ß§ñ§Ö§ä §à§á§â§à§ã §Ú §Ó§à§Ù§Ó§â§Ñ§ë§Ñ§Ö§ä §Ù§ß§Ñ§é§Ö§ß§Ú§Ö.

/usr/local/zabbix/go/plugins/myip/main.go

package main
       
       import (
           "fmt"
           "io/ioutil"
           "net/http"
           "git.zabbix.com/ap/plugin-support/plugin/container"
           "git.zabbix.com/ap/plugin-support/plugin"
       )
       
       type Plugin struct {
           plugin.Base
       }
              
       var impl Plugin
       
       func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error)
  1. §¥§à§Ò§Ñ§Ó§î§ä§Ö §Ý§à§Ô§Ú§â§à§Ó§Ñ§ß§Ú§Ö. §³§à§à§Ò§ë§Ö§ß§Ú§ñ §Ø§å§â§ß§Ñ§Ý§Ñ §Ò§å§Õ§å§ä §à§ä§à§Ò§â§Ñ§Ø§Ñ§ä§î§ã§ñ §Ó §Ý§à§Ô§Ñ§ç Áú»¢¶Ä²© agent 2. §£§í §Þ§à§Ø§Ö§ä§Ö §Ú§ã§á§à§Ý§î§Ù§à§Ó§Ñ§ä§î §à§Õ§ß§å §Ú§Ù §Õ§à§ã§ä§å§á§ß§í§ç §æ§å§ß§Ü§è§Ú§Û §Ý§à§Ô§Ú§â§à§Ó§Ñ§ß§Ú§ñ §Õ§Ý§ñ §á§Ý§Ñ§Ô§Ú§ß§à§Ó: Critf(), Errf(), Infof(), Warningf(), Debugf(), Tracef().

/usr/local/zabbix/go/plugins/myip/main.go

package main
       
       import (
           "fmt"
           "io/ioutil"
           "net/http"
           "git.zabbix.com/ap/plugin-support/plugin/container"
           "git.zabbix.com/ap/plugin-support/plugin"
       )
       
       type Plugin struct {
           plugin.Base
       }
              
       var impl Plugin
       
       func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error){
           p.Infof("received request to handle %s key with %d parameters", key, len(params))
       }
  1. §²§Ö§Ñ§Ý§Ú§Ù§å§Û§ä§Ö §à§ã§ß§à§Ó§ß§å§ð §Ý§à§Ô§Ú§Ü§å §á§Ý§Ñ§Ô§Ú§ß§Ñ. §¿§ä§Ñ §Ý§à§Ô§Ú§Ü§Ñ §á§à§Ý§å§é§Ñ§Ö§ä §à§ä§Ó§Ö§ä §à§ä §å§Ü§Ñ§Ù§Ñ§ß§ß§à§Ô§à URL, §é§Ú§ä§Ñ§Ö§ä §Ö§Ô§à, §Ù§Ñ§ä§Ö§Þ §Ó§à§Ù§Ó§â§Ñ§ë§Ñ§Ö§ä IP-§Ñ§Õ§â§Ö§ã §Ó §Ü§Ñ§é§Ö§ã§ä§Ó§Ö §à§ä§Ó§Ö§ä§Ñ §Ú §Ù§Ñ§Ü§â§í§Ó§Ñ§Ö§ä §Ù§Ñ§á§â§à§ã. §£ §ã§Ý§å§é§Ñ§Ö §à§ê§Ú§Ò§Ü§Ú §á§â§Ú §Ó§í§á§à§Ý§ß§Ö§ß§Ú§Ú GET-§Ù§Ñ§á§â§à§ã§Ñ §Ú§Ý§Ú §é§ä§Ö§ß§Ú§Ú §à§ä§Ó§Ö§ä§Ñ §Ó§à§Ù§Ó§â§Ñ§ë§Ñ§Ö§ä§ã§ñ §à§ê§Ú§Ò§Ü§Ñ.

/usr/local/zabbix/go/plugins/myip/main.go

package main
       
       import (
           "fmt"
           "io/ioutil"
           "net/http"
           "git.zabbix.com/ap/plugin-support/plugin/container"
           "git.zabbix.com/ap/plugin-support/plugin"
       )
       
       type Plugin struct {
           plugin.Base
       }
              
       var impl Plugin
       
       func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error){
           p.Infof("received request to handle %s key with %d parameters", key, len(params))
           resp, err := http.Get("https://api.ipify.org")
           if err != nil {
               return nil, err
           }
              
           defer resp.Body.Close()
              
           body, err := ioutil.ReadAll(resp.Body)
           if err != nil {
               return nil, err
           }
              
           return string(body), nil    
       }
  1. §©§Ñ§â§Ö§Ô§Ú§ã§ä§â§Ú§â§å§Û§ä§Ö §Þ§Ö§ä§â§Ú§Ü§å. Áú»¢¶Ä²© agent 2 §Ù§Ñ§á§å§ã§Ü§Ñ§Ö§ä §Ó§í§á§à§Ý§ß§Ö§ß§Ú§Ö §æ§å§ß§Ü§è§Ú§Ú init() §á§â§Ú §ã§ä§Ñ§â§ä§Ö. §¿§ä§Ñ §æ§å§ß§Ü§è§Ú§ñ §Ó§í§Ù§à§Ó§Ö§ä §Þ§Ö§ä§à§Õ plugin.RegisterMetrics(structure, plugin name, metric name, description), §é§ä§à§Ò§í §á§à§Ý§å§é§Ú§ä§î §Õ§Ñ§ß§ß§í§Ö §á§Ý§Ñ§Ô§Ú§ß§Ñ.

§°§á§Ú§ã§Ñ§ß§Ú§Ö §á§Ñ§â§Ñ§Þ§Ö§ä§â§à§Ó §Þ§Ö§ä§à§Õ§Ñ plugin.RegisterMetrics:

  • structure - §å§Ü§Ñ§Ù§Ñ§ä§Ö§Ý§î §ß§Ñ §â§Ö§Ñ§Ý§Ú§Ù§Ñ§è§Ú§ð §á§Ý§Ñ§Ô§Ú§ß§Ñ; §á§â§Ö§Õ§à§ã§ä§Ñ§Ó§Ý§ñ§Ö§ä §Õ§à§ã§ä§å§á §Ü §ã§ä§â§å§Ü§ä§å§â§Ö §á§Ý§Ñ§Ô§Ú§ß§Ñ, §Ó§Ü§Ý§ð§é§Ñ§ñ §ã§á§Ú§ã§à§Ü §Õ§à§ã§ä§å§á§ß§í§ç §Ú§ß§ä§Ö§â§æ§Ö§Û§ã§à§Ó §á§Ý§Ñ§Ô§Ú§ß§Ñ (§ß§Ñ§á§â§Ú§Þ§Ö§â, &impl).
  • name - §Ú§Þ§ñ §á§Ý§Ñ§Ô§Ú§ß§Ñ; §Õ§à§Ý§Ø§ß§à §Ò§í§ä§î §å§ß§Ú§Ü§Ñ§Ý§î§ß§í§Þ (§ß§Ñ§á§â§Ú§Þ§Ö§â, "Myip").
  • metric name - §Ú§Þ§ñ §Þ§Ö§ä§â§Ú§Ü§Ú (§ß§Ñ§á§â§Ú§Þ§Ö§â, "myip"). §¿§ä§à §Ü§Ý§ð§é §ï§Ý§Ö§Þ§Ö§ß§ä§Ñ, §Ú§ã§á§à§Ý§î§Ù§å§Ö§Þ§í§Û §Õ§Ý§ñ §ã§Ò§à§â§Ñ §Õ§Ñ§ß§ß§í§ç §Ú§Ù §á§Ý§Ñ§Ô§Ú§ß§Ñ.
  • description - §à§á§Ú§ã§Ñ§ß§Ú§Ö §Þ§Ö§ä§â§Ú§Ü§Ú; §Õ§à§Ý§Ø§ß§à §ß§Ñ§é§Ú§ß§Ñ§ä§î§ã§ñ §ã §Ù§Ñ§Ô§Ý§Ñ§Ó§ß§à§Û §Ò§å§Ü§Ó§í §Ú §Ù§Ñ§Ü§Ñ§ß§é§Ú§Ó§Ñ§ä§î§ã§ñ §ä§à§é§Ü§à§Û (§ß§Ñ§á§â§Ú§Þ§Ö§â, "§£§à§Ù§Ó§â§Ñ§ë§Ñ§Ö§ä §Ó§ß§Ö§ê§ß§Ú§Û IP-§Ñ§Õ§â§Ö§ã §ç§à§ã§ä§Ñ, §ß§Ñ §Ü§à§ä§à§â§à§Þ §â§Ñ§Ò§à§ä§Ñ§Ö§ä §Ñ§Ô§Ö§ß§ä.").

§¥§Ý§ñ §â§Ö§Ô§Ú§ã§ä§â§Ñ§è§Ú§Ú §ß§Ö§ã§Ü§à§Ý§î§Ü§Ú§ç §Þ§Ö§ä§â§Ú§Ü §á§à§Ó§ä§à§â§Ú§ä§Ö §á§Ñ§â§Ñ§Þ§Ö§ä§â§í metric name §Ú description §Õ§Ý§ñ §Ü§Ñ§Ø§Õ§à§Û §Þ§Ö§ä§â§Ú§Ü§Ú. §¯§Ñ§á§â§Ú§Þ§Ö§â: plugin.RegisterMetrics(&impl, "Myip", "metric.one", "§°§á§Ú§ã§Ñ§ß§Ú§Ö §Þ§Ö§ä§â§Ú§Ü§Ú §à§Õ§Ú§ß.", "metric.two", "§°§á§Ú§ã§Ñ§ß§Ú§Ö §Þ§Ö§ä§â§Ú§Ü§Ú §Õ§Ó§Ñ.")

/usr/local/zabbix/go/plugins/myip/main.go

package main
       
       import (
           "fmt"
           "io/ioutil"
           "net/http"
           "git.zabbix.com/ap/plugin-support/plugin/container"
           "git.zabbix.com/ap/plugin-support/plugin"
       )
       
       type Plugin struct {
           plugin.Base
       }
              
       var impl Plugin
       
       func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error){
           p.Infof("received request to handle %s key with %d parameters", key, len(params))
           resp, err := http.Get("https://api.ipify.org")
           if err != nil {
               return nil, err
           }
              
           defer resp.Body.Close()
              
           body, err := ioutil.ReadAll(resp.Body)
           if err != nil {
               return nil, err
           }
              
           return string(body), nil    
       }
       
       func init() {
           plugin.RegisterMetrics(&impl, "Myip", "myip", "Return the external IP address of the host where agent is running.")
       }
  1. §°§á§â§Ö§Õ§Ö§Ý§Ú§ä§Ö §æ§å§ß§Ü§è§Ú§ð main(), §Ü§à§ä§à§â§Ñ§ñ §ã§à§Ù§Õ§Ñ§ã§ä §ß§à§Ó§í§Û §ï§Ü§Ù§Ö§Þ§á§Ý§ñ§â §à§Ò§â§Ñ§Ò§à§ä§é§Ú§Ü§Ñ §á§Ý§Ñ§Ô§Ú§ß§Ñ, §ß§Ñ§Ù§ß§Ñ§é§Ú§ä §Ö§Ô§à §Õ§Ý§ñ §Ú§ã§á§à§Ý§î§Ù§à§Ó§Ñ§ß§Ú§ñ §Ý§à§Ô§Ú§â§à§Ó§Ñ§ß§Ú§ñ §á§Ý§Ñ§Ô§Ú§ß§à§Þ, §Ñ §Ù§Ñ§ä§Ö§Þ §Ó§í§á§à§Ý§ß§Ú§ä §à§Ò§â§Ñ§Ò§à§ä§é§Ú§Ü §á§Ý§Ñ§Ô§Ú§ß§Ñ.

§°§á§â§Ö§Õ§Ö§Ý§Ö§ß§Ú§Ö §æ§å§ß§Ü§è§Ú§Ú main() §ñ§Ó§Ý§ñ§Ö§ä§ã§ñ §à§Ò§ñ§Ù§Ñ§ä§Ö§Ý§î§ß§í§Þ.

/usr/local/zabbix/go/plugins/myip/main.go

package main
       
       import (
           "fmt"
           "io/ioutil"
           "net/http"
           "git.zabbix.com/ap/plugin-support/plugin/container"
           "git.zabbix.com/ap/plugin-support/plugin"
       )
       
       type Plugin struct {
           plugin.Base
       }
              
       var impl Plugin
       
       func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error){
           p.Infof("received request to handle %s key with %d parameters", key, len(params))
           resp, err := http.Get("https://api.ipify.org")
           if err != nil {
               return nil, err
           }
              
           defer resp.Body.Close()
              
           body, err := ioutil.ReadAll(resp.Body)
           if err != nil {
               return nil, err
           }
              
           return string(body), nil    
       }
       
       func init() {
           plugin.RegisterMetrics(&impl, "Myip", "myip", "Return the external IP address of the host where agent is running.")
       }
       
       func main() {
           h, err := container.NewHandler(impl.Name())
           if err != nil {
               panic(fmt.Sprintf("failed to create plugin handler %s", err.Error()))
           }
           impl.Logger = &h
              
           err = h.Execute()
           if err != nil {
               panic(fmt.Sprintf("failed to execute plugin handler %s", err.Error()))
           }
       }

§¹§Ñ§ã§ä§î 2: §³§Ò§à§â§Ü§Ñ §á§Ý§Ñ§Ô§Ú§ß§Ñ

§£ §ï§ä§à§Þ §â§Ñ§Ù§Õ§Ö§Ý§Ö §Ó§í §å§Ù§ß§Ñ§Ö§ä§Ö, §Ü§Ñ§Ü §ã§Ü§à§Þ§á§Ú§Ý§Ú§â§à§Ó§Ñ§ä§î §á§Ý§Ñ§Ô§Ú§ß.

  1. §¹§ä§à§Ò§í §ã§à§Ù§Õ§Ñ§ä§î Go-§æ§Ñ§Û§Ý§í §Õ§Ý§ñ §à§Ò§â§Ñ§Ò§à§ä§Ü§Ú §Ù§Ñ§Ó§Ú§ã§Ú§Þ§à§ã§ä§Ö§Û §Ú §Ñ§Ó§ä§à§Þ§Ñ§ä§Ú§é§Ö§ã§Ü§Ú §Ù§Ñ§Ô§â§å§Ù§Ú§ä§î §Ù§Ñ§Ó§Ú§ã§Ú§Þ§à§ã§ä§Ú, §Ó§í§á§à§Ý§ß§Ú§ä§Ö §ï§ä§à§ä bash-§ã§Ü§â§Ú§á§ä §Ú§Ù §Ü§à§Þ§Ñ§ß§Õ§ß§à§Û §ã§ä§â§à§Ü§Ú.
go mod init myip
       GOPROXY=direct go get git.zabbix.com/ap/plugin-support/plugin@branchname
       go mod tidy
       go build

§µ§Ò§Ö§Õ§Ú§ä§Ö§ã§î, §é§ä§à §å§Ü§Ñ§Ù§Ñ§Ý§Ú §á§â§Ñ§Ó§Ú§Ý§î§ß§à§Ö §ß§Ñ§Ù§Ó§Ñ§ß§Ú§Ö §Ó§Ö§ä§Ü§Ú, §ä§à §Ö§ã§ä§î §Ù§Ñ§Þ§Ö§ß§Ú§ä§Ö branchname (§ã§Þ. §ã§ä§â§à§Ü§å 2) §ß§Ñ §à§Õ§ß§à §Ú§Ù §ã§Ý§Ö§Õ§å§ð§ë§Ú§ç:

  • release/* - §Õ§Ý§ñ §ã§ä§Ñ§Ò§Ú§Ý§î§ß§à§Û §â§Ö§Ý§Ú§Ù§ß§à§Û §Ó§Ö§ä§Ü§Ú, §Ô§Õ§Ö "*" ¡ª §ï§ä§à §Ó§Ö§â§ã§Ú§ñ §â§Ö§Ý§Ú§Ù§Ñ (§ß§Ñ§á§â§Ú§Þ§Ö§â, 6.4)
  • master - §Õ§Ý§ñ §Ó§Ö§ä§Ü§Ú master -<§ç§ï§ê §Ü§à§Þ§Þ§Ú§ä§Ñ> - §Õ§Ý§ñ §Ü§à§ß§Ü§â§Ö§ä§ß§à§Û §Ó§Ö§â§ã§Ú§Ú §Ü§à§Þ§Þ§Ú§ä§Ñ (§Ú§ã§á§à§Ý§î§Ù§å§Û§ä§Ö §à§á§â§Ö§Õ§Ö§Ý§Ö§ß§ß§í§Û §ç§ï§ê §Ü§à§Þ§Þ§Ú§ä§Ñ)

§£§í§Ó§à§Õ §Õ§à§Ý§Ø§Ö§ß §Ò§í§ä§î §á§â§Ú§Þ§Ö§â§ß§à §ä§Ñ§Ü§Ú§Þ:

go: creating new go.mod: module myip
       go: to add module requirements and sums:
           go mod tidy
       go: finding module for package git.zabbix.com/ap/plugin-support/plugin/container
       go: finding module for package git.zabbix.com/ap/plugin-support/plugin
       go: found git.zabbix.com/ap/plugin-support/plugin in git.zabbix.com/ap/plugin-support v0.0.0-20220608100211-35b8bffd7ad0
       go: found git.zabbix.com/ap/plugin-support/plugin/container in git.zabbix.com/ap/plugin-support v0.0.0-20220608100211-35b8bffd7ad0
  1. §³§à§Ù§Õ§Ñ§Û§ä§Ö §Ú§ã§á§à§Ý§ß§ñ§Ö§Þ§í§Û §æ§Ñ§Û§Ý myip §Õ§Ý§ñ §Ù§Ñ§Ô§â§å§Ø§Ñ§Ö§Þ§à§Ô§à §á§Ý§Ñ§Ô§Ú§ß§Ñ.

  2. §µ§Ü§Ñ§Ø§Ú§ä§Ö §á§å§ä§î §Ü §æ§Ñ§Û§Ý§å §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú §á§Ý§Ñ§Ô§Ú§ß§Ñ §Ó §á§Ñ§â§Ñ§Þ§Ö§ä§â§Ö Plugins.Myip.System.Path §æ§Ñ§Û§Ý§Ñ §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú Áú»¢¶Ä²© agent 2.

§¯§Ñ§Ù§Ó§Ñ§ß§Ú§Ö §á§Ý§Ñ§Ô§Ú§ß§Ñ §Ó §á§Ñ§â§Ñ§Þ§Ö§ä§â§Ö §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú (§Ó §ï§ä§à§Þ §â§å§Ü§à§Ó§à§Õ§ã§ä§Ó§Ö - Myip) §Õ§à§Ý§Ø§ß§à §ã§à§Ó§á§Ñ§Õ§Ñ§ä§î §ã §Ú§Þ§Ö§ß§Ö§Þ §á§Ý§Ñ§Ô§Ú§ß§Ñ, §à§á§â§Ö§Õ§Ö§Ý§Ö§ß§ß§í§Þ §Ó §æ§å§ß§Ü§è§Ú§Ú plugin.RegisterMetrics().

echo 'Plugins.Myip.System.Path=/usr/local/zabbix/go/plugins/myip/myip' > /etc/zabbix_agent2.d/plugins.d/myip.conf
  1. §±§â§à§Ó§Ö§â§î§ä§Ö §Þ§Ö§ä§â§Ú§Ü§å:
zabbix_agent2 -t myip

§°§ä§Ó§Ö§ä §Õ§à§Ý§Ø§Ö§ß §ã§à§Õ§Ö§â§Ø§Ñ§ä§î §Ó§ß§Ö§ê§ß§Ú§Û IP-§Ñ§Õ§â§Ö§ã §Ó§Ñ§ê§Ö§Ô§à §å§Ù§Ý§Ñ §ã§Ö§ä§Ú.

§£ §ã§Ý§å§é§Ñ§Ö §à§ê§Ú§Ò§Ü§Ú §á§â§à§Ó§Ö§â§î§ä§Ö, §Ö§ã§ä§î §Ý§Ú §å §á§à§Ý§î§Ù§à§Ó§Ñ§ä§Ö§Ý§ñ zabbix §á§â§Ñ§Ó§Ñ §ß§Ñ §Õ§à§ã§ä§å§á §Ü §Õ§Ú§â§Ö§Ü§ä§à§â§Ú§Ú /usr/local/zabbix/go/plugins/myip.