Körülbelül öt éve szembesülök a naplók gyűjtésének feladataival, általában kis- és közepes méretű kódbázisokból. A naplók kódból történő elküldése nem probléma: a Java és a Go gyakorlatilag a dobozon kívül rendelkezik könyvtárakkal. De valamit gyűjteni, hogy összegyűjtsön őket, fejfájás. Megértem, hogy megoldható feladat (még a ChatGPT előtt, és most még ennél is több). Mindazonáltal minden naplózási rendszer elsősorban a nagyvállalati világra és annak követelményeire irányul, Inkább a kis csapatok vagy az egyéni fejlesztők, néhány bot, ragasztó, és egy "a tegnapi" határidő. r Az ELK elindítása minden alkalommal kihívást jelent számomra: egy csomó beállítás, egy nem triviális telepítés, és amikor belépsz a felhasználói felületre, a szemem vadul fut a lapokból. A Loki és a Graylog egy kicsit könnyebb, de még mindig sokkal több funkció van, mint amire szükségem van. Tehát körülbelül egy évvel ezelőtt úgy döntöttem, hogy saját naplógyűjtő rendszert hozok létre. Olyan, amely a lehető legegyszerűbben használható és elindítható. Egyetlen parancs segítségével telepíthető a szerveren, konfiguráció vagy felesleges lapok nélkül az interfészben. Így jött létre a Log Bull, és most nyílt forráskódú: naplógyűjtő rendszer Közepes méretű projektek. for developers Table of contents: A projektről Hogyan kell használni a Log Bull? Hogyan küldhetünk naplókat? Hogyan nézzük a naplókat? következtetés A projektről Log Bull egy naplógyűjtő rendszer, amelynek középpontjában a könnyű használat áll (minimális konfiguráció, minimális funkciók, zéró konfiguráció indításakor). A projekt teljesen nyílt forráskódú az Apache 2.0 licenc alatt. Fő prioritásom az volt, hogy olyan megoldást hozzak létre, amely lehetővé tenné a junior fejlesztők számára, hogy könnyen kitalálják, hogyan kell elindítani a rendszert, hogyan kell elküldeni a naplókat, és hogyan lehet megtekinteni őket körülbelül 15 perc alatt. Key features of the project: Egyetlen parancs segítségével telepíthető .sh script vagy Docker parancs segítségével. Több elszigetelt projektet hozhat létre naplók gyűjtésére (és hozzáadhatja a felhasználókat). Rendkívül egyszerű felület minimális konfigurációval, és egyáltalán nem szükséges konfiguráció indításakor (zero-config). Könyvtárak Python, Java, Go, JavaScript (TS \ NodeJS), PHP, C#. Rust és Ruby tervezett. Ingyenes, nyílt forráskódú és önkiszolgáló. Nem kell ismernie a LogQL-t, a Kibana DSL-t vagy más lekérdezési nyelveket a naplók kereséséhez. https://www.youtube.com/watch?v=8H8jF8nVzJE&embedable=true A projekt a Go-ban készült és az OpenSearch-en épült. A projekt honlapja - https://logbull.com GitHub projekt - https://github.com/logbull/logbull P.S. Ha hasznosnak találja a projektet, és van egy GitHub fiókja, kérjük, adjon neki egy csillagot ⭐️. Az első csillagokat nehéz összegyűjteni. Hogyan kell használni a Log Bull? A projekt telepítésének három módja van: egy .sh script (amelyet ajánlok), a Docker és a Docker Compose segítségével. Method 1: Installation via script A szkript telepíti a Docker-t, helyezi a projektet az /opt/logbull mappába, és konfigurálja az autostartot a rendszer újraindításakor. sudo apt-get install -y curl && \ sudo curl -sSL https://raw.githubusercontent.com/logbull/logbull/main/install-logbull.sh \ | sudo bash Method 2: Launch via Docker Compose Hozzon létre egy docker-compose.yml fájlt a következő tartalommal: services: logbull: container_name: logbull image: logbull/logbull:latest ports: - "4005:4005" volumes: - ./logbull-data:/logbull-data restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:4005/api/v1/system/health"] interval: 5s timeout: 5s retries: 30 Végezze el a parancsot A rendszer a 4005-ös porton indul el. docker compose up -d Method 3: Launch via Docker command Végezze el a következő parancsot a terminálban (a rendszer a 4005-ös porton is elindul): docker run -d \ --name logbull \ -p 4005:4005 \ -v ./logbull-data:/logbull-data \ --restart unless-stopped \ --health-cmd="curl -f http://localhost:4005/api/v1/system/health || exit 1" \ --health-interval=5s \ --health-retries=30 \ logbull/logbull:latest Hogyan küldhetünk naplókat? Ezért hoztam létre könyvtárakat a legtöbb népszerű fejlesztési nyelvre. Ezt azzal az elképzeléssel csináltam, hogy a Log Bull csatlakoztatható bármely népszerű könyvtárhoz processzorként anélkül, hogy megváltoztatná az aktuális kódbázist. Javasoljuk, hogy ellenőrizze , mert van egy interaktív panel a nyelv kiválasztásához: Példák a weboldalon Először is telepítenie kell a könyvtárat (bár HTTP-n keresztül is elküldheti; vannak példák a cURL-re): pip install logbull Küldje el a kódot: import time from logbull import LogBullLogger # Initialize logger logger = LogBullLogger( host="http://LOGBULL_HOST", project_id="LOGBULL_PROJECT_ID", ) # Log messages (printed to console AND sent to LogBull) logger.info("User logged in successfully", fields={ "user_id": "12345", "username": "john_doe", "ip": "192.168.1.100" }) # With context session_logger = logger.with_context({ "session_id": "sess_abc123", "user_id": "user_456" }) session_logger.info("Processing request", fields={ "action": "purchase" }) # Ensure all logs are sent before exiting logger.flush() time.sleep(5) Hogyan nézzük a naplókat? Az összes napló azonnal megjelenik a fő képernyőn. Csökkentse az üzenetek méretét (a sort ~50-100 karakterre vágva). Bővítse a küldött mezők listáját (user_id, order_id stb.). Kattintson egy mezőre, és adja hozzá a szűrőhöz. Keresési naplók feltételekkel: A feltételek csoportjait is gyűjtheti (például az üzenet tartalmaz bizonyos szöveget, de kizár egy adott kiszolgáló IP-címét). következtetés Remélem, hogy a naplógyűjtő rendszerem hasznos lesz azoknak a fejlesztőknek, akik nem akarnak vagy nem tudnak (a korlátozott projektforrások miatt) „súlyos” megoldásokat végrehajtani, mint például az ELK. Már használom a Log Bullot a gyártási projektekben, és minden jól megy. . A GitHub