# EPS kalkulátor - Logmanager

: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-eyebrow{font-size:.875rem;font-weight:700;text-transform:uppercase;color:var(--lm-accent);margin-bottom:8px}.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-input:focus,.lm-select:focus{border-color:var(--lm-accent);box-shadow:0 0 0 2px rgba(15,15,215,.12)}
.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}}
EPS kalkulačka

# Kalkulačka objemu logů a EPS

Odhadněte objem logů a potřebnou kapacitu úložiště podle počtu událostí za sekundu (EPS), retenční doby a průměrné velikosti události. Výsledek je orientační odhad pro plánování kapacity.

Režim odhaduJednoduchý odhadPokročilý odhad





### Prostředí

Počet zaměstnancůPoužívá se pro odhad událostí z pracovních stanic a identity.



Počet serverůAplikační, databázové, souborové a infrastrukturní servery.



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



Retencední





### Zdroje dat

Skupina / systémPrům. EPSPočet zdrojůWindowsWindows Server30 EPSWindows Active Directory100 EPSWindows Desktop2 EPSUNIX / LinuxUNIX / Linux servery10 EPSBezpečnostFirewall zóny – interní200 EPSFirewall zóny – externí400 EPSIPS5 EPSSkenery zranitelností1 EPSVPN5 EPSAntivirová ochrana30 EPSInfrastrukturaRoutery2 EPSSwitch / SCCM1 EPSProxy server300 EPSWi-Fi AP5 EPSLoad balancer5 EPSServeryDatabázové servery5 EPSWebové servery5 EPSPoštovní servery40 EPSOtherOstatní zdroje (celkové EPS)

Nastavení výpočtu

Průměrná velikost událostibajtů

700 bajtů je běžný plánovací předpoklad.



Retencední

Celkové úložiště je odhadovaný denní objem vynásobený dobou retence.









### Odhad objemu logů

Živý odhad

Odhadované EPS

0



Objem za den

0 GB



Retence

30 dní



Odhadované úložiště

0 GB





Odhadované úložiště

0 GB



Stáhnout výpočet (.xlsx)Soubor obsahuje zadané předpoklady, rozpis zdrojů a vypočtené výsledky.

Výpočet používá průměrné hodnoty EPS a slouží jako orientační podklad pro plánování kapacity, nikoli jako garantovaný požadavek na úložiště.






(function(){
'use strict';
const BYTES_PER_GB=1073741824, SIMPLE_EVENT_SIZE=700, EMPLOYEE_EPS=2, SERVER_EPS=20, DEVICE_EPS=40;
const text={'file': 'logmanager-eps-vypocet-cs.xlsx', 'sheet': 'Výpočet EPS', 'generated': 'Vygenerováno', 'section_inputs': 'VSTUPY', 'section_breakdown': 'ROZPIS ZDROJŮ', 'section_results': 'VÝSLEDKY', 'parameter': 'Parametr', 'value': 'Hodnota', 'source': 'Zdroj', 'count': 'Počet', 'eps_each': 'EPS na zdroj', 'total_eps': 'Celkové EPS', 'mode_value_simple': 'Jednoduchý odhad', 'mode_value_advanced': 'Pokročilý odhad', 'employees': 'Počet zaměstnanců', 'servers': 'Počet serverů', 'devices': 'Síťová a bezpečnostní zařízení', 'retention': 'Retence', 'days': 'dní', 'event_size': 'Průměrná velikost události', 'bytes': 'bajtů', 'other_eps': 'Ostatní zdroje (celkové EPS)', 'eps': 'Odhadované EPS', 'gb_day': 'GB za den', 'gb_month': 'GB za 30 dní', 'total_gb': 'Celkové úložiště (GB)', 'total_tb': 'Celkové úložiště (TB)', 'load_error': 'Knihovnu pro vytvoření tabulky se nepodařilo načíst. Zkontrolujte připojení stránky a zkuste to znovu.'};
let mode='simple', state={};
const $=id=>document.getElementById(id), num=el=>Math.max(0,parseFloat(el.value)||0);
const modeButtons=[...document.querySelectorAll('.lm-mode-btn')], sourceInputs=[...document.querySelectorAll('.lm-source-input')];
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 calculate(){
 let eps=0,eventSize=SIMPLE_EVENT_SIZE,retention=30,breakdown=[];
 if(mode==='simple'){
  const employees=num($('lm-employees')),servers=num($('lm-servers')),devices=num($('lm-devices'));retention=Math.max(1,num($('lm-simple-retention'))||30);
  breakdown=[[text.employees,employees,EMPLOYEE_EPS,employees*EMPLOYEE_EPS],[text.servers,servers,SERVER_EPS,servers*SERVER_EPS],[text.devices,devices,DEVICE_EPS,devices*DEVICE_EPS]];eps=breakdown.reduce((s,r)=>s+r[3],0);
  state={mode,employees,servers,devices,eventSize,retention,breakdown};
 }else{
  sourceInputs.forEach(input=>{const count=num(input),each=parseFloat(input.dataset.eps)||0,total=count*each;if(count>0)breakdown.push([input.dataset.label,count,each,total]);eps+=total});
  const other=num($('lm-other-eps'));if(other>0)breakdown.push([text.other_eps,'',1,other]);eps+=other;eventSize=Math.max(1,num($('lm-event-size'))||700);retention=Math.max(1,num($('lm-advanced-retention'))||30);
  state={mode,eventSize,retention,other,breakdown};
 }
 const gbDay=eps*eventSize*86400/BYTES_PER_GB,totalGb=gbDay*retention;
 Object.assign(state,{eps,gbDay,gbMonth:gbDay*30,totalGb,totalTb:totalGb/1024});
 $('lm-eps-display').textContent=number(eps,0);$('lm-day-display').textContent=number(gbDay,2)+' GB';$('lm-retention-display').textContent=number(retention,0)+' '+text.days;$('lm-storage-small').textContent=storage(totalGb);$('lm-storage-display').textContent=storage(totalGb);
}
function setMode(next){mode=next;modeButtons.forEach(b=>b.classList.toggle('is-active',b.dataset.mode===mode));$('lm-simple-panel').classList.toggle('lm-hidden',mode!=='simple');$('lm-advanced-panel').classList.toggle('lm-hidden',mode!=='advanced');calculate()}
function downloadXlsx(){
 if(typeof XLSX==='undefined'){alert(text.load_error);return}
 calculate();const rows=[];rows.push(['Logmanager EPS Calculator']);rows.push([text.generated,new Date().toLocaleString('cs-CZ')]);rows.push([]);rows.push([text.section_inputs]);rows.push([text.parameter,text.value]);rows.push([text.parameter==='Parameter'?'Estimate mode':'Režim odhadu',state.mode==='simple'?text.mode_value_simple:text.mode_value_advanced]);
 if(state.mode==='simple'){rows.push([text.employees,state.employees]);rows.push([text.servers,state.servers]);rows.push([text.devices,state.devices])}
 rows.push([text.event_size,state.eventSize+' '+text.bytes]);rows.push([text.retention,state.retention+' '+text.days]);rows.push([]);rows.push([text.section_breakdown]);rows.push([text.source,text.count,text.eps_each,text.total_eps]);state.breakdown.forEach(r=>rows.push(r));rows.push([]);rows.push([text.section_results]);rows.push([text.parameter,text.value]);rows.push([text.eps,state.eps]);rows.push([text.gb_day,state.gbDay]);rows.push([text.gb_month,state.gbMonth]);rows.push([text.total_gb,state.totalGb]);rows.push([text.total_tb,state.totalTb]);
 const ws=XLSX.utils.aoa_to_sheet(rows);ws['!cols']=[{wch:38},{wch:20},{wch:18},{wch:18}];
 const wb=XLSX.utils.book_new();XLSX.utils.book_append_sheet(wb,ws,text.sheet);XLSX.writeFile(wb,text.file,{compression:true});
}
modeButtons.forEach(b=>b.addEventListener('click',()=>setMode(b.dataset.mode)));document.querySelectorAll('input,select').forEach(el=>el.addEventListener('input',calculate));$('lm-download').addEventListener('click',downloadXlsx);calculate();
})();
