docs/user-guide/architecture/background/index.html

2737 lines
64 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="zh" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Loggie Documentation">
<link rel="prev" href="../../">
<link rel="next" href="../core-arch/">
<link rel="icon" href="../../../assets/min-logo.png">
<meta name="generator" content="mkdocs-1.4.3, mkdocs-material-9.1.18">
<title>诞生背景 - </title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.26e3688c.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRobot+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Robot Mono"}</style>
<link rel="stylesheet" href="../../../stylesheets/extra.css">
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#loggie" class="md-skip">
跳转至
</a>
</div>
<div data-md-component="announce">
</div>
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
</div>
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="页眉">
<a href="../../.." title=" " class="md-header__button md-logo" aria-label=" " data-md-component="logo">
<img src="../../../assets/loggie.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
诞生背景
</span>
</div>
</div>
</div>
<div class="md-header__option">
<div class="md-select">
<button class="md-header__button md-icon" aria-label="选择当前语言">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg>
</button>
<div class="md-select__inner">
<ul class="md-select__list">
<li class="md-select__item">
<a href="https://loggie-io.github.io/docs-en/" hreflang="en" class="md-select__link">
English
</a>
</li>
</ul>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="查找">
<a href="javascript:void(0)" class="md-search__icon md-icon" title="分享" aria-label="分享" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"/></svg>
</a>
<button type="reset" class="md-search__icon md-icon" title="清空当前内容" aria-label="清空当前内容" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
<div class="md-search__suggest" data-md-component="search-suggest"></div>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
正在初始化搜索引擎
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/loggie-io/loggie" title="前往仓库" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</div>
<div class="md-source__repository">
loggie-io/loggie
</div>
</a>
</div>
</nav>
<nav class="md-tabs" aria-label="标签" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../../getting-started/overview/" class="md-tabs__link">
快速上手
</a>
</li>
<li class="md-tabs__item">
<a href="../../" class="md-tabs__link md-tabs__link--active">
用户指南
</a>
</li>
<li class="md-tabs__item">
<a href="../../../reference/" class="md-tabs__link">
组件配置
</a>
</li>
<li class="md-tabs__item">
<a href="../../../developer-guide/contributing/" class="md-tabs__link">
开发手册
</a>
</li>
<li class="md-tabs__item">
<a href="../../../blog/" class="md-tabs__link">
Blog
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="导航栏" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title=" " class="md-nav__button md-logo" aria-label=" " data-md-component="logo">
<img src="../../../assets/loggie.svg" alt="logo">
</a>
</label>
<div class="md-nav__source">
<a href="https://github.com/loggie-io/loggie" title="前往仓库" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</div>
<div class="md-source__repository">
loggie-io/loggie
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
Home
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
快速上手
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
快速上手
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../getting-started/overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting-started/intro/core-concept/" class="md-nav__link">
核心概念
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
<label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
快速上手
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3">
<span class="md-nav__icon md-icon"></span>
快速上手
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../getting-started/quick-start/quick-start/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting-started/quick-start/kubernetes/" class="md-nav__link">
Kubernetes环境
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting-started/quick-start/node/" class="md-nav__link">
主机环境
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
<label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
部署
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_4">
<span class="md-nav__icon md-icon"></span>
部署
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../getting-started/install/kubernetes/" class="md-nav__link">
Kubernetes部署
</a>
</li>
<li class="md-nav__item">
<a href="../../../getting-started/install/node/" class="md-nav__link">
主机部署
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_5" >
<label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
RoadMap
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_5">
<span class="md-nav__icon md-icon"></span>
RoadMap
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../getting-started/roadmap/roadmap-2023/" class="md-nav__link">
2023
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
用户指南
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
用户指南
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" checked>
<label class="md-nav__link" for="__nav_3_2" id="__nav_3_2_label" tabindex="0">
架构与特性
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
架构与特性
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
诞生背景
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
诞生背景
</a>
<nav class="md-nav md-nav--secondary" aria-label="目录">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_1" class="md-nav__link">
一、那些年我们遇到的问题
</a>
<nav class="md-nav" aria-label="一、那些年我们遇到的问题">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
隔离性弱
</a>
</li>
<li class="md-nav__item">
<a href="#output" class="md-nav__link">
不支持多个Output
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
可扩展性有限
</a>
</li>
<li class="md-nav__item">
<a href="#_4" class="md-nav__link">
日志排障运维困境
</a>
</li>
<li class="md-nav__item">
<a href="#_5" class="md-nav__link">
性能不够
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_6" class="md-nav__link">
二、为什么现有的其他开源日志项目不能满足需求?
</a>
</li>
<li class="md-nav__item">
<a href="#agent" class="md-nav__link">
三、什么才是我们理想中的日志Agent
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../core-arch/" class="md-nav__link">
设计架构
</a>
</li>
<li class="md-nav__item">
<a href="../schema/" class="md-nav__link">
数据格式
</a>
</li>
<li class="md-nav__item">
<a href="../advantages/" class="md-nav__link">
优势与特性
</a>
</li>
<li class="md-nav__item">
<a href="../compare/" class="md-nav__link">
开源项目对比
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
<label class="md-nav__link" for="__nav_3_3" id="__nav_3_3_label" tabindex="0">
Kubernetes
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
Kubernetes
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../use-in-kubernetes/general-usage/" class="md-nav__link">
Kubernetes下的日志采集
</a>
</li>
<li class="md-nav__item">
<a href="../../use-in-kubernetes/collect-container-logs/" class="md-nav__link">
Loggie采集容器日志
</a>
</li>
<li class="md-nav__item">
<a href="../../use-in-kubernetes/collect-node-logs/" class="md-nav__link">
Loggie采集Node日志
</a>
</li>
<li class="md-nav__item">
<a href="../../use-in-kubernetes/sidecar/" class="md-nav__link">
Sidecar方式采集日志
</a>
</li>
<li class="md-nav__item">
<a href="../../use-in-kubernetes/kube-event-source/" class="md-nav__link">
采集Kubernetes Events
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_4" >
<label class="md-nav__link" for="__nav_3_4" id="__nav_3_4_label" tabindex="0">
最佳实践
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
最佳实践
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../best-practice/log-enrich/" class="md-nav__link">
日志格式与元信息字段
</a>
</li>
<li class="md-nav__item">
<a href="../../best-practice/log-process/" class="md-nav__link">
日志切分处理
</a>
</li>
<li class="md-nav__item">
<a href="../../best-practice/aggregator/" class="md-nav__link">
使用Loggie中转机
</a>
</li>
<li class="md-nav__item">
<a href="../../best-practice/concurrency/" class="md-nav__link">
自适应sink流量控制
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
<label class="md-nav__link" for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
监控报警
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
监控报警
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../monitor/loggie-monitor/" class="md-nav__link">
Loggie的监控与报警
</a>
</li>
<li class="md-nav__item">
<a href="../../monitor/service-log-alarm/" class="md-nav__link">
日志报警
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
<label class="md-nav__link" for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
企业实战
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
企业实战
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../enterprise-practice/architecture-and-evolution/" class="md-nav__link">
日志系统架构与演进
</a>
</li>
<li class="md-nav__item">
<a href="../../enterprise-practice/sls/" class="md-nav__link">
使用阿里云可观测统一存储SLS
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_7" >
<label class="md-nav__link" for="__nav_3_7" id="__nav_3_7_label" tabindex="0">
运维排障
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_7">
<span class="md-nav__icon md-icon"></span>
运维排障
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../troubleshot/log-collection/" class="md-nav__link">
日志采集快速排障指南
</a>
</li>
<li class="md-nav__item">
<a href="../../troubleshot/problems/" class="md-nav__link">
问题案例
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
组件配置
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
组件配置
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/global/args/" class="md-nav__link">
启动参数
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/global/var/" class="md-nav__link">
字段变量
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_4" >
<label class="md-nav__link" for="__nav_4_4" id="__nav_4_4_label" tabindex="0">
系统配置
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_4">
<span class="md-nav__icon md-icon"></span>
系统配置
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/global/monitor/" class="md-nav__link">
monitor
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/global/discovery/" class="md-nav__link">
discovery
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/global/reload/" class="md-nav__link">
reload
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/global/defaults/" class="md-nav__link">
defaults
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/global/http/" class="md-nav__link">
http
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_5" >
<label class="md-nav__link" for="__nav_4_5" id="__nav_4_5_label" tabindex="0">
Kubernetes CRD
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_5">
<span class="md-nav__icon md-icon"></span>
Kubernetes CRD
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/discovery/kubernetes/logconfig/" class="md-nav__link">
LogConfig
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/discovery/kubernetes/clusterlogconfig/" class="md-nav__link">
ClusterLogConfig
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/discovery/kubernetes/sink/" class="md-nav__link">
Sink
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/discovery/kubernetes/interceptors/" class="md-nav__link">
Interceptor
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_6" >
<label class="md-nav__link" for="__nav_4_6" id="__nav_4_6_label" tabindex="0">
Source
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_6">
<span class="md-nav__icon md-icon"></span>
Source
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/file/" class="md-nav__link">
file
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/kafka/" class="md-nav__link">
kafka
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/elasticsearch/" class="md-nav__link">
elasticsearch
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/kube-event/" class="md-nav__link">
kubeEvent
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/grpc/" class="md-nav__link">
grpc
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/prometheus-exporter/" class="md-nav__link">
prometheusExporter
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/unix/" class="md-nav__link">
unix
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/source/dev/" class="md-nav__link">
dev
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_7" >
<label class="md-nav__link" for="__nav_4_7" id="__nav_4_7_label" tabindex="0">
Sink
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_7">
<span class="md-nav__icon md-icon"></span>
Sink
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/elasticsearch/" class="md-nav__link">
elasticsearch
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/kafka/" class="md-nav__link">
kafka
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/franzkafka/" class="md-nav__link">
kafka(franz)
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/loki/" class="md-nav__link">
loki
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/pulsar/" class="md-nav__link">
pulsar
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/grpc/" class="md-nav__link">
grpc
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/file/" class="md-nav__link">
file
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/dev/" class="md-nav__link">
dev
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/sls/" class="md-nav__link">
sls
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/webhook/" class="md-nav__link">
alertwebhook
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/sink/zinc/" class="md-nav__link">
zinc
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8" >
<label class="md-nav__link" for="__nav_4_8" id="__nav_4_8_label" tabindex="0">
Interceptor
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8">
<span class="md-nav__icon md-icon"></span>
Interceptor
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/schema/" class="md-nav__link">
schema
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/transformer/" class="md-nav__link">
transformer
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/limit/" class="md-nav__link">
rateLimit
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/addk8smeta/" class="md-nav__link">
addK8sMeta
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/logalert/" class="md-nav__link">
logAlert
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/metrics/" class="md-nav__link">
metrics
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/retry/" class="md-nav__link">
retry
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/maxbytes/" class="md-nav__link">
maxbytes
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/interceptor/normalize/" class="md-nav__link">
normalize
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9" >
<label class="md-nav__link" for="__nav_4_9" id="__nav_4_9_label" tabindex="0">
Queue
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_9">
<span class="md-nav__icon md-icon"></span>
Queue
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/pipelines/queue/channel/" class="md-nav__link">
channel
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/pipelines/queue/memory/" class="md-nav__link">
memory
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_10" >
<label class="md-nav__link" for="__nav_4_10" id="__nav_4_10_label" tabindex="0">
Monitor
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_10">
<span class="md-nav__icon md-icon"></span>
Monitor
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/monitor/overview/" class="md-nav__link">
Overview
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/filesource/" class="md-nav__link">
filesource
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/filewatcher/" class="md-nav__link">
filewatcher
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/reload/" class="md-nav__link">
reload
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/sink/" class="md-nav__link">
sink
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/queue/" class="md-nav__link">
queue
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/logalert/" class="md-nav__link">
logAlert
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/sys/" class="md-nav__link">
sys
</a>
</li>
<li class="md-nav__item">
<a href="../../../reference/monitor/info/" class="md-nav__link">
info
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_11" >
<label class="md-nav__link" for="__nav_4_11" id="__nav_4_11_label" tabindex="0">
APIs
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_11">
<span class="md-nav__icon md-icon"></span>
APIs
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../reference/apis/ops/" class="md-nav__link">
内部运维类
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
开发手册
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
开发手册
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../developer-guide/contributing/" class="md-nav__link">
代码贡献
</a>
</li>
<li class="md-nav__item">
<a href="../../../developer-guide/development/" class="md-nav__link">
本地开发
</a>
</li>
<li class="md-nav__item">
<a href="../../../developer-guide/code/coding-guide/" class="md-nav__link">
代码规范
</a>
</li>
<li class="md-nav__item">
<a href="../../../developer-guide/component/component-guide/" class="md-nav__link">
组件开发
</a>
</li>
<li class="md-nav__item">
<a href="../../../developer-guide/release/" class="md-nav__link">
版本发布流程
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
Blog
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Blog
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../blog/" class="md-nav__link">
Posts
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="目录">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
目录
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#_1" class="md-nav__link">
一、那些年我们遇到的问题
</a>
<nav class="md-nav" aria-label="一、那些年我们遇到的问题">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
隔离性弱
</a>
</li>
<li class="md-nav__item">
<a href="#output" class="md-nav__link">
不支持多个Output
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
可扩展性有限
</a>
</li>
<li class="md-nav__item">
<a href="#_4" class="md-nav__link">
日志排障运维困境
</a>
</li>
<li class="md-nav__item">
<a href="#_5" class="md-nav__link">
性能不够
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#_6" class="md-nav__link">
二、为什么现有的其他开源日志项目不能满足需求?
</a>
</li>
<li class="md-nav__item">
<a href="#agent" class="md-nav__link">
三、什么才是我们理想中的日志Agent
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="loggie">Loggie的诞生背景<a class="headerlink" href="#loggie" title="Permanent link">&para;</a></h1>
<blockquote>
<p>为什么我们会选择研发Loggie当时的背景和原因是什么</p>
</blockquote>
<h2 id="_1">一、那些年我们遇到的问题<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<p>在研发Loggie之前我们的日志服务采集端都是使用Filebeat当时为什么选择Filebeat呢</p>
<p>Filebeat是Elastic公司的产品主打轻量级用于替换原有Logstash去实现日志采集的工作相比他们自家基于JRuby语言的LogstashFilebeat确实是相对轻量、资源占用少。和其他的开源日志采集Agent相比基于Golang开发的Filebeat也有很多优势。<br />
例如相比基于Java的Flume性能更好资源占用更少相比基于Ruby的Fluentd性能更好二次开发更方便相比基于C的Fluentd-bit功能更完善开发更友好。<br />
所以总体来说Filebeat是一个相对比较平衡的日志采集Agent这也是我们当初选择Filebeat作为默认日志采集Agent的原因。 </p>
<p>但是随着我们对Filebeat更加深度的使用在公司集团内部实践和外部客户的交付中也碰到了一些问题。 </p>
<p>由于Filebeat设计当初设计时为了区分于Logstash突出轻量级牺牲了很多可扩展性的设计。<br />
最明显的就是Filebeat只有一个Queue和一个Output。这样也导致了 </p>
<h3 id="_2">隔离性弱<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h3>
<p>由于所有的服务日志都会发送到全局唯一的Queue里导致服务日志数据混在一起在异常场景发生时无法有隔离性的保障。<br />
比如Filebeat全局的Queue堆积会导致节点的所有服务日志均无法发送如果我们对不同服务的日志的级别和要求不一样不管重要还是不重要的日志都会受到影响。 </p>
<h3 id="output">不支持多个Output<a class="headerlink" href="#output" title="Permanent link">&para;</a></h3>
<p>有一些场景下我们可能需要将不同服务的不同类型日志发送至不同的后端但Filebeat无法使用同一个Agent去发送到不同的Kafka集群只能在节点上部署多个Agent导致维护和资源成本上升。 </p>
<h3 id="_3">可扩展性有限<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h3>
<p>相比Logstash/Flume等Filebeat并非使用类似的input-&gt;queue-&gt;output的灵活多个pipeline设计在对于日志数据的处理/过滤/增强上依赖的是Filebeat有限的一些processor可扩展性不足。<br />
同时Filebeat也无法作为中转聚合使用在使用场景下大大受限需要额外引入其他组件。另外类似日志报警等场景Filebeat也无法满足。<br />
我们也尝试过定制化开发但Filebeat本身的架构设计上难以实现更多的扩展能力并且长期会带来升级与上游社区代码同步的问题。 </p>
<h3 id="_4">日志排障运维困境<a class="headerlink" href="#_4" title="Permanent link">&para;</a></h3>
<p>Filebeat的metrics比较有限很多时候我们想要排查诸如常见的日志是否有采集、采集的日志是否完整、发送是否有延迟等等排障场景Filebeat没有提供相应的功能十分影响线上的问题排查效率。而且Filebeat未提供Prometheus格式的监控指标需要额外注入exporter。 </p>
<h3 id="_5">性能不够<a class="headerlink" href="#_5" title="Permanent link">&para;</a></h3>
<p>虽然Filebeat性能尚可但是在我们的实际使用时遇到日志场景复杂、日志量大的情况时存在吞吐量的瓶颈无法满足实时性的需求。 </p>
<h2 id="_6">二、为什么现有的其他开源日志项目不能满足需求?<a class="headerlink" href="#_6" title="Permanent link">&para;</a></h2>
<p><strong>Fluentd/Fluent-bit</strong></p>
<p>Fluentd基于Ruby性能一般单线程Fluent-bit基于C对于我们的技术栈来说Ruby和C的维护和二次开发成本比较大。 </p>
<p><strong>Logstash</strong></p>
<p>Logstash性能较差基于JRuby的资源占用和损耗都比较大。</p>
<p><strong>Flume</strong></p>
<p>资源占用较大性能一般之前有内部部门使用过Flume对比的压测结论证实确实不如Filebeat。 </p>
<p>最重要的是目前所有的开源Agent均没有对K8s有很好的原生支持个别支持的也只能采集stdout的日志。
正是由于目前开源的Agent存在一些问题不能满足长期的需求所以我们决定开始自研。 </p>
<h2 id="agent">三、什么才是我们理想中的日志Agent<a class="headerlink" href="#agent" title="Permanent link">&para;</a></h2>
<p><strong>整体的目标:</strong>
高性能、资源占用低、高可用、稳定性强、可扩展性强、更适合云原生。</p>
<p><strong>性能与资源:</strong>
性能相同的情况下CPU比社区Filebeat大大降低吞吐量上限要远高于Filebeat。</p>
<p><strong>高可用、稳定性强:</strong>
资源隔离,作为基础设施一定要稳定可靠,同时默认支持大量监控指标,对常见的运维类问题有良好的支撑,减少运维负担。</p>
<p><strong>可扩展性:</strong><br />
整体设计上,方便用户扩展,实现过滤、路由、编码等能力。比如可以很快速的写一个处理逻辑,就可以进行数据处理。 </p>
<p>总结一下我们理想中的日志Agent是一个</p>
<ol>
<li>开箱即用:可快速部署容器化场景下的日志采集服务;有完善的文档与经验介绍;</li>
<li>高性能比原生Filebeat性能高资源占用少</li>
<li>高可靠:隔离性稳定性更强;默认集成更多的监控指标,方便运维排障;</li>
<li>可扩展:基于微内核的架构,用户可方便快捷的写自己的插件,满足各种定制化需求;</li>
</ol>
</article>
</div>
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var tab,labels=set.querySelector(".tabbed-labels");for(tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
回到页面顶部
</button>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright &copy; 2022 Loggie.io
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/loggie-io" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
<a href="https://hub.docker.com/r/loggieio/loggie" target="_blank" rel="noopener" title="hub.docker.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.annotate", "content.tabs.link", "navigation.instant", "navigation.sections", "search.highlight", "search.share", "search.suggest", "navigation.tabs", "navigation.tracking", "navigation.tabs.sticky", "navigation.top", "content.code.copy"], "search": "../../../assets/javascripts/workers/search.74e28a9f.min.js", "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}, "version": {"provider": "mike"}}</script>
<script src="../../../assets/javascripts/bundle.220ee61c.min.js"></script>
</body>
</html>