client

package module
v0.0.0-...-8588147 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2024 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Overview

Package clinet : Web APIを利用したクライントライブラリです。

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AiListEntWebAPI

type AiListEntWebAPI struct {
	ID          string  // 内部ID
	NodeID      string  // ノードの内部ID
	NodeName    string  // ノード名
	PollingName string  // ポーリング名
	Score       float64 // スコア
	Count       int     // 件数
	LastTime    int64   // 最終分析日時
}

AiListEntWebAPIは、AI分析リストのデータ構造です。

type ArpFilter

type ArpFilter struct {
	StartDate string // 検索の開始日 例:2006-01-02
	StartTime string // 検索の開始時刻 例: 15:04
	EndDate   string // 検索の終了日 例:2006-01-02
	EndTime   string // 検索の終了時刻 例: 15:04
	IP        string // IPアドレス
	MAC       string // MACアドレス
}

ArpFilterは、ARPログの検索条件を指定します。

type ArpWebAPI

type ArpWebAPI struct {
	Time      int64  // 検知日時
	State     string // 状態
	IP        string // IPアドレス
	MAC       string // MACアドレス
	Vendor    string // ベンダー
	OldMAC    string // 前のMACアドレス
	OldVendor string // 前のベンダー
}

ArpWebAPIは、ARPログです。

type DeviceEnt

type DeviceEnt struct {
	ID         string // MAC Addr
	Name       string
	IP         string
	NodeID     string
	Vendor     string
	Score      float64
	ValidScore bool
	Penalty    int64
	FirstTime  int64
	LastTime   int64
	UpdateTime int64
}

type EventLogEnt

type EventLogEnt struct {
	Time     int64 // UnixNano()
	Type     string
	Level    string
	NodeName string
	NodeID   string
	Event    string
}

type EventLogFilter

type EventLogFilter struct {
	Level     string // ログのレベル
	StartDate string // 検索の開始日 例:2006-01-02
	StartTime string // 検索の開始時刻 例: 15:04
	EndDate   string // 検索の終了日 例:2006-01-02
	EndTime   string // 検索の終了時刻 例: 15:04
	Type      string // ログのタイプ
	NodeID    string // ログの対象ノードのID
	Event     string // イベントに含まれる文字列(正規表現)
}

EventLogFilterは、イベントログの検索条件です。

type EventLogsWebAPI

type EventLogsWebAPI struct {
	EventLogs []*EventLogEnt    // イベントログの検索結果
	NodeList  []selectEntWebAPI // ノード名選択肢
}

EventLogsWebAPIは、イベントログの検索結果です。

type FlowEnt

type FlowEnt struct {
	ID           string // ID Client:Server
	Client       string
	Server       string
	Services     map[string]int64
	Count        int64
	Bytes        int64
	ClientName   string
	ClientNodeID string
	ClientLoc    string
	ServerName   string
	ServerNodeID string
	ServerLoc    string
	Score        float64
	ValidScore   bool
	Penalty      int64
	FirstTime    int64
	LastTime     int64
	UpdateTime   int64
}

type IPReportEnt

type IPReportEnt struct {
	IP         string
	MAC        string
	Name       string
	NodeID     string
	Loc        string
	Vendor     string
	Count      int64
	Change     int64
	Score      float64
	ValidScore bool
	Penalty    int64
	FirstTime  int64
	LastTime   int64
	UpdateTime int64
}

type LogEnt

type LogEnt struct {
	Time int64 // UnixNano()
	Type string
	Log  string
}

type LogFilterEnt

type LogFilterEnt struct {
	StartTime string
	EndTime   string
	Filter    string
	LogType   string
}

type MonitorDataEnt

type MonitorDataEnt struct {
	CPU   float64
	Mem   float64
	Disk  float64
	Load  float64
	Bytes float64
	Net   float64
	Proc  int
	Conn  int
	At    int64
}

type NetflowFilter

type NetflowFilter struct {
	StartDate string // 検索の開始日 例:2006-01-02
	StartTime string // 検索の開始時刻 例: 15:04
	EndDate   string // 検索の終了日 例:2006-01-02
	EndTime   string // 検索の終了時刻 例: 15:04	StartDate string
	SrcDst    bool   // 双方向検索
	IP        string // 双方向検索の場合のIPアドレス
	Port      string // 双方向検索の場合のポート番号
	SrcIP     string // 送信元IP
	SrcPort   string // 送信元ポート
	DstIP     string // 宛先IP
	DstPort   string // 宛先ポート
	Protocol  string // プロトコル
	TCPFlag   string // TCPフラグ
	NextTime  int64  // 継続検索の場合の時刻(nano Sec)
	Filter    int    // 累計の検索数
}

NetflowFilterは、NetFlow/IPFIXの検索条件です。

type NetflowWebAPI

type NetflowWebAPI struct {
	Logs     []*NetflowWebAPILogEnt // ログの検索結果
	NextTime int64                  // 継続検索の次回の時刻(nano Sec)
	Process  int                    // 総ログ件数
	Filter   int                    // フィルターした件数
	Limit    int                    // 上限
}

NetflowWebAPIは、NetFlow/IPFIXログの検索結果です。

type NetflowWebAPILogEnt

type NetflowWebAPILogEnt struct {
	Time     int64   // ログの受信日時
	Src      string  // 送信元ホスト名
	SrcIP    string  // 送信元IP
	SrcMAC   string  // 送信元MACアドレス
	SrcPort  int     // 送信元ポート番号
	DstIP    string  // 宛先IP
	DstMAC   string  // 宛先MACアドレス
	DstPort  int     // 宛先ポート番号
	Dst      string  // 宛先ホスト名
	Protocol string  // プロコトル
	TCPFlags string  // TCPフラグ
	Packets  int64   // パケット数
	Bytes    int64   // バイト数
	Duration float64 // 通信期間
}

NetflowWebAPILogEntは、NetFlow/IPFIXログのデータ構造です。

type NodeEnt

type NodeEnt struct {
	ID        string
	Name      string
	Descr     string
	Icon      string
	Image     string
	State     string
	X         int
	Y         int
	IP        string
	IPv6      string
	MAC       string
	SnmpMode  string
	Community string
	User      string
	Password  string
	PublicKey string
	URL       string
	AddrMode  string
	AutoAck   bool
}

type PollingEnt

type PollingEnt struct {
	ID           string
	Name         string
	NodeID       string
	Type         string
	Mode         string
	Params       string
	Filter       string
	Extractor    string
	Script       string
	Level        string
	PollInt      int
	Timeout      int
	Retry        int
	LogMode      int
	NextTime     int64
	LastTime     int64
	Result       map[string]interface{}
	State        string
	FailAction   string
	RepairAction string
}

type PollingLogEnt

type PollingLogEnt struct {
	Time      int64 // UnixNano()
	PollingID string
	State     string
	Result    map[string]interface{}
}

type PollingsWebAPI

type PollingsWebAPI struct {
	Pollings []*PollingEnt
	NodeList []selectEntWebAPI
}

PollingsWebAPIは、ポーリングの応答データの構造です。

type SFlowCounterEnt

type SFlowCounterEnt struct {
	Remote string
	Type   string
	Data   string
}

type SFlowCounterFilter

type SFlowCounterFilter struct {
	Remote    string // 送信元
	Type      string // 種別
	StartDate string // 検索の開始日 例:2006-01-02
	StartTime string // 検索の開始時刻 例: 15:04
	EndDate   string // 検索の終了日 例:2006-01-02
	EndTime   string // 検索の終了時刻 例: 15:04
	NextTime  int64  // 継続検索の開始時刻(nano Sec)
	Filter    int    // 累計検索件数
}

SFlowCounterFilterは、SFlow Counterログの検索条件です。

type SFlowCounterWebAPI

type SFlowCounterWebAPI struct {
	Logs     []*SFlowCounterWebAPILogEnt // 検索結果のログ
	NextTime int64                       // 継続検索の次回時刻
	Process  int                         // 総ログ数
	Filter   int                         // フィルターした件数
	Limit    int                         // 上限
}

SFlowCounterWebAPIは、SFlow Counterログの検索結果です。

type SFlowCounterWebAPILogEnt

type SFlowCounterWebAPILogEnt struct {
	Time            int64 // 受信時刻
	SFlowCounterEnt       // カウンターサンプルのデータ
}

SFlowCounterWebAPILogEntは、SFlowCounterログです。

type SFlowFilter

type SFlowFilter struct {
	StartDate string // 検索の開始日 例:2006-01-02
	StartTime string // 検索の開始時刻 例: 15:04
	EndDate   string // 検索の終了日 例:2006-01-02
	EndTime   string // 検索の終了時刻 例: 15:04	StartDate string
	SrcDst    bool   // 双方向検索
	IP        string // 双方向検索のIP
	Port      string // 双方向検索のポート
	SrcIP     string // 送信元IP
	SrcPort   string // 送信元ポート番号
	DstIP     string // 宛先IP
	DstPort   string // 宛先ポート
	Protocol  string // プロトコル
	TCPFlag   string // TCPフラグ
	Reason    string // 切断理由
	NextTime  int64  // 継続検索の開始時刻(nano Sec)
	Filter    int    // 累計検索件数
}

SFlowFilterはSFlowログ検索条件です。

type SFlowWebAPI

type SFlowWebAPI struct {
	Logs     []*SFlowWebAPILogEnt // 検索結果のログ
	NextTime int64                // 継続検索の次回時刻(nano Sec)
	Process  int                  // 総ログ数
	Filter   int                  // フィルターした件数
	Limit    int                  // 上限
}

SFlowWebAPIは、SFlowログの検索結果です。

type SFlowWebAPILogEnt

type SFlowWebAPILogEnt struct {
	Time     int64  // ログ受信日時
	Src      string // 送信元ホスト
	SrcIP    string // 送信元IP
	SrcMAC   string // 送信元MACアドレス
	SrcPort  int    // 送信元ポート番号
	DstIP    string // 宛先IP
	DstMAC   string // 宛先MACアドレス
	DstPort  int    // 宛先ポート番号
	Dst      string // 宛先ホスト名
	Protocol string // プロトコル
	TCPFlags string // TCPフラグ
	Bytes    int64  // バイト数
	Reason   int    // 切断理由
}

SFlowWebAPILogEntは、SFlowログです。

type SensorEnt

type SensorEnt struct {
	ID        string // Host + Type + Param
	Host      string
	Type      string // twpcap,twwinlog....
	Param     string
	Total     int64
	Send      int64
	State     string
	Ignore    bool
	Stats     []SensorStatsEnt
	Monitors  []SensorMonitorEnt
	FirstTime int64
	LastTime  int64
}

type SensorMonitorEnt

type SensorMonitorEnt struct {
	Time    int64
	CPU     float64
	Mem     float64
	Load    float64
	Process int64
	Recv    int64
	Sent    int64
	TxSpeed float64
	RxSpeed float64
}

type SensorStatsEnt

type SensorStatsEnt struct {
	Time     int64
	Total    int64
	Count    int64
	PS       float64
	Send     int64
	LastSend int64
}

type ServerEnt

type ServerEnt struct {
	ID           string //  ID Server
	Server       string
	Services     map[string]int64
	Count        int64
	Bytes        int64
	ServerName   string
	ServerNodeID string
	Loc          string
	Score        float64
	ValidScore   bool
	Penalty      int64
	TLSInfo      string
	NTPInfo      string
	DHCPInfo     string
	FirstTime    int64
	LastTime     int64
	UpdateTime   int64
}

type SnmpTrapFilter

type SnmpTrapFilter struct {
	StartDate   string // 検索の開始日 例:2006-01-02
	StartTime   string // 検索の開始時刻 例: 15:04
	EndDate     string // 検索の終了日 例:2006-01-02
	EndTime     string // 検索の終了時刻 例: 15:04
	FromAddress string // TRAPの送信元アドレス
	TrapType    string // TRAPの種別
	Variables   string // TRAPに付帯したMIB
}

SnmpTrapFilterは、SNMP TRAPログの検索条件です。

type SnmpTrapWebAPI

type SnmpTrapWebAPI struct {
	Time        int64  // TRAPの受信日時
	FromAddress string // TRAPの送信元アドレス
	TrapType    string // TRAPの種別
	Variables   string // TRAPに付帯したMIB
}

SnmpTrapWebAPIは、SNMP TRAPログです。

type SyslogFilter

type SyslogFilter struct {
	StartDate string // 検索の開始日 例:2006-01-02
	StartTime string // 検索の開始時刻 例: 15:04
	EndDate   string // 検索の終了日 例:2006-01-02
	EndTime   string // 検索の終了時刻 例: 15:04
	Level     string // レベル
	Type      string // ログのタイプ
	Host      string // ログの送信元ホスト
	Tag       string // ログのタグ
	Message   string // ログのメッセージ
	Extractor string // 抽出パターン
	NextTime  int64  // 継続ログの開始時刻(nano Sec)
	Filter    int    // ログの累積件数
}

SyslogFilterは、syslogの検索条件です。

type SyslogWebAPI

type SyslogWebAPI struct {
	Logs          []*SyslogWebAPILogEnt // sysylogの検索結果
	ExtractHeader []string              // 抽出データのヘッダ
	ExtractDatas  [][]string            // 抽出データ
	NextTime      int64                 // 継続検索の開始時刻(nano Sec)
	Process       int                   // ログの総数
	Filter        int                   // フィルター後の件数
	Limit         int                   // 検索上限
}

SyslogWebAPIは、syslogの検索結果です。

type SyslogWebAPILogEnt

type SyslogWebAPILogEnt struct {
	Time     int64  // タイムスタンプ(nano Sec)
	Level    string // レベル
	Host     string // 送信元ホスト
	Type     string // ログの種別
	Tag      string // タグ
	Message  string // メッセージ
	Severity int    // Severity
	Facility int    // Facility
}

SyslogWebAPILogEntは、syslogのデータ構造です。

type TWSNMPApi

type TWSNMPApi struct {
	URL                string // TWSNMP FCのURL
	Token              string // JWTアクセストークン
	InsecureSkipVerify bool   // HTTPSで通信する時にサーバー証明書の検証を行わない
	Timeout            int    // タイムアウト
}

TWSNMPApiは、TWSNMP FCと通信するためのデータ構造です。

func NewClient

func NewClient(url string) *TWSNMPApi

NewClientは新しいクライアントを作成します。

func (*TWSNMPApi) Delete

func (a *TWSNMPApi) Delete(path string) error

DeleteはTWSNMP FCにDELETEリクエストを送信します。

func (*TWSNMPApi) DeleteLog

func (a *TWSNMPApi) DeleteLog(id string) error

DeleteLogは、idで指定されたログを全て削除します。

func (*TWSNMPApi) DeleteNodes

func (a *TWSNMPApi) DeleteNodes(ids []string) error

DeleteNodesは、ノードを削除します。

Example
c := NewClient("http://127.0.0.1:8080")
err := c.Login("twsnmp", "twsnmp")
if err != nil {
	log.Fatal(err)
}
err = c.DeleteNodes([]string{"node id"})
if err != nil {
	log.Fatal(err)
}
Output:

func (*TWSNMPApi) DeletePollings

func (a *TWSNMPApi) DeletePollings(ids []string) error

DeletePollingsは、ポーリングを削除します。

func (*TWSNMPApi) DeleteReport

func (a *TWSNMPApi) DeleteReport(t, id string) error

DeleteReportは,指定された種別とIDのレポートを削除します。

func (*TWSNMPApi) Get

func (a *TWSNMPApi) Get(path string) ([]byte, error)

GetはTWSNMP FCにGETリクエストを送信します。

func (*TWSNMPApi) GetAIList

func (a *TWSNMPApi) GetAIList() ([]*AiListEntWebAPI, error)

GetAIListはTWSNMP FCからAI分析リストを取得します。

func (*TWSNMPApi) GetArpLogs

func (a *TWSNMPApi) GetArpLogs(filter *ArpFilter) ([]*ArpWebAPI, error)

GetArpLogsはTWSNMP FCからARPログを取得します。

func (*TWSNMPApi) GetDevices

func (a *TWSNMPApi) GetDevices() ([]*DeviceEnt, error)

GetDevicesはTWSNMP FCからLANデバイスレポートを取得します。

func (*TWSNMPApi) GetEventLogs

func (a *TWSNMPApi) GetEventLogs(filter *EventLogFilter) (*EventLogsWebAPI, error)

GetEventLogsはTWSNMP FCからイベントログを取得します。

func (*TWSNMPApi) GetFlows

func (a *TWSNMPApi) GetFlows() ([]*FlowEnt, error)

GetFlowsはTWSNMP FCからフローレポートを取得します。

func (*TWSNMPApi) GetIPFIX

func (a *TWSNMPApi) GetIPFIX(filter *NetflowFilter) (*NetflowWebAPI, error)

GetIPFIXはTWSNMP FCからIPFIXログを取得します。

func (*TWSNMPApi) GetIPs

func (a *TWSNMPApi) GetIPs() ([]*IPReportEnt, error)

GetIPsはTWSNMP FCからIPレポートを取得します。

func (*TWSNMPApi) GetMonitor

func (a *TWSNMPApi) GetMonitor() ([]*MonitorDataEnt, error)

GetMonitorはTWSNMP FCからモニターレポートを取得します。

func (*TWSNMPApi) GetNetFlow

func (a *TWSNMPApi) GetNetFlow(filter *NetflowFilter) (*NetflowWebAPI, error)

GetNetFlowはTWSNMP FCからNetFlowログを取得します。

func (*TWSNMPApi) GetNodes

func (a *TWSNMPApi) GetNodes() ([]*NodeEnt, error)

GetNodesはTWSNMP FCからノードリストを取得します。

Example
c := NewClient("http://127.0.0.1:8080")
err := c.Login("twsnmp", "twsnmp")
if err != nil {
	log.Fatal(err)
}
nodes, err := c.GetNodes()
if err != nil {
	log.Fatal(err)
}
for _, n := range nodes {
	fmt.Printf("%+v\n", n)
}
Output:

func (*TWSNMPApi) GetPollingLogs

func (a *TWSNMPApi) GetPollingLogs(id string, filter *TimeFilter) ([]*PollingLogEnt, error)

GetPollingLogsはTWSNMP FCからポーリングログを取得します。

Example
c := NewClient("http://127.0.0.1:8080")
err := c.Login("twsnmp", "twsnmp")
if err != nil {
	log.Fatal(err)
}
r, err := c.GetPollings()
if err != nil {
	log.Fatal(err)
}
for _, p := range r.Pollings {
	if p.LogMode > 0 {
		logs, err := c.GetPollingLogs(p.ID, &TimeFilter{})
		if err != nil {
			log.Fatal(err)
		}
		for _, l := range logs {
			fmt.Printf("%+v\n", l)
		}
	}
}
Output:

func (*TWSNMPApi) GetPollings

func (a *TWSNMPApi) GetPollings() (*PollingsWebAPI, error)

GetPollingsはTWSNMP FCからポーリングリストを取得します。

func (*TWSNMPApi) GetSFlow

func (a *TWSNMPApi) GetSFlow(filter *SFlowFilter) (*SFlowWebAPI, error)

GetSFlowはTWSNMP FCからSFlowログを取得します。

func (*TWSNMPApi) GetSFlowCounter

func (a *TWSNMPApi) GetSFlowCounter(filter *SFlowCounterFilter) (*SFlowCounterWebAPI, error)

GetSFlowCounterはTWSNMP FCからSFlow Counterログを取得します。

func (*TWSNMPApi) GetSensors

func (a *TWSNMPApi) GetSensors() ([]*SensorEnt, error)

GetSensorsはTWSNMP FCからセンサーレポートを取得します。

func (*TWSNMPApi) GetServers

func (a *TWSNMPApi) GetServers() ([]*ServerEnt, error)

GetServersはTWSNMP FCからサーバーレポートを取得します。

func (*TWSNMPApi) GetSnmpTraps

func (a *TWSNMPApi) GetSnmpTraps(filter *SnmpTrapFilter) ([]*SnmpTrapWebAPI, error)

GetSnmpTrapsはTWSNMP FCからSNMP Trapログを取得します。

func (*TWSNMPApi) GetSyslogs

func (a *TWSNMPApi) GetSyslogs(filter *SyslogFilter) (*SyslogWebAPI, error)

GetSyslogsはTWSNMP FCからsyslogを取得します。

func (*TWSNMPApi) GetUsers

func (a *TWSNMPApi) GetUsers() ([]*UserEnt, error)

GetUsersはTWSNMP FCからユーザーレポートを取得します。

func (*TWSNMPApi) Login

func (a *TWSNMPApi) Login(user, password string) error

LoginはTWSNMP FCにログインします。

Example
c := NewClient("http://127.0.0.1:8080")
err := c.Login("twsnmp", "twsnmp")
if err != nil {
	log.Fatal(err)
}
Output:

func (*TWSNMPApi) Post

func (a *TWSNMPApi) Post(path string, data []byte) ([]byte, error)

PostはTWSNMP FCにPOSTリクエストを送信します。

func (*TWSNMPApi) ResetReport

func (a *TWSNMPApi) ResetReport(t string) error

ResetReportは,指定された種別とIDのレポートのスコアを再計算します。

func (*TWSNMPApi) UpdateNode

func (a *TWSNMPApi) UpdateNode(node *NodeEnt) error

UpdateNodeは、ノードを追加または削除します。

Example
c := NewClient("http://127.0.0.1:8080")
err := c.Login("twsnmp", "twsnmp")
if err != nil {
	log.Fatal(err)
}
err = c.UpdateNode(&NodeEnt{
	Name: "test",
	X:    100,
	Y:    100,
})
if err != nil {
	log.Fatal(err)
}
Output:

func (*TWSNMPApi) UpdatePolling

func (a *TWSNMPApi) UpdatePolling(polling *PollingEnt) error

UpdatePollingは、ポーリングの追加または更新します。

type TimeFilter

type TimeFilter struct {
	StartDate string // 検索の開始日 例:2006-01-02
	StartTime string // 検索の開始時刻 例: 15:04
	EndDate   string // 検索の終了日 例:2006-01-02
	EndTime   string // 検索の終了時刻 例: 15:04
}

TimeFilterは、ポーリングログの時間範囲の条件を指定します。

type UserClientEnt

type UserClientEnt struct {
	Total int32
	Ok    int32
}

type UserEnt

type UserEnt struct {
	ID           string // User ID + Server
	UserID       string
	Server       string
	ServerName   string
	ServerNodeID string
	ClientMap    map[string]UserClientEnt
	Total        int
	Ok           int
	Score        float64
	ValidScore   bool
	Penalty      int64
	FirstTime    int64
	LastTime     int64
	UpdateTime   int64
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL