TWSNMP FC v1.36.0リリース
TWSNMP FCv1.36.0をリリースしました。19日朝の時点でMicrosoft Storeは承認されいました。
今回の対応内容は
ポーリング結果をゲージなどで表示する機能追加
描画アイテムのアイテムタイプを増やしました。
ポーリング結果(新ゲージ)
ポーリング結果(バー)
ポーリング結果(ライン)
です。
のように表示されます。ラインはポーリングのログを記録しないと表示されません。
SSHサーバー対応
Fluentbitと連携してログの転送を行うためにSSHサーバー機能を追加しました。ポート番号は2222固定です。
マップ設定で有効にできます。
アクセスを許可するホストの公開鍵を下の<許可するSSH公開鍵>ボタンから表示されるダイアログで登録してください。
接続して以下のコマンドに対応しています。
get <syslog|eventlog|arplog|netflow|ipfix|node|polling|ai> [開始時刻] [件数]
put syslog [facility] [severity] [host]
開始時刻はnano sec単位のUnixタイムです。
putの場合、以下のデータを送ってください。
日時\tTag\tメッセージ
の形式です。
$ssh -p 2222 twsnmp@twsnmp get syslog 0 100
$cat log.txt | ssh -p 2222 twsnmp@twsnmp put syslog
のような感じです。
syslog、SNMP TRAPログからポーリング作成
ログの右端にポーリングを登録するボタンを追加しました。
ボタンをクリックすると登録のためのダイアログが表示されます。
TRAPも同じように登録できます。
syslogから情報を抽出する機能の改善
GROKの登録を行わなくても自動で抽出する機能を追加しました。
SPLUNK風:key=valのような形式
自動数値:とりあえず数値ぽいものを順番に取得
JSON:JSONでパースできるものを取得
自動(IP,MAC,EMail):IPアドレス、MACアドレス、EMailぽいものを自動で取得
syslog,TRAPログのポーリングで送信元を指定する機能
フィルターに正規表現で送信元をIPを指定しなくても、パラメーター欄で指定できるようにしました。
正規表現でなくてもよいです。
syslogも同じです。
Fluentbitのプラグインを同梱
TWSNMP FCSSHサーバーに接続してログの送受信を行うFluentbitのプラグインを同梱しました。Mac OS,Windows,Linux(amd64,arm)に対応しています。
in_twsnmp
TWSNMP FCからログを取得するプラグインです。
パラメータは
twsnmp: 送信先 例: 192.168.1.250:2222
private_key:秘密鍵ファイルのパスを指定
host_key:接続先TWSNMPのSSH公開鍵のパスを指定、指定ない場合は初回接続から鍵が変わらなければ許可します。
log_type:取得するログのタイプです。(syslog,trap,eventlog,arplog)
です。
in_twsnmp.yaml
service:
plugins_file: ./in_twsnmp.conf
pipeline:
inputs:
- name: twsnmp
log_type: syslog
twsnmp: 127.0.0.1:2222
private_key: ~/.ssh/id_rsa
outputs:
- name: stdout
in_twsnmp.conf
[PLUGINS]
Path ../in_twsnmp/in_twsnmp.darwin.so
のように設定して
fluent-bit -c in_twnmp.yaml
とすれば動作します。
out_twsnmp
TWSNMP FCのsyslogへFluentbitのログを送信するプラグインです。
パラメータは
twsnmp: 送信先 例: 192.168.1.250:2222
private_key:秘密鍵ファイルのパスを指定
host_key:接続先TWSNMPのSSH公開鍵のパスを指定、指定ない場合は初回接続から鍵が変わらなければ許可します。
facility:送信するsyslogのfacilityです。デフォルトは21です。
severity:送信するsyslogのseverityです。デフォルトは6(info)です。
id:プラグインを識別するIDです。
です。
out_twsnmp.yaml
service:
plugins_file: ./out_twsnmp.conf
pipeline:
outputs:
- name: twsnmp
id: test1
twsnmp: 127.0.0.1:2222
private_key: ~/.ssh/id_rsa
inputs:
- name: dummy
out_twsnmp.conf
[PLUGINS]
Path ../out_twsnmp/out_twsnmp.darwin.so
と設定して
$fluent-bit -c out_twsnmp
で動作するはずです。
in_gopsutil
おまけですが、CPU使用率などの情報を取得するプラグインです。
パラメータは
collection: 収集する情報(cpu.percent,cpu.percent.percpuなど)
disk_pah: disk.usgaeの場合のディスクのパスを指定します。
service:
plugins_file: ./in_gopsutil.conf
pipeline:
inputs:
- name: gopsutil
collection: disk.usage
tag: disk.usage.root
outputs:
- name: stdout
のように設定します。
収集するデータは
cpu.percent:全CPUの使用率
cpu.percent.percpu:コア単位の使用率
cpu.times:CPUの使用時間
mem.vm:メモリーの使用量
mem.swap:SWAPメモリーの使用量
host.info:ホスト情報、稼働時間などがある
host.temp:測定可能な温度(CPU温度など)
load.avg:負荷
disk.usage:ディスク使用量
です。gopsutilとの関係は
switch collection {
case "cpu.percent.percpu":
entry = append(entry, getCPUPercent(true))
case "cpu.percent":
entry = append(entry, getCPUPercent(false))
case "cpu.times":
if d, err := cpu.Times(false); err == nil && len(d) == 1 {
entry = append(entry, d[0])
}
case "mem.vm":
if d, err := mem.VirtualMemory(); err == nil {
entry = append(entry, d)
}
case "mem.swap":
if d, err := mem.SwapMemory(); err == nil {
entry = append(entry, d)
}
case "host.info":
if d, err := host.Info(); err == nil {
entry = append(entry, d)
}
case "host.temp":
entry = append(entry, getSensorTemp())
case "load.avg":
if d, err := load.Avg(); err == nil {
entry = append(entry, d)
}
case "disk.usage":
if d, err := disk.Usage(diskPath); err == nil {
entry = append(entry, d)
}
default:
log.Println("unknown collection")
return input.FLB_ERROR
}
を参考にしてください。
その他
正規表現を入力する場所をハイライト対応
定期レポートのリストをソート、停止のセンサーを除外
バグ修正
brain.jsを廃止してsyslogのAIアシストを削除
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。