mirror of
https://forgejo.altau.su/lego/lego-monitoring.git
synced 2026-03-10 04:41:10 +00:00
Merge branch 'dev'
This commit is contained in:
commit
6a545df533
3 changed files with 14 additions and 7 deletions
|
|
@ -56,7 +56,11 @@ async def async_main():
|
|||
sender.send_alert(checks.generate_start_alert()),
|
||||
IntervalChecker(checks.self_check, interval=datetime.timedelta(minutes=5), persistent=False),
|
||||
],
|
||||
check_sets.CPU: [IntervalChecker(checks.cpu_check, interval=datetime.timedelta(minutes=3), persistent=True)],
|
||||
check_sets.CPU: [
|
||||
IntervalChecker(
|
||||
checks.cpu_check, interval=datetime.timedelta(minutes=3), persistent=True, ignore_first_run=True
|
||||
)
|
||||
],
|
||||
check_sets.RAM: [IntervalChecker(checks.ram_check, interval=datetime.timedelta(minutes=1), persistent=True)],
|
||||
check_sets.TEMP: [IntervalChecker(checks.temp_check, interval=datetime.timedelta(minutes=5), persistent=True)],
|
||||
check_sets.VULNIX: [
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ from socket import gethostname
|
|||
|
||||
from lego_monitoring.alerting.alert import Alert
|
||||
from lego_monitoring.alerting.enum import AlertType, Severity
|
||||
from lego_monitoring.alerting.sender import send_alert
|
||||
|
||||
from ..utils import format_for_healthchecks_slug
|
||||
from .vulnix import get_vulnix_output
|
||||
|
|
@ -16,15 +15,14 @@ async def vulnix_check() -> list[Alert]:
|
|||
try:
|
||||
vulnix_output = get_vulnix_output(IS_TESTING)
|
||||
except Exception as e:
|
||||
await send_alert(
|
||||
return [
|
||||
Alert(
|
||||
alert_type=AlertType.ERROR,
|
||||
AlertType.VULN,
|
||||
message=f"Exception {type(e).__name__} while calling vulnix: {e}",
|
||||
severity=Severity.CRITICAL,
|
||||
healthchecks_slug=slug,
|
||||
)
|
||||
)
|
||||
return []
|
||||
]
|
||||
for finding in vulnix_output:
|
||||
if not IS_TESTING:
|
||||
non_whitelisted_cves = [k for k in finding.description if k not in finding.whitelisted]
|
||||
|
|
|
|||
|
|
@ -87,13 +87,18 @@ class BaseChecker:
|
|||
class IntervalChecker(BaseChecker):
|
||||
_: KW_ONLY
|
||||
interval: datetime.timedelta
|
||||
ignore_first_run: bool = False
|
||||
|
||||
async def run_checker(self) -> None:
|
||||
interval_secs = self.interval.total_seconds()
|
||||
ignore_first_run = self.ignore_first_run
|
||||
while True:
|
||||
logging.info(f"Calling {self.check.__name__}")
|
||||
result = await self._call_check()
|
||||
logging.info(f"Got {len(result)} alerts")
|
||||
if ignore_first_run:
|
||||
ignore_first_run = False
|
||||
else:
|
||||
await self._handle_alerts(result)
|
||||
await asyncio.sleep(interval_secs)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue