گزارش حسابرسی

ThingsBoard توانایی ردیابی اقدامات کاربر را به منظور حفظ گزارش حسابرسی فراهم می کند. ثبت اقدامات کاربر مربوط به نهادهای اصلی: دارایی ها، دستگاه ها، داشبورد، قوانین و غیره امکان پذیر است.

رابط کاربری

مدیر مستاجر می‌تواند گزارش‌های حسابرسی را که به حساب مستاجر مربوطه تعلق دارند، بررسی کند. مدیر می تواند محدوده تاریخ را تنظیم کند و یک جستجوی متن کامل برای موجودیت های واکشی شده را اجرا کند.

دکمه “جزئیات” امکان بررسی جزئیات سطح پایین عملکرد ثبت شده را فراهم می کند.

REST API

امکان واکشی گزارش های حسابرسی از طریق REST API وجود دارد. چندین تماس API وجود دارد که امکان واکشی موجودیت‌های مربوط به کاربر، نهاد، مشتری خاص یا واکشی تمام رکوردها را با استفاده از پیوندهای صفحه فراهم می‌کند.

پیکربندی کلی

مدیر سیستم قادر است سطوح گزارش حسابرسی را با استفاده از thingsboard.yml پیکربندی کند. می توانید پیکربندی نمونه را در زیر بیابید:

# Audit log parameters
audit_log:
  # Enable/disable audit log functionality.
  enabled: "${AUDIT_LOG_ENABLED:true}"
  # Specify partitioning size for audit log by tenant id storage. Example MINUTES, HOURS, DAYS, MONTHS
  by_tenant_partitioning: "${AUDIT_LOG_BY_TENANT_PARTITIONING:MONTHS}"
  # Number of days as history period if startTime and endTime are not specified
  default_query_period: "${AUDIT_LOG_DEFAULT_QUERY_PERIOD:30}"
  # Logging levels per each entity type.
  # Allowed values: OFF (disable), W (log write operations), RW (log read and write operations)
  logging_level:
    mask:
      "device": "${AUDIT_LOG_MASK_DEVICE:W}"
      "asset": "${AUDIT_LOG_MASK_ASSET:W}"
      "dashboard": "${AUDIT_LOG_MASK_DASHBOARD:OFF}"
      "customer": "${AUDIT_LOG_MASK_CUSTOMER:W}"
      "user": "${AUDIT_LOG_MASK_USER:RW}"
      "rule": "${AUDIT_LOG_MASK_RULE:RW}"
      "plugin": "${AUDIT_LOG_MASK_PLUGIN:RW}"

این نمونه پیکربندی ثبت هرگونه عملکرد مربوط به داشبوردها و عملیات خواندن گزارش‌ها را برای کاربران و قوانین غیرفعال می‌کند. برای همه موجودیت‌های دیگر، ThingsBoard فقط عملیات سطح نوشتن را ثبت می‌کند.

توصیه می‌کنیم پارامتر «by_tenant_partitioning» را بر اساس تعداد دستگاه‌ها و اقدامات کاربر که ثبت می‌شود، تغییر دهید. هرچه اقدامات بیشتری برای ورود به سیستم برنامه ریزی کنید، پارتیشن بندی دقیق تری مورد نیاز است. مقدار تقریبی رکوردها در هر پارتیشن نباید از 500000 رکورد تجاوز کند.

پیکربندی sink ورود به سیستم خارجی

مدیر سیستم می تواند اتصال به سیستم خارجی را پیکربندی کند. این اتصال برای فشار دادن گزارش های حسابرسی استفاده خواهد شد. پارامترهای پیکربندی به خوبی مستند شده اند.

sink:
    # Type of external sink. possible options: none, elasticsearch
    type: "${AUDIT_LOG_SINK_TYPE:none}"
    # Name of the index where audit logs stored
    # Index name could contain next placeholders (not mandatory):
    # @{TENANT} - substituted by tenant ID
    # @{DATE} - substituted by current date in format provided in audit_log.sink.date_format
    index_pattern: "${AUDIT_LOG_SINK_INDEX_PATTERN:@{TENANT}_AUDIT_LOG_@{DATE}}"
    # Date format. Details of the pattern could be found here:
    # https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
    date_format: "${AUDIT_LOG_SINK_DATE_FORMAT:YYYY.MM.DD}"
    scheme_name: "${AUDIT_LOG_SINK_SCHEME_NAME:http}" # http or https
    host: "${AUDIT_LOG_SINK_HOST:localhost}"
    port: "${AUDIT_LOG_SINK_POST:9200}"
    user_name: "${AUDIT_LOG_SINK_USER_NAME:}"
    password: "${AUDIT_LOG_SINK_PASSWORD:}"

عناوین هر بخش