<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on Mi&amp;Bee Blog</title><link>/en/tags/linux/</link><description>Recent content in Linux on Mi&amp;Bee Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>蓝宝石的傻话</managingEditor><lastBuildDate>Thu, 21 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="/en/tags/linux/rss.xml" rel="self" type="application/rss+xml"/><item><title>From Compliance to Real-Time Defense: The Evolution of security-collector-exporter</title><link>/en/posts/telemetry/security-collector-exporter-from-compliance-to-runtime/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><guid>/en/posts/telemetry/security-collector-exporter-from-compliance-to-runtime/</guid><description>&lt;h2 id="the-origin-compliance-check-hassles"&gt;The Origin: Compliance Check Hassles&lt;/h2&gt;
&lt;p&gt;Anyone in operations knows there&amp;rsquo;s no escaping one hurdle for domestic servers: &lt;strong&gt;Cybersecurity Level Protection&lt;/strong&gt; (GB/T 22239-2019, commonly known as &amp;ldquo;Level Protection 2.0&amp;rdquo;). Whether you&amp;rsquo;re Level 3 or Level 2, auditors come asking about these things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is SSH root login disabled? Are password policies compliant?&lt;/li&gt;
&lt;li&gt;Is the firewall on? Is SELinux enforcing?&lt;/li&gt;
&lt;li&gt;Are there expired accounts? What&amp;rsquo;s the password validity period?&lt;/li&gt;
&lt;li&gt;Which ports are open? Are there high-risk services running?&lt;/li&gt;
&lt;li&gt;Are audit logs enabled? How long are they retained?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are plenty of compliance check tools on the market—search GitHub and you&amp;rsquo;ll find a bunch: &lt;code&gt;Golin&lt;/code&gt;, &lt;code&gt;EvaluationTools&lt;/code&gt;, &lt;code&gt;Linux-Security-Compliance-Check&lt;/code&gt;, etc. But they all share one limitation: &lt;strong&gt;Run once, get a report, done&lt;/strong&gt;. You check compliance today, and someone changes &lt;code&gt;sshd_config&lt;/code&gt; tomorrow, turns off the firewall, installs a backdoor service—you&amp;rsquo;d never know.&lt;/p&gt;</description></item><item><title>security-collector-exporter v0.3.0: Real-Time Security Monitoring with eBPF</title><link>/en/posts/telemetry/security-collector-exporter-ebpf-v030/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>/en/posts/telemetry/security-collector-exporter-ebpf-v030/</guid><description>&lt;h2 id="from-static-to-real-time"&gt;From Static to Real-Time&lt;/h2&gt;
&lt;p&gt;The previous article introduced &lt;a href="../security-collector-exporter-v010/"&gt;security-collector-exporter v0.1.0&lt;/a&gt; — turning Linux security configuration states into Prometheus metrics. But v0.1.0 is essentially &amp;ldquo;snapshot-based&amp;rdquo;: periodically reading &lt;code&gt;/etc&lt;/code&gt;, &lt;code&gt;/proc&lt;/code&gt;, capturing the static configuration at a single point in time.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s an area of security operations that snapshots can&amp;rsquo;t cover: &lt;strong&gt;real-time security events&lt;/strong&gt;. Someone running a reverse shell, a process escalating privileges, an abnormal network connection, someone loading a kernel module — these events happen and pass; you&amp;rsquo;d never see them at your next scrape.&lt;/p&gt;</description></item><item><title>security-collector-exporter: Monitoring Linux Security Auditing</title><link>/en/posts/telemetry/security-collector-exporter-v010/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>/en/posts/telemetry/security-collector-exporter-v010/</guid><description>&lt;h2 id="why-this-was-built"&gt;Why This Was Built&lt;/h2&gt;
&lt;p&gt;Anyone managing servers has probably had this experience: compliance audit comes, SSH into machines one by one to check—SSH config correct, SELinux enabled, firewall running, any expired accounts, password policies compliant. A few machines are fine; dozens or hundreds becomes purely manual grunt work.&lt;/p&gt;
&lt;p&gt;And the more painful part: none of this has continuous monitoring. You check compliance today, someone changes a config tomorrow, and you&amp;rsquo;d never know.&lt;/p&gt;</description></item><item><title>A Casual Talk About CPU Timing and Modern Operating Systems</title><link>/en/posts/telemetry/talk-about-cpu-timer/</link><pubDate>Fri, 20 Jan 2023 00:00:00 +0000</pubDate><guid>/en/posts/telemetry/talk-about-cpu-timer/</guid><description>&lt;h2 id="time-sharing-systems-and-linux"&gt;Time-Sharing Systems and Linux&lt;/h2&gt;
&lt;p&gt;First, let&amp;rsquo;s review time-sharing systems. The time-sharing system is a very important operating system concept that maximizes computer utilization and is a crucial means of implementing multi-program concurrency.&lt;/p&gt;
&lt;p&gt;The Linux kernel we use daily also adopts the time-sharing system philosophy, mainly reflected in the following aspects:&lt;/p&gt;
&lt;h3 id="time-slice"&gt;Time Slice:&lt;/h3&gt;
&lt;p&gt;Linux uses a time slice mechanism to divide CPU time. Each process can only execute for one time slice before yielding the CPU to other processes. This achieves CPU time sharing and fair allocation.&lt;/p&gt;</description></item><item><title>Linux High Availability and Load Balancing in Practice — From Keepalived to Performance Tuning</title><link>/en/archives/04-keepalived-and-haproxy/</link><pubDate>Tue, 19 Jun 2018 00:00:00 +0000</pubDate><guid>/en/archives/04-keepalived-and-haproxy/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In modern enterprise application architectures, high availability and load balancing are key technologies for ensuring stable system operation. This article provides a detailed introduction to achieving dual-machine hot standby with Keepalived, building internal network service load balancing with HAProxy, and resolving NIC soft interrupt issues for network performance optimization. Through real-world cases and detailed configuration explanations, this article helps readers understand the core principles and practical applications of these technologies.&lt;/p&gt;</description></item><item><title>Advanced Bash Programming Techniques — Handling Message Queue Backlog with the Producer-Consumer Pattern</title><link>/en/archives/08-bash-dev-query/</link><pubDate>Wed, 05 Jul 2017 00:00:00 +0000</pubDate><guid>/en/archives/08-bash-dev-query/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In message system operations, queue backlog is a common and tricky problem. Especially during malicious attacks or system anomalies, the delivery queue may accumulate a large number of messages, severely impacting normal system operation. Traditional single-process processing is not only inefficient but may also cause problems to worsen due to delayed handling.&lt;/p&gt;
&lt;p&gt;This article shares a set of advanced Bash programming techniques based on the producer-consumer pattern. Through core technologies including multi-process concurrency, pipe communication, and efficient awk parsing, we achieve fast and effective handling of message queue backlog issues. This solution has been validated in multiple production environments, capable of improving processing efficiency several times over while ensuring system stability.&lt;/p&gt;</description></item><item><title>ARM Board Notes and Experiences</title><link>/en/archives/arm-board-note/</link><pubDate>Mon, 27 Feb 2017 00:00:00 +0000</pubDate><guid>/en/archives/arm-board-note/</guid><description>&lt;h2 id="raspberry-pi"&gt;Raspberry Pi&lt;/h2&gt;
&lt;p&gt;I originally got into Raspberry Pi to set up a Docker cluster environment — mainly because they were cheap and power-efficient. Bought 3 Raspberry Pi 2 boards for around 600+ yuan. Back then, running Docker on ARM was still a novel concept.&lt;/p&gt;
&lt;p&gt;I used Raspberry Pi to build a Docker cluster environment, following the &lt;a href="http://blog.hypriot.com/"&gt;Hypriot&lt;/a&gt; blog.&lt;/p&gt;
&lt;p&gt;&lt;img src="/archives/images/RaspPi_cluster_only.jpg" alt=""&gt;&lt;/p&gt;
&lt;h2 id="cubieboard"&gt;CubieBoard&lt;/h2&gt;
&lt;p&gt;Getting Docker running on ARM was a major challenge back then — official support was poor, community documentation was sparse, and it required a lot of trial and error.&lt;/p&gt;</description></item><item><title>Monitoring Collection Notes</title><link>/en/posts/telemetry/monitor-experience/</link><pubDate>Mon, 20 Feb 2017 00:00:00 +0000</pubDate><guid>/en/posts/telemetry/monitor-experience/</guid><description>&lt;h2 id="mysql-monitoring"&gt;MySQL Monitoring&lt;/h2&gt;
&lt;h3 id="mysql-privilege-best-practices"&gt;MySQL Privilege Best Practices&lt;/h3&gt;
&lt;p&gt;Privilege control is primarily for security reasons, so follow these best practices:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Grant only the minimum privileges needed to prevent users from doing harm. For example, if a user only needs to query, just grant SELECT privileges, not UPDATE, INSERT, or DELETE.&lt;/li&gt;
&lt;li&gt;Restrict the login host when creating users, typically to a specific IP or internal network IP range.&lt;/li&gt;
&lt;li&gt;Delete users without passwords after initializing the database. The installation automatically creates some users with no passwords by default.&lt;/li&gt;
&lt;li&gt;Set passwords that meet complexity requirements for each user.&lt;/li&gt;
&lt;li&gt;Periodically clean up unnecessary users. Revoke privileges or delete users.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Example:&lt;/p&gt;</description></item><item><title>Boosting Development Efficiency — Linux Development Environment Setup Guide</title><link>/en/archives/09-zsh-tmux-vim-git/</link><pubDate>Wed, 07 Dec 2016 00:00:00 +0000</pubDate><guid>/en/archives/09-zsh-tmux-vim-git/</guid><description>&lt;p&gt;In modern software development, having an efficient and convenient development environment can significantly improve productivity. This article provides a detailed guide on setting up a complete development environment on Linux, including configuration and usage of the tmux terminal multiplexer, vim code editor, enhanced zsh shell, and git version control.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before you begin, make sure your system meets the following minimum requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;tmux&lt;/strong&gt;: version &amp;gt;= 2.1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vim&lt;/strong&gt;: version &amp;gt;= 7.3&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;zsh&lt;/strong&gt;: oh-my-zsh recommended&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;git&lt;/strong&gt;: latest version&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="1-tmux-terminal-multiplexer-configuration"&gt;1. TMUX Terminal Multiplexer Configuration&lt;/h2&gt;
&lt;p&gt;TMUX is an excellent terminal multiplexer that allows you to create multiple sessions and windows within a single terminal window, making it ideal for developers who need to handle multiple tasks simultaneously.&lt;/p&gt;</description></item></channel></rss>