- Implemented `systemd` log monitoring using `journalctl`. - Added `BinPath` configuration for specifying binary paths. - Introduced `ssh` unit monitoring for authorization tracking. - Updated analyzer lifecycle to integrate log processing. - Enhanced validation for `journalctl` path in settings. - Updated default configurations with `journalctl` path.
46 lines
783 B
Go
46 lines
783 B
Go
package analyzer
|
|
|
|
import (
|
|
"git.kor-elf.net/kor-elf-shield/kor-elf-shield/internal/setting/validate"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
type Setting struct {
|
|
Login Login
|
|
}
|
|
|
|
func InitSetting(path string) (Setting, error) {
|
|
if err := validate.IsTomlFile(path, "otherSettingsPath.analyzer"); err != nil {
|
|
return Setting{}, err
|
|
}
|
|
|
|
setting := settingDefault()
|
|
|
|
v := viper.New()
|
|
v.SetConfigType("toml")
|
|
v.SetConfigFile(path)
|
|
|
|
if err := v.ReadInConfig(); err != nil {
|
|
return Setting{}, err
|
|
}
|
|
if err := v.Unmarshal(&setting); err != nil {
|
|
return Setting{}, err
|
|
}
|
|
|
|
return setting, nil
|
|
}
|
|
|
|
func settingDefault() Setting {
|
|
return Setting{
|
|
Login: defaultLogin(),
|
|
}
|
|
}
|
|
|
|
func (s Setting) Validate() error {
|
|
if err := s.Login.Validate(); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|