Denetim günlüğü, kuruluşunuzdaki hassas işlemleri kaydeder: oturum açmalar ve başarısız denemeler, üye ve rol değişiklikleri, kimlik bilgisi ve anahtar değişiklikleri, yüksek etkili komutlar, firmware işlemleri, silmeler, ayar değişiklikleri ve daha fazlası. Satırlar uygulama tarafından asla düzenlenmez. Günlüğü “bunu kim, ne zaman değiştirdi?” sorusunu yanıtlamak, bir incelemeyi desteklemek ve bir denetim için kanıt olarak kullanın. Kaydedilen işlemlerin listesi Denetlenen işlemler sayfasındadır.
Günlüğü açın
Kuruluşunuzun /admin/audit-logs adresindeki Audit Logs sayfasını açın. Sayfada “Bu kuruluşta gerçekleştirilen işlemlerin, değiştirilemez izlenebilir kaydı” yazar. Admin rolü veya daha üstü bir role ihtiyacınız vardır.
En yeni olaylar en üstte listelenir. Bir satırı seçerek Audit Log Detail ekranını açın.
Bir satırda neler bulunur
| Sütun veya alan | Anlamı |
|---|---|
| Time | Olayın gerçekleştiği zaman. |
| Actor | İşlemi yapan: bir üye, sistem, bir API anahtarı veya bir servis. Ayrıntıda Actor type ve Actor ID alanları da yer alır. |
| On behalf of | Birisi başka birisi adına işlem yaptığında, adına işlem yapılan kişi. Gerçek işlemi yapan yine actor olarak kalır. |
| Action | Yapılan işlem, örneğin iot_device.credential.rotated veya auth.login_failed. |
| Severity | Low, Medium, High veya Critical. |
| Resource | Değiştirilen şeyin Resource type ve Resource ID bilgisi, örneğin iot_device ve cihaz kimliği. |
| Metadata | Değiştirilen alan adları gibi ek bilgiler. Gizli bilgiler, parolalar, belirteçler ve anahtarlar asla yazılmaz. |
| IP ve User agent | İsteğin geldiği yer. |
| Integrity (hash chain) | Satırın Prev hash ve Row hash değerleri (aşağıya bakın). |
Yüksek ve kritik olaylar ayrıca audit.high_risk webhook’unu tetikler, böylece bunları kendi güvenlik araçlarınıza iletebilirsiniz. Bkz. Webhooks.
Olayları bulma
Tablonun üstündeki filtreleri kullanın:
| Filtre | Kullanımı |
|---|---|
| Actor | Search by email… |
| Action | İşlem adının bir parçası, örneğin auth.login veya iot_rpc |
| Severity | Tek bir önem derecesi |
| Date range | From ve To |
Clear filters bunları sıfırlar. API üzerinden ayrıca kaynak türüne ve kaynak kimliğine göre de filtreleyebilirsiniz:
GET /tenant/{tenantId}/api/audit-logs?resourceType=iot_device&resourceId=<deviceId>&fromDate=2026-11-01&toDate=2026-11-08&page=1&pageSize=100
pageSize varsayılan olarak en fazla 100’dür; denetim günlüğü ayarlarındaki Max Page Size bunu 500’e kadar yükseltebilir.
Dışa aktarma
Export CSV, filtrenin tarih aralığındaki günlüğü indirir. API üzerinden CSV veya NDJSON seçebilir ve dışa aktarmayı tek bir actor ile sınırlayabilirsiniz; örneğin bir kişinin verilerini görme talebini yanıtlamak için:
GET /tenant/{tenantId}/api/audit-logs/export?format=ndjson&actorId=<userId>&fromDate=2026-01-01&toDate=2026-11-08
Değiştirilmeye karşı koruma
Her satır, kuruluşunuzdaki önceki satıra bir hash zinciriyle bağlıdır: bir satırın hash’i kendi içeriğini ve kendinden önceki satırın hash’ini kapsar. Tutulan bir satırda yapılan her değişiklik veya silme zinciri bozar. Zinciri kontrol etmek için şunu çağırın:
GET /tenant/{tenantId}/api/audit-logs/verify
Zincir bütünse yanıt { "ok": true, "checked": <rows> } olur; bozuksa "ok": false ve uymayan ilk satırı gösteren brokenAt döner. Saklama süresi nedeniyle eski satırlar silindikten sonra, tutulan ilk satır artık var olmayan bir satıra başvurur; kontrol bu başlangıç noktasını kabul eder.
Saklama
Audit Logs > ayarlar (Audit Log Settings) bölümünü açın:
| Ayar | Varsayılan | Anlamı |
|---|---|---|
| Retention Period (days) | 0 | Satırların, gece çalışan temizlik işlemi tarafından silinmeden önce ne kadar süre tutulacağı. 0 değeri bunları sonsuza kadar tutar. Uyum gereksinimlerinize göre ayarlayın; örneğin yedi yıllık bir saklama için 2.555 gün. |
| Max Page Size | 100 | Bir API çağrıcısının isteyebileceği en büyük sayfa, en fazla 500. |
Denetim günlüğü her pakette kaydedilir. Bir paket günlüğü okumayı içermiyorsa, liste ve dışa aktarma paket tekrar içerene kadar reddedilir; bu arada hiçbir kayıt kaybolmaz.
Gizlilik
Bir owner, günlükteki bir kişiyi anonimleştirebilir: satırlarla kişi arasındaki bağlantı kaldırılır, ancak işlemler yerinde kalır ve zincir yine doğrulanır. Bu, bir silme talebini yanıtlamanın parçasıdır; bkz. Gizlilik ve veri silme.
POST /tenant/{tenantId}/api/audit-logs/anonymize
Content-Type: application/json
{ "actorId": "<userId>" }
İzinler
| İşlem | Varsayılan rol |
|---|---|
| Günlüğü okuma | Admin |
| Dışa aktarma | Admin |
| Zinciri doğrulama | Admin |
| Bir kişiyi anonimleştirme | Owner |
| Süresi dolan satırları şimdi temizleme | Owner |
Bir üyenin kendi olayları, üyenin sayfasındaki Activity sekmesinde de görünür. Bkz. Kullanıcılar ve roller.

