Commit Graph

41 Commits

Author SHA1 Message Date
Jason Kulatunga a53397210c adding mechanism to override the smartctl commands used by scrutiny for device scanning, device identification and smart data retrieval.
adding tests for command overrides.

rename GetScanOverrides() to GetDeviceOverrides()

fixes #255
2022-05-28 15:32:44 -07:00
Jason Kulatunga 999c12748c added a way to retrieve raw udev data. Can be used to retrieve disk label, UUID and "disk/by-id/*" device info.
Storing it in the database during device registration.
2022-05-20 20:59:29 -07:00
Jason Kulatunga eb4a738746 documentation & updates for configuring scrutiny behind a reverse proxy with path rewriting. 2022-05-09 16:37:05 -07:00
Jason Kulatunga 381a6799cc updates for v0.4.0 release. Slight refactor/organization. 2022-05-09 14:50:35 -07:00
Jason Kulatunga de702414b9 moving all filesystem references to /scrutiny to /opt/scrutiny
fixes #230
2022-05-09 09:29:39 -07:00
Jason Kulatunga 21d07a0712 adding tests for Detect struct in collector. Adding ability to mock out exec.Command calls. 2022-05-06 20:07:23 -07:00
Jason Kulatunga fabc629e40 handle case where WWN not detected for a device (print error messages, but skip device collection & uploading). 2022-05-05 23:03:06 -07:00
Jason Kulatunga 97f6564c1e adding documetnation for smartctl exit codes and addl test. 2022-05-02 10:26:25 -07:00
Jason Kulatunga 2fc24d0e76 fix error log. 2021-04-25 20:14:58 -07:00
Jason Kulatunga da890d95b6 Fixing forced logging of smartctl output irrespective of log level (now available at DEBUG level only)
TODO: add a table summary at INFO level.

fixes #123
2021-04-25 11:34:26 -07:00
Jason Kulatunga e5713e3a81 added ability to configure collector variables using config file (api endpoint, log level, log file).
fixes #124
2021-04-25 11:24:03 -07:00
Jason Kulatunga 58eaa29e4d check for "unknown" wwn value.
fix #113
2020-10-27 08:25:44 -07:00
Ricardo Gonzalez 048bf237e2 Use StringFlag 2020-10-18 00:44:11 +01:00
Jason Kulatunga b44ef5cb9c adding support for a collecto config file.
/scrutiny/config/collector.yaml

Adding ability to specify host identifier (label), that is updated on every collector run.
Can be specified by `host-id` CLI or `COLLECTOR_HOST_ID` env var.

Created a config class, interface and associated tests.

Created a "TransformDetectedDrives" function, that will allow users to insert drives not detected by Smarctl --scan, ignore drives that they dont want, and override smartctl device type.

Added Upsert functionality when registering devices.

Replaced "github.com/jinzhu/gorm" with "gorm.io/gorm" (ORM location moved, was using incorrect lib url)
Removed machineid library.
2020-10-07 21:54:29 -06:00
Jason Kulatunga 1c7ca35ea7 build freebsd binaries for CI (not included in releases yet) 2020-10-03 14:38:19 -06:00
Jason Kulatunga 7742f4c6c3 fixing windows binary build during CI. Update config missing error message. 2020-09-29 16:16:15 -06:00
Jason Kulatunga cb0aa9823e retrieve all device data. SAS devices do not return power on hours when using -a flag (unlike other device types).
fixes #43
fixes #9
2020-09-26 15:18:55 -06:00
Jason Kulatunga e44864e64b fixes. 2020-09-23 11:01:53 -06:00
Jason Kulatunga 8a336bf5c6 wwn should always be lowercase for consistency. It's used in the URL for pushing smart data. 2020-09-23 10:37:59 -06:00
Jason Kulatunga 2fee2bf906 fix tests. 2020-09-21 21:22:07 -06:00
Jason Kulatunga a57120d600 adding new environmental variables for added debugging: COLLECTOR_LOG_FILE, COLLECTOR_DEBUG, DEBUG, SCRUTINY_LOG_FILE, SCRUTINY_DEBUG 2020-09-21 18:41:52 -06:00
Jason Kulatunga f2dd87cf82 dont use a go-routine -- disable concurrency. 2020-09-21 09:59:52 -06:00
Jason Kulatunga 8b139ad157 remove concurrency for collector, it causes issues on systems with lots of devices. Just retrieve the data in order for now (eventually we may do it in batches). 2020-09-21 08:44:50 -06:00
Jason Kulatunga fd82e9a4da print error message if publish does not finish successfully. 2020-09-20 17:37:43 -06:00
Jason Kulatunga 297f0a51c5 adding ability to write a log file with all output from collector. Executing commands will now log be logged (and when debug is enabled, their output's are also logged). 2020-09-20 17:37:43 -06:00
Jason Kulatunga 24262f7c8c pass deviceType when running smartctl data collection (for megaraid type disks).
Make DevicePrefix a public function available outside the detect module.
if device type is detected as "ata" or "scsi", dont pass in via -d parameter, can cause issues with missing data.
2020-09-20 17:37:43 -06:00
Jason Kulatunga 3deca46851 fix. 2020-09-20 17:37:43 -06:00
Jason Kulatunga 23d5b86b1b new device detection engine (OS aware). Uses smartctl --scan to detect drives (and conditionally uses jaypipes/ghw). WWN is calculated from smartctl data, then retrieved from GHW, and fallsback to serial number. WWN calcuation code is based on IEEE spec, for "Registered" IEEE format - NAA5. TODO: support NAA6 and other formats? 2020-09-20 17:37:43 -06:00
Jason Kulatunga 853b1a7249 Merge pull request #28 from AnalogJ/notify_failures
Adding UI for settings (and eventually notifications).
2020-09-18 14:44:24 -06:00
Jason Kulatunga a7cd912318 dont ignore NVME storage controllers. 2020-09-18 10:43:14 -06:00
Jason Kulatunga 5101a37964 adding device protocl and type to the. Adding class for parsing smartctl --scan json output, for device detection. added an example/test file for smartctl -x -j added a placeholder settings panel. moved dashboard & details compoonent out of "Admin" directory. 2020-09-18 10:14:19 -06:00
Jason Kulatunga 266c95f857 fix #3
Make sure that the collector attempts to correctly communicate with webapp container, even when running in dedicated container (and triggered manually).
fixes cron schedule to run daily.
added instructions for dedicated containers.
2020-09-18 09:23:39 -06:00
Jason Kulatunga 2ad120c87b added debug logging message for detected devices.
adding a mocked class for Config.
Adding device type to Device struct. Will eventually be needed for raid drives.
adding End-to-end testing capabilties.
Added testdata json files for webserver requests.
Seperated Start code and Setup code in webapp so we can test.
renamed "smart_attributes" to "ata_attributes" - Backwards incomatible change.
Added front end device sorting (red, yellow, green)
show unknown icon/status if drive has no smart data yet.
Moved all attribute "getters" into the controller.
created a device-sort pipe.
2020-08-26 21:35:13 -07:00
Jason Kulatunga 5a80ae3e74 WIP - start supporting NVME and SCSI drive smart data.
Added addiitonal log message data for Smartctl exit ccode.
2020-08-24 23:01:03 -07:00
Jason Kulatunga f7b2a7b41b make sure results from failing smartctl execution is still sent to API. 2020-08-22 17:27:44 -07:00
Jason Kulatunga d636709aa1 Moved version file into webapp source tree. Replacing fmt with logger calls. moved Jobber config file into /scrutiny/jobber directory. Added scsi json file. Moved API rooute handlers into their own files in a module. Added not yet implemnented tooltips. 2020-08-21 18:06:00 -07:00
packagr-io-beta 5a3a1f4165 (v0.1.2) Automated packaging of release by Packagr 2020-08-21 06:42:34 +00:00
packagr-io-beta b6ca94f786 (v0.1.1) Automated packaging of release by Packagr 2020-08-21 06:31:48 +00:00
Jason Kulatunga 0f9ee840ef integrating packagr. 2020-08-20 23:03:18 -07:00
Jason Kulatunga 40f5cbef6c moved hard drive device detection to collector (So we can run multiple in parallel). 2020-08-19 22:34:27 -07:00
Jason Kulatunga 8482272d45 init 2020-08-19 16:04:21 -07:00