開源免費日志服務ELK Syack代替syslog

一、ELK Stack 采集 syslog 日志的主要方式

通常,ELK Stack 使用 Logstash 或者 Filebeat 來采集 syslog 日志。 Beats 通常更輕量級,適合作為代理部署在各個日志源服務器上,而 Logstash 則功能更強大,可以進行更復雜的日志處理和轉換。 選擇 Logstash 還是 Filebeat 取決于你的具體需求和環境規模。

1、使用 Logstash 采集 syslog

Logstash 擁有專門的 syslog 輸入插件 (input plugin),可以直接監聽 syslog 協議傳輸的日志消息。 這是采集 syslog 日志最常見和推薦的方式。

  • Logstash syslog 輸入插件的優勢:

    • 直接監聽 syslog 協議: 無需將 syslog 日志寫入文件,直接從網絡端口接收 syslog 消息,實時性更高。
    • 支持 UDP 和 TCP 協議: 兼容常見的 syslog 傳輸協議。
    • 內置 Grok 模式: syslog 輸入插件通常會配合 grok 過濾器插件一起使用,方便解析 syslog 消息的結構化字段。
    • 性能良好: Logstash 可以高效地處理大量的 syslog 消息。
  • Logstash syslog 輸入插件配置要點:

    • port: 指定 Logstash 監聽的端口,syslog 默認端口通常是 514。 需要確保防火墻允許流量通過該端口。
    • protocol: 指定 syslog 協議,可以是 udptcp。 syslog 默認協議通常是 UDP,但 TCP 更可靠。
    • type: 為 syslog 日志指定一個類型 (type),方便在后續的 Filter 和 Kibana 中識別和處理 syslog 日志。 例如可以設置為 "syslog"
    • grok_pattern: (可選但強烈建議) 使用 Grok 模式來解析 syslog 消息內容,提取有用的字段,例如時間戳、主機名、進程名、日志級別、消息內容等。 常用的 Grok 模式包括 SYSLOGLINE (用于通用 syslog 格式) 和 CISCOSYSLOGLINE (用于 Cisco 設備 syslog 格式)。
  • Logstash syslog 輸入插件配置示例 (logstash.conf):

    假設我們要監聽 UDP 端口 514,采集 syslog 日志,并使用 SYSLOGLINE Grok 模式解析通用 syslog 格式的日志。

    input {syslog {port => 514protocol => "udp"type => "syslog"}
    }filter {grok {match => { "message" => "%{SYSLOGLINE}" }}date {match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ] # 匹配 syslog 常見的時間戳格式remove_field => ["timestamp"] # 刪除原始的 timestamp 字段,使用 @timestamp 作為標準時間字段}
    }output {elasticsearch {hosts => ["http://<Elasticsearch服務器IP>:9200"] # 替換為你的 Elasticsearch 服務器地址index => "syslog-%{+YYYY.MM.dd}" #  索引名稱,按天創建索引}stdout { codec => rubydebug } #  同時輸出到控制臺,方便調試
    }
    

    配置說明:

    • input syslog: 配置 syslog 輸入插件,監聽 UDP 端口 514,類型設置為 "syslog"。
    • filter grok: 使用 grok 過濾器,match 定義匹配規則,"message" => "%{SYSLOGLINE}" 表示對 message 字段(syslog 消息內容)應用 SYSLOGLINE Grok 模式進行解析。 SYSLOGLINE 是 Logstash 內置的 Grok 模式,用于解析通用的 syslog 格式。 你可以根據實際的 syslog 日志格式調整 Grok 模式,或者自定義 Grok 模式。
    • filter date: 由于 syslog 日志的時間戳格式可能與 Elasticsearch 默認的時間格式不同,使用 date 過濾器來解析時間戳字段。 match 定義要匹配的字段和時間格式。 target => "@timestamp" 將解析后的時間戳設置為 @timestamp 字段,這是 Elasticsearch 標準的時間字段。
    • output elasticsearch: 配置 Elasticsearch 輸出插件,將解析后的 syslog 日志輸出到 Elasticsearch 中。 hosts 指定 Elasticsearch 服務器地址,index 定義索引名稱,使用日期動態索引 syslog-%{+YYYY.MM.dd},方便按日期管理索引。
    • output stdout: stdout 輸出插件用于將日志輸出到控制臺,codec => rubydebug 以易于閱讀的 Rubydebug 格式輸出,方便調試 Logstash 配置。 生產環境中可以移除 stdout 輸出。
  • 配置 syslog 發送端 (設備或服務器):

    你需要配置你的 syslog 發送端設備或服務器,將 syslog 日志發送到 Logstash 服務器的 IP 地址和配置的端口 (例如 UDP 514)。 具體的配置方法取決于你的設備或操作系統的類型。 例如,在 Linux 系統中,可以配置 rsyslogsyslog-ng 服務將日志轉發到遠程 Logstash 服務器。 網絡設備 (如路由器、交換機、防火墻) 通常也有 syslog 輸出配置選項。

2、使用 Filebeat 采集 syslog (讀取 syslog 文件)

如果你的 syslog 服務配置為將日志寫入本地文件 (例如 Linux 系統中常見的 /var/log/messages/var/log/syslog),你可以使用 Filebeat 來讀取這些 syslog 文件,并將日志發送到 Logstash 或 Elasticsearch。

  • Filebeat log 輸入配置要點:

    • paths: 指定要監控的 syslog 日志文件路徑,可以使用通配符 *
    • output.logstashoutput.elasticsearch: 配置 Filebeat 的輸出目的地,可以將數據直接發送到 Elasticsearch,也可以發送到 Logstash 進行更復雜的處理。
    • processors: Filebeat 提供了 processors 功能,可以在數據發送之前進行一些簡單的處理,例如使用 decode_cef 處理器解析 CEF 格式的 syslog 日志,或者使用 grok 處理器進行簡單的 Grok 解析。
  • Filebeat 配置文件示例 (filebeat.yml):

    假設我們要采集 /var/log/syslog 文件中的 syslog 日志,并將數據發送到 Logstash 進行進一步處理。

    filebeat.inputs:
    - type: logenabled: truepaths:- "/var/log/syslog"tags: ["syslog"] # 添加 tag,方便在 Logstash 中識別 syslog 日志output.logstash:hosts: ["<Logstash服務器IP>:5044"] # 替換為你的 Logstash 服務器地址和 Beats 輸入端口 (默認 5044)
    

    Logstash Pipeline 配置 (logstash.conf):

    在 Logstash 端,你需要配置 Beats 輸入插件 (beats input plugin) 來接收 Filebeat 發送的數據,并進行后續處理 (例如 Grok 解析) 和輸出到 Elasticsearch。

    input {beats {port => 5044 # Beats 默認輸出端口}
    }filter {if "syslog" in [tags] { #  根據 Filebeat 添加的 tag 判斷是否為 syslog 日志grok {match => { "message" => "%{SYSLOGLINE}" }}date {match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]remove_field => ["timestamp"]}}
    }output {elasticsearch {hosts => ["http://<Elasticsearch服務器IP>:9200"]index => "filebeat-syslog-%{+YYYY.MM.dd}" #  Filebeat 采集的 syslog 日志索引}stdout { codec => rubydebug }
    }
    

    配置說明:

    • Filebeat 配置:
      • filebeat.inputs: 配置 log 輸入類型,啟用并指定要監控的 syslog 文件路徑 /var/log/syslog
      • tags: ["syslog"]: 為采集到的日志添加 syslog 標簽,方便在 Logstash 中識別和過濾。
      • output.logstash: 配置輸出到 Logstash,指定 Logstash 服務器地址和 Beats 輸入端口。
    • Logstash 配置:
      • input beats: 配置 beats 輸入插件,監聽 Beats 默認的 5044 端口,接收 Filebeat 發送的數據。
      • filter: 使用 if "syslog" in [tags] 判斷是否為 Filebeat 發送的 syslog 日志 (通過檢查 tags 字段)。 如果是,則應用 Grok 和 Date 過濾器進行解析和時間戳處理。
      • output elasticsearch: 配置 Elasticsearch 輸出,索引名稱可以設置為 filebeat-syslog-%{+YYYY.MM.dd},以區分 Logstash 直接監聽 syslog 端口采集的日志。

3、直接使用 Beats 模塊 (System 模塊)

Beats (尤其是 Filebeat 和 Metricbeat) 提供了 模塊 (Modules) 功能,預配置了采集特定類型日志和指標的方案,簡化了配置。 Filebeat 的 System 模塊 就包含了采集 syslog 日志的配置。

  • 啟用 Filebeat System 模塊:

    在 Filebeat 目錄下,執行命令啟用 System 模塊:

    ./filebeat modules enable system
    
  • 查看 System 模塊配置:

    啟用模塊后,Filebeat 的配置文件 modules.d/system.yml 會被啟用 (取消注釋),你可以查看和修改該文件中的配置。 System 模塊默認會采集 /var/log/syslog/var/log/auth.log 等系統日志文件。

  • Filebeat System 模塊 syslog 配置 (modules.d/system.yml 示例):

    - module: systemsyslog:enabled: truevar.paths: ["/var/log/syslog*", "/var/log/messages*"]  # 默認監控的 syslog 文件路徑auth:enabled: truevar.paths: ["/var/log/auth.log*", "/var/log/secure*"]  # 默認監控的 auth 日志文件路徑
    
  • 輸出配置 (filebeat.yml):

    配置 Filebeat 的輸出,例如直接輸出到 Elasticsearch:

    output.elasticsearch:hosts: ["http://<Elasticsearch服務器IP>:9200"]# username: "filebeat_internal"# password: "YOUR_PASSWORD"
    
  • 啟動 Filebeat:

    啟動 Filebeat 后,System 模塊會自動開始采集配置的 syslog 日志文件,并發送到 Elasticsearch。

  • Kibana Dashboard:

    Filebeat System 模塊還提供預置的 Kibana Dashboards,可以方便地可視化系統日志數據。 在首次啟動 Filebeat 或執行 ./filebeat setup 命令時,Filebeat 會將這些 Dashboards 導入到 Kibana 中。

4、選擇哪種方式?

  • 推薦使用 Logstash syslog 輸入插件 直接監聽 syslog 端口來采集 syslog 日志,特別是當你需要實時采集大量的 syslog 數據,并且需要對 syslog 數據進行復雜的解析和轉換時。 這種方式性能高,實時性好。
  • 如果你的 syslog 服務已經配置為將日志寫入文件,并且只需要進行簡單的采集,可以使用 Filebeat 讀取 syslog 文件并發送到 Logstash 或 Elasticsearch。 Filebeat 更輕量級,資源消耗更低。
  • 如果你的需求比較簡單,只需要采集常見的 Linux 系統 syslog 日志,并且希望快速上手,可以使用 Filebeat System 模塊。 System 模塊配置簡單,且提供預置的 Kibana Dashboards。

ELK Stack 能夠非常有效地采集 syslog 中的日志,并且提供了多種靈活的方式來滿足不同的需求。 你可以根據你的實際場景、數據量、性能要求以及對日志處理的復雜程度,選擇合適的采集方式(Logstash syslog 輸入插件、Filebeat 讀取 syslog 文件或 Filebeat System 模塊)。 無論選擇哪種方式,ELK Stack 強大的搜索、分析和可視化能力都能幫助你更好地管理和分析 syslog 日志數據,從而進行故障排查、安全分析、性能監控等。

二、深入理解直接使用Logstash監聽syslog協議

直接使用 Logstash 的 syslog 輸入插件來監聽 syslog 協議,通常情況下是不需要在運行 Logstash 的服務器上額外安裝傳統的 syslog 服務(例如 rsyslogsyslog-ng)的。

下面詳細解釋一下原因:

1、Logstash syslog 輸入插件的功能

  • 自帶 syslog 服務器功能: Logstash 的 syslog 輸入插件本身就具備 syslog 服務器 的功能。 它能夠監聽指定的網絡端口(例如 UDP 端口 514 或 TCP 端口 514),并按照 syslog 協議規范接收來自網絡中其他設備或系統發送的 syslog 消息。

  • 獨立監聽: 這個插件是 Logstash 自身的功能模塊,它直接在 Logstash 進程內部運行,監聽網絡端口,接收和處理 syslog 數據流。 它 不依賴于 操作系統層面安裝的 syslog 服務(如 rsyslogsyslog-ng)來完成接收 syslog 消息的任務。

2、傳統 syslog 服務 (rsyslog, syslog-ng) 的角色

  • 本地日志管理和轉發: 傳統的 syslog 服務(例如 rsyslogsyslog-ng)的主要職責是在 本地系統 上:

    • 接收本地程序生成的日志: 收集運行在同一臺服務器上的應用程序和系統組件產生的日志。
    • 本地日志存儲: 將日志寫入本地文件,進行本地的日志存儲和管理。
    • 日志轉發: 可以將本地收集到的日志 轉發遠程的 syslog 服務器
  • 作為 syslog 客戶端: 當需要將一臺服務器或設備上的本地日志發送到遠程 ELK Stack 進行集中管理和分析時,傳統 syslog 服務通常 扮演 syslog 客戶端的角色,負責將本地日志通過 syslog 協議 發送 到 Logstash 服務器。

3、Logstash syslog 輸入插件 vs. 傳統 syslog 服務

  • 功能側重點不同:

    • Logstash syslog 輸入插件: 專注于 接收和解析 來自 網絡 的 syslog 消息,目的是將這些消息 導入到 ELK Stack 進行進一步處理和分析。 它主要關注 遠程日志的采集
    • 傳統 syslog 服務 (rsyslog, syslog-ng): 側重于 本地日志的收集、存儲和管理,以及 日志轉發 功能。 它主要關注 本地日志的管理和遠程日志的發送
  • 是否需要安裝:

    • Logstash syslog 輸入插件: 不需要額外安裝 syslog 服務。 只要你的 Logstash 實例運行起來,配置了 syslog 輸入插件,它就能直接監聽端口接收 syslog 消息。
    • 傳統 syslog 服務 (rsyslog, syslog-ng): 通常 預裝在大多數 Linux 系統中 (例如 rsyslog 是很多發行版的默認 syslog 服務)。 如果你需要在 本地 收集和管理日志,或者需要將 本地日志轉發 到遠程服務器,那么就需要配置和使用這些傳統的 syslog 服務。

4、應用場景舉例說明

  1. 集中采集網絡設備 Syslog 到 ELK Stack

    • 場景:你需要將網絡設備(例如路由器、交換機、防火墻)產生的 syslog 日志集中采集到 ELK Stack 進行安全分析和監控。
    • 部署方式:
      • 在 ELK Stack 服務器上運行 Logstash,并配置 syslog 輸入插件監聽 UDP 端口 514。
      • 在網絡設備上配置 syslog 輸出,將 syslog 日志 發送到 Logstash 服務器的 IP 地址和端口 514
      • 不需要 在 Logstash 服務器上安裝 rsyslogsyslog-ng
    • 工作流程:網絡設備直接將 syslog 消息發送給 Logstash 服務器的 514 端口,Logstash syslog 輸入插件接收并處理這些消息,然后導入 ELK Stack。
  2. 服務器本地日志采集并轉發到 ELK Stack

    • 場景:你需要采集 Linux 服務器自身的系統日志 (例如 /var/log/syslog, /var/log/messages),并發送到 ELK Stack 進行分析。
    • 部署方式 (方案一:使用 Logstash syslog 輸入插件):
      • 在 ELK Stack 服務器上運行 Logstash,配置 syslog 輸入插件監聽 UDP 端口 514。
      • 在 Linux 服務器上,配置 本地的 rsyslogsyslog-ng 服務,將其配置為 syslog 客戶端,將本地系統日志 轉發 到 Logstash 服務器的 IP 地址和端口 514。
      • 需要 本地服務器運行 rsyslogsyslog-ng 作為 syslog 客戶端來轉發日志。 不需要 在 Logstash 服務器上額外安裝 syslog 服務,因為 Logstash 已經自帶 syslog 服務器功能。
    • 部署方式 (方案二:使用 Filebeat 讀取日志文件):
      • 在 Linux 服務器上安裝 Filebeat。
      • 配置 Filebeat 讀取本地的系統日志文件 (例如 /var/log/syslog)。
      • 配置 Filebeat 將日志 直接發送到 Elasticsearch 或 Logstash
      • 在 ELK Stack 服務器上運行 Elasticsearch 和 Kibana (如果 Filebeat 直接發送到 Elasticsearch) 或 Logstash (如果 Filebeat 發送到 Logstash 進行處理)。
      • 不需要 在 ELK Stack 服務器上安裝 syslog 服務,也 不需要 在 Linux 服務器上配置 syslog 服務進行轉發(Filebeat 直接讀取日志文件)。

5、總結

  • Logstash 的 syslog 輸入插件 提供了 內置的 syslog 服務器功能,可以獨立接收和處理 syslog 消息, 無需依賴 操作系統層面的傳統 syslog 服務來接收 syslog 數據。
  • 傳統 syslog 服務 (rsyslog, syslog-ng) 在 ELK Stack 場景中,通常作為 syslog 客戶端 的角色出現,負責將 本地日志轉發 到遠程的 Logstash 服務器,或者用于 本地日志的收集和管理

因此,如果你只是想使用 ELK Stack 直接監聽 來自網絡設備的 syslog 協議數據,那么 不需要 在運行 Logstash 的服務器上安裝 rsyslogsyslog-ng。 Logstash 的 syslog 輸入插件已經足夠勝任 syslog 服務器的角色了。 你只需要確保 Logstash 服務器的網絡端口(例如 514)對外開放,并且網絡設備配置正確,將 syslog 日志發送到 Logstash 服務器即可。

三、示例:IBM ISVA配置使用ELK Stack

當需要在 IBM ISVA 或其他支持 syslog 輸出的設備上配置日志目標時,您可以將運行 Logstash 的服務器當作一個 syslog 服務器來對待。

以下是如何實現這個目標的核心思路和步驟:

1、配置 Logstash 作為 Syslog 服務器 (監聽 Syslog 接口):

  • 使用 syslog 輸入插件: 在您的 Logstash 配置文件中,使用 syslog 輸入插件來定義 Logstash 監聽 syslog 協議的接口。

  • 指定監聽端口和協議:syslog 輸入插件的配置中,您需要指定 Logstash 監聽的端口(通常是 UDP 端口 514,或者 TCP 端口 514,取決于您的需求和 IBM ISVA 的配置選項)以及協議類型 (UDP 或 TCP)。

  • 示例 Logstash 配置 (片段,input 部分):

    input {syslog {port => 514           # 監聽 514 端口 (默認 syslog UDP 端口)protocol => "udp"     # 使用 UDP 協議 (如果 IBM ISVA 也配置為 UDP)type => "isva-syslog" # 為來自 ISVA 的 syslog 日志添加類型標簽,方便后續處理}
    }
    
    • 重要: 請確保運行 Logstash 的服務器的防火墻允許來自 IBM ISVA 的 syslog 流量通過您配置的端口 (例如 UDP 514)。

2、配置 IBM ISVA 的 Syslog 輸出:

  • 找到 Syslog 配置選項: 在 IBM ISVA 的管理界面或配置工具中,找到關于日志記錄或事件輸出的相關配置,通常會有一個配置 syslog 服務器的選項。 具體位置和名稱可能因 ISVA 版本而異,但通常會在系統設置、日志設置、事件轉發等部分。

  • 配置 Syslog 服務器地址: 在 ISVA 的 syslog 配置中,您需要指定:

    • Syslog 服務器 IP 地址: 填寫運行 Logstash 的服務器的 IP 地址。
    • Syslog 服務器端口: 填寫您在 Logstash syslog 輸入插件中配置的端口 (例如 514)。
    • Syslog 協議: 選擇與 Logstash 配置一致的協議類型 (UDP 或 TCP)。 如果可以選擇,TCP 通常更可靠,但 UDP 更常用在 syslog 場景中。
    • Syslog 格式 (可選): 某些設備可能允許您選擇 syslog 輸出的格式(例如 RFC3164, RFC5424 等)。 通常默認格式即可,Logstash 的 syslog 輸入插件能夠處理多種常見的 syslog 格式。
    • 要發送的日志類型/事件: IBM ISVA 通常會允許您選擇要通過 syslog 發送的日志類型或事件級別,例如審計日志、系統日志、安全事件等。 根據您的需求選擇要發送的日志類型。
  • 配置示例 (概念性,具體界面和選項以 IBM ISVA 文檔為準):

    假設在 ISVA 管理界面中找到 syslog 配置部分,您可能需要填寫類似以下的信息:

    • 啟用 Syslog 輸出: [復選框] (勾選以啟用)
    • Syslog 服務器 IP 地址: [運行 Logstash 的服務器 IP 地址] (例如 192.168.1.100)
    • Syslog 服務器端口: [514]
    • Syslog 協議: [UDP] (或 [TCP],如果 Logstash 配置為 TCP)
    • Syslog 格式: [RFC3164] (或其他默認格式)
    • 發送的日志類型: [審計日志], [系統事件], [安全事件] (根據您的需求選擇)

?

3、配置 Logstash Pipeline 后續處理 (Filter 和 Output):

  • Filter 插件 (可選但推薦): 您可能需要使用 Logstash 的 Filter 插件,例如 grok 插件,來解析來自 IBM ISVA 的 syslog 日志消息,提取結構化字段,例如時間戳、事件類型、用戶、源 IP 地址等,以便更好地進行搜索、分析和可視化。

  • Output 插件 (必須): 配置 Logstash 的 Output 插件,將接收和處理后的 IBM ISVA syslog 日志數據輸出到 Elasticsearch 中進行存儲和索引。 通常使用 elasticsearch 輸出插件。

  • 示例 Logstash 配置 (片段,filteroutput 部分 - 可能需要根據 ISVA 日志格式調整):

    filter {if [type] == "isva-syslog" { # 針對 ISVA syslog 日志進行處理grok {#  這里需要根據 IBM ISVA syslog 的實際日志格式編寫 Grok 表達式#  示例 (可能需要調整):  %{SYSLOGTIMESTAMP:syslog_timestamp} %{HOSTNAME:isva_hostname} %{GREEDYDATA:isva_message}match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{HOSTNAME:isva_hostname} %{GREEDYDATA:isva_message}" }}date {match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ] # 解析 syslog 時間戳target => "@timestamp" # 將解析后的時間戳設置為標準 @timestamp 字段remove_field => ["syslog_timestamp"] # 刪除臨時字段}}
    }output {elasticsearch {hosts => ["http://<Elasticsearch服務器IP>:9200"] # 替換為您的 Elasticsearch 服務器地址index => "isva-syslog-%{+YYYY.MM.dd}" #  為 ISVA syslog 日志創建獨立的索引}stdout { codec => rubydebug } #  方便調試,生產環境可以移除
    }
    

4、在 Kibana 中可視化和分析 IBM ISVA Syslog 日志:

  • 創建 Index Pattern: 在 Kibana 中創建 Index Pattern,例如 isva-syslog-*,指向您在 Logstash 配置中定義的 Elasticsearch 索引。
  • 使用 Discover 和 Visualize: 使用 Kibana 的 Discover 功能探索和搜索來自 IBM ISVA 的 syslog 日志數據。 創建各種可視化圖表 (例如儀表盤) 來監控和分析 ISVA 的運行狀態、安全事件等。

5、總結:

通過以上配置,您就可以成功地將 ELK Stack (Logstash) 作為 syslog 服務器使用,直接接收來自 IBM ISVA (或其他支持 syslog 輸出的設備) 的日志,并利用 ELK Stack 強大的功能進行日志管理、分析和可視化。 這種方式非常靈活且高效,能夠幫助您集中監控和分析各種來源的日志數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897648.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897648.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897648.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單片機設計暖腳器研究

標題:單片機設計暖腳器研究 內容:1.摘要 本文聚焦于基于單片機設計暖腳器的研究。背景方面&#xff0c;在寒冷季節&#xff0c;暖腳器能有效改善腳部寒冷狀況&#xff0c;提升人們的舒適度&#xff0c;但傳統暖腳器存在功能單一、溫控不準確等問題。目的是設計一款智能、高效且…

藍橋杯省賽真題C++B組2024-握手問題

一、題目 【問題描述】 小藍組織了一場算法交流會議&#xff0c;總共有 50 人參加了本次會議。在會議上&#xff0c;大家進行了握手交流。按照慣例他們每個人都要與除自己以外的其他所有人進行一次握手(且僅有一次)。但有 7 個人&#xff0c;這 7 人彼此之間沒有進行握手(但這…

C#+AForge 實現視頻錄制

C#AForge 實現視頻錄制 ? 在C#中&#xff0c;使用AForge 庫實現視頻錄制功能是一個比較直接的過程。AForge 是一個開源的.NET框架&#xff0c;提供了許多用于處理圖像和視頻的類庫。 開發步驟 安裝AForge庫 ? 首先&#xff0c;確保你的項目中已經安裝了 AForge.Video和AFo…

PHP框架加載不上.env文件中的變量

以lumen5.5框架為例&#xff0c;根目錄中bootstrap文件夾下的app.php文件中 (new Dotenv\Dotenv(__DIR__./../))->load(); 是讀取所有.env中的文件的&#xff0c;這個是正常的&#xff0c;但是在代碼中的任何位置或者在config目錄下的databases.php里&#xff0c;代碼如…

21.Linux 線程庫的使用與封裝

在linux內核中并沒有線程的概念&#xff0c;只有輕量級進程LWP的概念&#xff0c;linux下的線程都是是由LWP進行模擬實現的。因此linux操作系統中不會提供線程的相關接口&#xff0c;只會提供輕量級線程的接口&#xff08;如vfork&#xff0c;clone等&#xff09;。但是在我們的…

Aliyun CTF 2025 web 復現

文章目錄 ezoj打卡OKoffens1veFakejump server ezoj 進來一看是算法題&#xff0c;先做了試試看,gpt寫了一個高效代碼通過了 通過后沒看見啥&#xff0c;根據頁面底部提示去/source看到源代碼&#xff0c;沒啥思路&#xff0c;直接看wp吧&#xff0c;跟算法題沒啥關系,關鍵是去…

《鴻蒙系統下AI模型訓練加速:時間成本的深度剖析與優化策略》

在當今數字化浪潮中&#xff0c;鴻蒙系統憑借其獨特的分布式架構與強大的生態潛力&#xff0c;為人工智能的發展注入了新的活力。隨著AI應用在鴻蒙系統上的日益普及&#xff0c;如何有效降低模型訓練的時間成本&#xff0c;成為了開發者與研究者們亟待攻克的關鍵課題。這不僅關…

Git使用(一)--如何在 Windows 上安裝 Git:詳細步驟指南

如果你想在 Windows 機器上安裝 Git&#xff0c;可以按照以下詳細指南進行操作。 第一步&#xff1a;下載 Git 可通過官網下載 適用于 Windows 的 Git 最新版本。 如果下載速度較慢&#xff0c;可以通過下面提供的百度網盤 鏈接下載安裝包&#xff0c; https://git-scm.com/d…

基于Prometheus+Grafana的Deepseek性能監控實戰

文章目錄 1. 為什么需要專門的大模型監控?2. 技術棧組成2.1 vLLM(推理引擎層)2.2 Prometheus(監控采集層)2.3 Grafana(數據可視化平臺)3. 監控系統架構4. 實施步驟4.1 啟動DeepSeek-R1模型4.2 部署 Prometheus4.2.1 拉取鏡像4.2.2 編寫配置文件4.2.3 啟動容器4.3 部署 G…

本地Git倉庫搭建(DevStar)與Git基本命令

本地Git倉庫搭建&#xff08;DevStar&#xff09;與Git基本命令 實驗環境搭建平臺Git基本命令的使用本地倉庫的創建代碼提交代碼合并版本發布 總結 實驗環境 搭建平臺 按照DevStar的Github倉庫要求&#xff0c;在終端中執行下列命令&#xff0c;即可成功安裝DevStar到本地部署…

stm32 藍橋杯 物聯網 獨立鍵盤的使用

在藍橋杯物聯網平臺里面&#xff0c;有5個外接設備&#xff0c;其中有一個就是6個獨立按鍵。首先&#xff0c;我們先看一下按鍵有關的電路圖。 電路圖與cubemx設定 由圖可見&#xff0c;獨立鍵盤組由兩行三列構成&#xff0c;我們通過行列來鎖定要訪問的獨立按鍵在哪。ROW1掛…

set_clock_groups

一、命令參數與工具處理邏輯 核心參數定義 參數定義工具行為工具兼容性-asynchronous完全異步時鐘組&#xff0c;無任何相位或頻率關系&#xff08;如獨立晶振、不同時鐘樹&#xff09;工具完全禁用組間路徑的時序分析&#xff0c;但需用戶自行處理跨時鐘域&#xff08;CDC&a…

工作記錄 2017-01-06

工作記錄 2017-01-06 序號 工作 相關人員 1 協助BPO進行Billing的工作。 修改CSV、EDI837的導入。 修改郵件上的問題。 更新RD服務器。 郝 修改的問題&#xff1a; 1、 In “Full Job Summary” (patient info.), sometime, the Visit->Facility is missed, then …

Adaptive AUTOSAR UCM模塊——快速入門

Adaptive AUTOSAR中的UCM模塊介紹 概述 Adaptive AUTOSAR(AUTomotive Open System ARchitecture)是一個開放的行業標準,旨在為現代汽車電子系統提供一個靈活且可擴展的軟件框架。在這個框架中,更新與配置管理(Update and Configuration Management, UCM)模塊扮演著至關…

解決跨域問題的6種方案

解決跨域問題&#xff08;Cross-Origin Resource Sharing, CORS&#xff09;是 Web 開發中常見的需求&#xff0c;以下是 6 種主流解決方案&#xff0c;涵蓋前端、后端和服務器配置等不同層面&#xff1a; 一、CORS&#xff08;跨域資源共享&#xff09; 原理 通過服務器設置…

Python Selenium庫入門使用,圖文詳細。附網頁爬蟲、web自動化操作等實戰操作。

文章目錄 前言1 創建conda環境安裝Selenium庫2 瀏覽器驅動下載&#xff08;以Chrome和Edge為例&#xff09;3 基礎使用&#xff08;以Chrome為例演示&#xff09;3.1 與瀏覽器相關的操作3.1.1 打開/關閉瀏覽器3.1.2 訪問指定域名的網頁3.1.3 控制瀏覽器的窗口大小3.1.4 前進/后…

50個經典的python庫

本文整理了50個可以迅速掌握的經典Python庫&#xff0c;了解它們的用途&#xff0c;無論你是剛踏上編程之路&#xff0c;還是希望在Python的世界里更加深入&#xff0c;這50個庫都能幫助你快速起飛。 1. Taipy Taipy是一個開源Python庫&#xff0c;用于輕松的端到端應用程序開…

【視頻】V4L2、ffmpeg、OpenCV中對YUV的定義

1、常見的YUV格式 1.1 YUV420 每像素16位 IMC1:YYYYYYYY VV-- UU– IMC3:YYYYYYYY UU-- VV– 每像素12位 I420: YYYYYYYY UU VV =>YUV420P YV12: YYYYYYYY VV UU =>YUV420P NV12: YYYYYYYY UV UV =>YUV420SP(最受歡迎格式) NV21: YYYYYYYY VU VU =>YUV420SP…

freeswitch(多臺服務器級聯)

親測版本centos 7.9系統–》 freeswitch1.10.9本人freeswitch安裝路徑(根據自己的路徑進入)/usr/local/freeswitch/etc/freeswitch使用場景: 使用服務器級聯需要雙方網絡可以ping通,也就是類似局域網內,比如A服務器IP 192.168.1.100 B服務器 192.168.1.101,通過C設備注冊…

SpringMVC 基本概念與代碼示例

1. SpringMVC 簡介 SpringMVC 是 Spring 框架中的一個 Web 層框架&#xff0c;基于 MVC&#xff08;Model-View-Controller&#xff09; 設計模式&#xff0c;提供了清晰的分層結構&#xff0c;適用于 Web 應用開發 SpringMVC 主要組件 DispatcherServlet&#xff08;前端控…