# Kalkulačka doby uchovávání logů

Kalkulačka doby uchovávání logů
:root{--lm-accent:rgb(15,15,215);--lm-bg:#f5f5f5;--lm-text:#041c35;--lm-muted:#6b7280;--lm-line:#e5e7eb}
*{box-sizing:border-box}.lm-estimator{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:64px 16px 80px;background:var(--lm-bg);color:var(--lm-text)}
.lm-inner{max-width:1120px;margin:0 auto}.lm-header{text-align:center;margin-bottom:28px}.lm-title{font-family:Sora,sans-serif;font-size:clamp(1.75rem,4vw,3rem);line-height:1.12;margin:0 0 16px}.lm-subtitle{max-width:780px;margin:0 auto;font-size:1.05rem;line-height:1.65}
.lm-top-toggle{display:flex;justify-content:center;margin:0 0 28px}.lm-toggle{display:inline-flex;padding:4px;gap:4px;border-radius:999px;background:rgba(15,15,215,.08)}.lm-toggle button{border:0;background:transparent;padding:10px 18px;border-radius:999px;cursor:pointer;font-weight:600;color:#3f4650}.lm-toggle button.is-active{background:var(--lm-accent);color:#fff;box-shadow:0 7px 20px rgba(15,15,215,.3)}
.lm-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr);gap:30px;align-items:start}.lm-card{background:#fff;border-radius:28px;padding:28px;box-shadow:0 18px 45px rgba(15,23,42,.08)}.lm-card h3{font-size:1.15rem;margin:0 0 18px}.lm-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.lm-field{padding:15px;border-radius:18px;background:#f9fafb}.lm-field label{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.lm-field-note{font-size:11px;line-height:1.45;color:#8a919d;margin-top:6px}.lm-input,.lm-select{width:100%;border:1px solid var(--lm-line);border-radius:999px;padding:10px 12px;background:#fff;font-size:14px;outline:0}.lm-input{text-align:right}.lm-select{text-align:left;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%236b7280' d='M5.5 7.5l4.5 4.5 4.5-4.5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}.lm-input:focus,.lm-select:focus{border-color:var(--lm-accent);box-shadow:0 0 0 2px rgba(15,15,215,.12)}
.lm-reg-card{grid-column:1 / -1;padding:16px 18px;border-radius:18px;background:rgba(15,15,215,.05);border:1px solid rgba(15,15,215,.12);font-size:12.5px;line-height:1.6;color:#33415c}.lm-reg-card b{color:var(--lm-text)}
.lm-table-wrap{overflow-x:auto}.lm-table{width:100%;border-collapse:collapse;font-size:13px}.lm-table th{text-align:left;color:var(--lm-muted);font-size:12px;padding:7px 5px;border-bottom:1px solid var(--lm-line)}.lm-table td{padding:6px 5px;vertical-align:middle}.lm-table .num{text-align:right}.lm-group td{padding-top:14px;font-size:11px;font-weight:700;text-transform:uppercase;color:#9ca3af}.lm-badge-eps{display:inline-flex;padding:3px 8px;border-radius:999px;background:rgba(15,15,215,.08);color:var(--lm-accent);font-size:11px}.lm-small-input{width:84px;border:1px solid var(--lm-line);border-radius:999px;padding:7px 9px;text-align:right}.lm-settings{border-top:1px solid var(--lm-line);margin-top:18px;padding-top:18px}.lm-settings-title{font-weight:700;margin-bottom:13px}.lm-hidden{display:none!important}
.lm-output-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:14px}.lm-output-head h3{margin:0}.lm-live{padding:4px 10px;border-radius:999px;background:rgba(15,15,215,.08);color:var(--lm-accent);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.lm-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lm-metric{background:#f9fafb;border-radius:16px;padding:12px}.lm-metric-label{font-size:12px;color:var(--lm-muted);margin-bottom:4px}.lm-metric-value{font-size:15px;font-weight:700}.lm-total{margin:18px 0;padding:22px;border:1px solid var(--lm-line);border-radius:22px;background:radial-gradient(circle at top left,rgba(15,15,215,.12),#fff 48%)}.lm-total-label{font-size:13px;color:var(--lm-muted);margin-bottom:5px}.lm-total-value{font-size:clamp(2rem,5vw,3.1rem);font-weight:800;line-height:1.1}.lm-btn{width:100%;display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:999px;padding:12px 18px;background:var(--lm-accent);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 12px 30px rgba(15,15,215,.3)}.lm-btn:hover{transform:translateY(-1px)}.lm-download-note,.lm-footnote{font-size:11px;color:#8a919d;line-height:1.55}.lm-download-note{margin-top:9px}.lm-footnote{margin-top:16px;padding-top:14px;border-top:1px solid var(--lm-line)}
@media(max-width:900px){.lm-grid{grid-template-columns:1fr}}@media(max-width:620px){.lm-estimator{padding:44px 12px 60px}.lm-card{padding:20px;border-radius:22px}.lm-form-grid,.lm-metrics{grid-template-columns:1fr}.lm-toggle{width:100%}.lm-toggle button{flex:1;padding:9px 10px;font-size:12px}}
# Kalkulačka doby uchovávání logů

Zjistěte běžně uváděnou dobu uchovávání logů podle GDPR, ZoKB (NIS2), PCI DSS, HIPAA, ISO 27001, SOX a dalších rámců a odhadněte potřebnou kapacitu úložiště. Výsledek je orientační odhad pro plánování.

Způsob zadání objemuOdhad z prostředíZnám svůj denní objem logů





### Regulace / rámec

RámecGDPR — bezpečnostní a přístupové logyZoKB (NIS2)PCI DSS v4.0HIPAAISO/IEC 27001SOX (Sarbanes-Oxley)Vlastní / jinéNíže se zobrazí typické doporučení. Pokud se vaše zásady liší, upravte pole doby uchovávání.







### Prostředí

ZaměstnanciPoužívá se pro odhad událostí souvisejících s pracovními stanicemi a identitou.



ServeryAplikační, databázové, souborové a infrastrukturní servery.



Síťová a bezpečnostní zařízeníFirewally, přepínače, routery, VPN brány, IDS/IPS a podobná zařízení.



Průměrná velikost událostibajtů

700 bajtů je běžně používaný předpoklad pro plánování.





### Známý denní objem

Průměrný objem logůGB / den

Použijte aktuální rychlost příjmu dat z vašeho log managementu nebo SIEM platformy.





Doba uchovávání

Doba uchovávánídní

Předvyplněno podle vybraného rámce. Kdykoli lze upravit podle vlastních zásad.



Okamžitě dostupné (rychlé úložiště)dní

Některé rámce (např. PCI DSS) vyžadují, aby část historie byla okamžitě dostupná k analýze.









### Odhadovaná kapacita úložiště

Živý odhad

Odhadované EPS

0



Objem za den

0 GB



Doba uchovávání

365 dní



Objem rychlého úložiště

0 GB





Celková odhadovaná kapacita úložiště

0 GB



Stáhnout výpočet (.xlsx)Sešit obsahuje vybraný rámec, zadané předpoklady a vypočítané výsledky.

Uvedené doby uchovávání jsou běžně citovaná doporučení pro plánování, nikoli právní minimum. Požadavky se liší podle země, odvětví, doporučení dozorových úřadů a vašeho vlastního posouzení rizik — ověřte platné povinnosti s právním nebo compliance oddělením.






(function(){
'use strict';
const BYTES_PER_GB=1073741824, EMPLOYEE_EPS=2, SERVER_EPS=20, DEVICE_EPS=40;
const REGULATIONS={
 gdpr:{label:'GDPR — bezpečnostní a přístupové logy',days:180,note:'GDPR nestanovuje pevnou dobu uchovávání bezpečnostních/přístupových logů. Podle zásady omezení uložení by logy měly být uchovávány pouze po dobu nezbytnou pro daný bezpečnostní účel. Běžně se pro přístupové a bezpečnostní logy používá <b>6–12 měsíců; delší doba vyžaduje zdokumentované odůvodnění.'},
 nis2:{label:'ZoKB (NIS2)',days:365,note:'ZoKB (zákon o kybernetické bezpečnosti), který v ČR transponuje směrnici NIS2, sám nepředepisuje přesný počet měsíců pro uchovávání logů v textu zákona — konkrétní lhůty stanovují prováděcí předpisy a odvětvová doporučení. <b>12 měsíců je široce používaná výchozí hodnota pro logy relevantní pro incidenty, často v souladu s praxí podle ISO 27001 nebo GDPR.'},
 pci:{label:'PCI DSS v4.0',days:365,note:'Požadavek 10.5.1 normy PCI DSS v4.0: uchovávat historii auditních logů po dobu nejméně <b>12 měsíců, přičemž nejnovější <b>3 měsíce musí být okamžitě dostupné k analýze (rychlé úložiště).',hot:90},
 hipaa:{label:'HIPAA',days:2190,note:'HIPAA nestanovuje konkrétní dobu uchovávání auditních logů, avšak související pravidlo o uchovávání dokumentace (45 CFR §164.316(b)(2)(i)) vyžaduje uchování záznamů po dobu <b>6 let od vytvoření nebo poslední účinnosti — často se stejná lhůta zrcadlí i pro auditní logy.'},
 iso27001:{label:'ISO/IEC 27001',days:365,note:'ISO/IEC 27001 nestanovuje pevnou dobu uchovávání — určuje ji vaše posouzení rizik a zdokumentovaná politika logování (příloha A, opatření A.8.15). V praxi se běžně jako minimum používá <b>12 měsíců, některé organizace uchovávají data 2–3 roky kvůli auditům a trendové analýze.'},
 sox:{label:'SOX (Sarbanes-Oxley)',days:2555,note:'Oddíl 802 zákona Sarbanes-Oxley vyžaduje uchování relevantních obchodních záznamů, včetně podpůrné auditní dokumentace, po dobu <b>7 let.'},
 custom:{label:'Vlastní / jiné',days:365,note:'Nastavte vlastní dobu uchovávání podle interní politiky, smluvních závazků nebo rámce, který zde není uveden.'}
};
let volMode='simple';
const $=id=>document.getElementById(id), num=el=>Math.max(0,parseFloat(el.value)||0);
const modeButtons=[...document.querySelectorAll('.lm-mode-btn')];
function number(v,d=0){return Number(v).toLocaleString('cs-CZ',{minimumFractionDigits:d,maximumFractionDigits:d})}
function storage(gb){if(!isFinite(gb)||gb<=0)return '0 GB';return gb>=1024?number(gb/1024,2)+' TB':number(gb,2)+' GB'}
function applyRegulation(){
 const reg=REGULATIONS[$('lm-regulation').value];
 $('lm-reg-card').innerHTML=reg.note;
 $('lm-retention-days').value=reg.days;
 if(reg.hot!==undefined)$('lm-hot-days').value=reg.hot;
 calculate();
}
function setVolMode(next){
 volMode=next;
 modeButtons.forEach(b=>b.classList.toggle('is-active',b.dataset.mode===volMode));
 $('lm-simple-panel').classList.toggle('lm-hidden',volMode!=='simple');
 $('lm-advanced-panel').classList.toggle('lm-hidden',volMode!=='advanced');
 calculate();
}
function calculate(){
 let eps=0,gbDay=0,eventSize=700,breakdown=[];
 const retention=Math.max(1,num($('lm-retention-days'))||365),hot=Math.max(0,num($('lm-hot-days'))||0);
 if(volMode==='simple'){
  const employees=num($('lm-employees')),servers=num($('lm-servers')),devices=num($('lm-devices'));
  eventSize=Math.max(1,num($('lm-event-size-simple'))||700);
  breakdown=[['Zaměstnanci',employees,EMPLOYEE_EPS,employees*EMPLOYEE_EPS],['Servery',servers,SERVER_EPS,servers*SERVER_EPS],['Síťová a bezpečnostní zařízení',devices,DEVICE_EPS,devices*DEVICE_EPS]];
  eps=breakdown.reduce((s,r)=>s+r[3],0);
  gbDay=eps*eventSize*86400/BYTES_PER_GB;
 }else{
  gbDay=num($('lm-daily-gb'));
  eps=gbDay*BYTES_PER_GB/(eventSize*86400);
  breakdown=[['Známý denní objem','',' ',gbDay+' GB/den']];
 }
 const totalGb=gbDay*retention, hotGb=gbDay*hot;
 window.__lmState={mode:volMode,regulation:$('lm-regulation').value,regulationLabel:REGULATIONS[$('lm-regulation').value].label,retention,hot,eventSize,gbDay,totalGb,hotGb,breakdown};
 $('lm-eps-display').textContent=volMode==='simple'?number(eps,0):'—';
 $('lm-day-display').textContent=number(gbDay,2)+' GB';
 $('lm-retention-display').textContent=number(retention,0)+' dní';
 $('lm-hot-display').textContent=storage(hotGb);
 $('lm-storage-display').textContent=storage(totalGb);
}
function downloadXlsx(){
 if(typeof XLSX==='undefined'){alert('Knihovnu pro tabulkové sešity se nepodařilo načíst. Zkontrolujte prosím připojení stránky a zkuste to znovu.');return}
 calculate();
 const s=window.__lmState, rows=[];
 rows.push(['Logmanager — výpočet doby uchovávání logů']);
 rows.push(['Vygenerováno',new Date().toLocaleString('cs-CZ')]);
 rows.push([]);
 rows.push(['VSTUPY']);
 rows.push(['Parametr','Hodnota']);
 rows.push(['Rámec',s.regulationLabel]);
 rows.push(['Způsob zadání objemu',s.mode==='simple'?'Odhad z prostředí':'Známý denní objem']);
 rows.push(['Průměrná velikost události (bajty)',s.eventSize]);
 rows.push(['Doba uchovávání (dny)',s.retention]);
 rows.push(['Rychlé / okamžitě dostupné úložiště (dny)',s.hot]);
 rows.push([]);
 rows.push(['ROZPIS ZDROJŮ']);
 rows.push(['Zdroj','Počet','EPS na zdroj','Celkové EPS / hodnota']);
 s.breakdown.forEach(r=>rows.push(r));
 rows.push([]);
 rows.push(['VÝSLEDKY']);
 rows.push(['Parametr','Hodnota']);
 rows.push(['Objem za den (GB)',s.gbDay]);
 rows.push(['Objem rychlého úložiště (GB)',s.hotGb]);
 rows.push(['Celková odhadovaná kapacita úložiště (GB)',s.totalGb]);
 rows.push(['Celková odhadovaná kapacita úložiště (TB)',s.totalGb/1024]);
 rows.push([]);
 rows.push(['Poznámka: uvedené doby uchovávání jsou běžně citovaná doporučení pro plánování, nikoli právní minimum. Ověřte platné povinnosti s právním nebo compliance oddělením.']);
 const ws=XLSX.utils.aoa_to_sheet(rows);ws['!cols']=[{wch:42},{wch:22},{wch:18},{wch:18}];
 const wb=XLSX.utils.book_new();XLSX.utils.book_append_sheet(wb,ws,'Výpočet uchovávání');
 XLSX.writeFile(wb,'logmanager-vypocet-doby-uchovavani-logu.xlsx',{compression:true});
}
$('lm-regulation').addEventListener('change',applyRegulation);
modeButtons.forEach(b=>b.addEventListener('click',()=>setVolMode(b.dataset.mode)));
document.querySelectorAll('#lm-employees,#lm-servers,#lm-devices,#lm-event-size-simple,#lm-daily-gb,#lm-retention-days,#lm-hot-days').forEach(el=>el.addEventListener('input',calculate));
$('lm-download').addEventListener('click',downloadXlsx);
applyRegulation();
})();
<html><p class="wp-block-paragraph"></p>
