日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ELK-日志收集工具nxlog

發布時間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ELK-日志收集工具nxlog 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ELK-日志收集工具nxlog

文章目錄

    • ELK-日志收集工具nxlog
  • 前言
  • 安裝
  • 語法
    • 宏變量
    • 通用模塊指令格式
      • Module 模塊名
      • FlowControl
      • InputType:指定輸入類型
      • OutputType:指定輸出類型
      • Exec: 執行命令
      • Schedule:定時器
        • Every
        • First
        • Exec
        • When
    • Route模塊
    • Extension模塊
      • Input
      • output
        • on_tcp/om_udp
        • on_file
        • on_ssl
    • 修改輸出內容
  • 例子
    • 讀取/var/log/message傳給logstash
    • 讀取windows事件發送給logstash

前言

nxlog配置有6個可配置的部分,Extension,Processor,Input,Output,Route。其中Route是路由,不需要指定模塊,其它都有各自的模塊可指定。
官方文檔地址-英文
一些內置函數,左側的3.6章節

安裝

官網下載地址,下載nxlog-ce-2.10.2150.msi,點擊安裝。
64位默認安裝路徑:C:\Program Files (x86)\nxlog,
32位默認安裝路徑:C:\Program Files\nxlog,
日志文件默認路徑:C:\Program Files (x86)\nxlog\data\nxlog.log。
配置文件路徑:C:\Program Files (x86)\nxlog\conf\nxlog.conf。

語法

默認配置文件:

Panic Soft #NoFreeOnExit TRUEdefine ROOT C:\Program Files (x86)\nxlog define CERTDIR %ROOT%\cert define CONFDIR %ROOT%\conf define LOGDIR %ROOT%\data define LOGFILE %LOGDIR%\nxlog.log LogFile %LOGFILE%Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data<Extension _syslog>Module xm_syslog </Extension> <Extension _charconv>Module xm_charconvAutodetectCharsets iso8859-2, utf-8, utf-16, utf-32 </Extension><Extension _exec>Module xm_exec </Extension><Extension _fileop>Module xm_fileop# Check the size of our log file hourly, rotate if larger than 5MB<Schedule>Every 1 hourExec if (file_exists('%LOGFILE%') and \(file_size('%LOGFILE%') >= 5M)) \file_cycle('%LOGFILE%', 8);</Schedule># Rotate our log file every week on Sunday at midnight<Schedule>When @weeklyExec if file_exists('%LOGFILE%') file_cycle('%LOGFILE%', 8);</Schedule> </Extension>

宏變量

宏可以理解為定義一個變量并賦值。比如

define ROOT C:\Program Files (x86)\nxlog

define指令可以定義宏變量,使用時用兩個%號包裹,比如%ROOT %
例子

define BASEDIR /var/log <Input messages>Module im_fileFile '%BASEDIR%/messages' </Input>

配置文件默認定義了很多宏,了解即可。

通用模塊指令格式

Module 模塊名

模塊名在C:\Program Files (x86)\nxlog\modules下以.dll后綴結尾(linux以.so格式結尾),前綴分別是im_, pm_, om_, or xm_。

im:input module縮寫,pm:processor module,om:output module,xm:extension module

FlowControl

是否啟用流程控制,建議在使用im_uds模塊從/dev/log采集本地syslog 的時候禁用掉,不然syslog會阻塞所有寫入的動作,假如輸出隊列還滿掉了,系統可能就不響應了

InputType:指定輸入類型

只對im_exec, im_ssl, im_tcp, im_udp, and im_uds模塊有效,一般不會特意設置
有效值如下
1. LineBased:一行為一個日志,用\n或者\r\n區分

2. Dgram:一旦Buffer用完了,考慮合成一份日志,im_udp模塊的時候是默認選項,因為UDP syslog 是分批到達的3. Binary:轉成Nxlog二進制格式

例如

<Input tcp>Module im_tcpPort 2345InputType Binary </Input>

OutputType:指定輸出類型

只能用于 om_file, om_exec, om_ssl, om_tcp, om_udp, and om_uds模塊
有效值如下:
1. LineBased:一行為一個日志
2. Dgram:一旦緩沖滿了就把緩沖數據作為一行日志,om_udp輸出默認是開著的
3. Binary:用nxlog binary格式化輸出

Exec: 執行命令

每接收到一條日志信息都會執行一次。在input, processor, and output模塊里完全支持,大部分extension模塊都不支持(除了 xm_multiline 和 xm_rewrite模塊)。每行是一條Exec指令,多行指令使用</kbd>換行,使用分號結尾,放在模塊的最后面。

比如單行指令:

Exec $Hostname = 'myhost';

在每行記錄里定義了一個變量$Hostname
比如多行指令:

Exec log_info("first"); \log_info("second");

多行指令也可抱成塊形勢,上面和下面語句意思一樣

<Exec>log_info("first");log_info("second"); </Exec>

Schedule:定時器

Every

比如Every 1 sec表示每秒執行。一個整型數字加上單位組成值,缺省單位是秒,有sec, min, hour, day, or week單位可選

First

設置首次執行時間,使用datetime類型的值,比如First 2010-12-17 00:19:06

Exec

執行的指令

When

@yearly Run once a year, "0 0 1 1 *". @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *". @weekly Run once a week, "0 0 * * 0". @daily Run once a day, "0 0 * * *". @midnight (same as @daily) @hourly Run once an hour, "0 * * * *".

這些都是語法,例子

<Input in>Module im_tcpPort 2345<Schedule>Every 1 secFirst 2010-12-17 00:19:06Exec log_info("scheduled execution at " + now());</Schedule><Schedule>When 1 */2 2-4 * *Exec log_info("scheduled execution at " + now());</Schedule> </Input>

Route模塊

這個是最簡單模塊。指定路由方式。
語法

<Route ROUTE_NAME>Path IN_NAME => PRO_NAME => OUT_NAME</Route>

比如

<Input in_file>Module im_fileFile "D:\\jar\\dongli\\logs\\spring-boot.log"SavePos TRUEExec convert_fields("auto", "utf-8"); </Input><Output out_file>Module om_fileFile 'D:\666.log' </Output><Route 1>Path in_file => out_file </Route>

Extension模塊

一些前期引入的操作
這個模塊一般我們不用動它,默認配置了幾個

<Extension _syslog>Module xm_syslog #收集事件日志,所有的事件日志默認都被收集 </Extension>

將 xm_syslog換成xm_json表示系統日志格式為json。

<Extension charconv>Module xm_charconv</Extension>

解決文件內容中解析失敗問題

Input

參考
數據輸入,可選模塊如下圖:

常用的是im_msvistalog和im_file

<Input in_win_system>#im_msvistalog支持的是2003之后的版本Module im_msvistalog#im_mseventlog支持的是2003之前版本# Module im_mseventlog</Input> <Input in_win_system>Module im_msvistalog </Input>

具體例子
im_file模塊:獲取springboot.log日志
注意文件使用\

<Input test11>Module im_fileFile "D:\\jar\\dongli\\logs\\spring-boot.log"SavePos TRUEExec convert_fields("auto", "utf-8"); Exec $name="chenyuan"; </Input>

比如文件存在多個,使用,如:File "D:\jar\dongli\logs\.log"
支持的配置:

  • SavePos:保存上次讀取位置,默認true
  • Recursive:是否遞歸子目錄文件,例如目錄設置為/var/log/*.log,那么/var/log/apache2/access.log也會被匹配,默認是true
  • ReadFromLast:從最新文件去讀,默認true,和SavePos配合使用,一般不設置。具體可參考英文描述
  • This optional boolean directive instructs the module to only read logs which arrived after NXLog was started if the saved position could not be read (for example on first start). When SavePos is TRUE and a previously saved position value could be read, the module will resume reading from this saved position. If ReadFromLast is FALSE, the module will read all logs from the file. This can result in quite a lot of messages, and is usually not the expected behavior. If this directive is not specified, it defaults to TRUE.
  • PollInterval:多久檢查文件變化,默認是1秒(1 second),如果設置為2秒,就是2 second
  • DirCheckInterval:檢查目錄下文件變化,比如增加新文件,如果PollInterval設置了就以PollInterval時間為準,默認是2秒(2 seconds)
    im_exec執行命令:使用tail命令讀取文件
  • CloseWhenIdle:空閑時是否關閉輸入流,默認是FALSE
  • <Input messages>Module im_execCommand /usr/bin/tailArg -fArg /var/log/messages </Input>

    output

    數據輸入,可選模塊如下圖:

    模塊指定發送方式
    om_tcp/om_udp:以tcp、udp方式發送
    om_http:http方式發送
    on_ssl:加密方式發送
    on_file:輸出到文本

    on_tcp/om_udp

    <Output out_tcp>Module om_tcpHost 192.168.1.238Port 514 </Output>

    on_file

    <Output out_file>Module om_fileFile 'D:\666.log' </Output>

    on_ssl

    語法

    <Output out>Module om_sslHost DST_IPPort DST_PORTCAFile CA_CERTCertFile CLIENT_CERTCertKeyFile CLENT_KETKeyPass PASSWORDAllowUntrusted TRUEExec $raw_event = to_json();</Output>

    說明:

  • DST_IP:為發送的目的主機IP地址,或者也可以是域名
  • DST_PORT: 為發送目的主機端口
  • CA_CERT:為CA證書路徑
  • CLIENT_CERT:為在服務端為客戶機生成的證書
  • CLIENT_KEY:為在服務端為客戶主機生成的key
  • PASSWORD:證書密碼,默認設置為“123456”可修改,根據證書生成時的密碼決定
  • <Output out>Module om_sslHost 192.168.161.96Port 1514CAFile %CERTDIR%\ca-cert.pemCertFile %CERTDIR%\client-cert.pemCertKeyFile %CERTDIR%\client-key.pemKeyPass 123456AllowUntrusted TRUEExec $raw_event = to_json();</Output>

    修改輸出內容

    使用$raw_event變量
    比如,下面在輸出的日志狀況添加一個ip

    <Output out_file>Module om_fileFile 'D:\666.log'Exec $raw_event = "192.168.161.63 " + $raw_event; </Output>

    例子

    讀取/var/log/message傳給logstash

    <Input messages>Module im_fileFile "/var/log/messages" </Input><Output tcp>Module om_tcpHost 192.168.1.238Port 514 </Output><Route messages_to_tcp>Path messages => tcp </Route>

    讀取windows事件發送給logstash

    <Extension _syslog>Module xm_syslog </Extension><Input in>Module im_msvistalog # For windows 2003 and earlier use the following: # Module im_mseventlogReadFromLast FALSESavePos FALSEQuery <QueryList>\<Query Id="0">\<Select Path="Security">*</Select>\ #配置為只發送Security Log</Query>\</QueryList></Input><Output out>Module om_tcpHost 192.168.1.238Port 514Exec to_syslog_snare(); </Output><Route 1>Path in => out </Route>

    配置為同時接收多個事件日志

    <Input in>Module im_msvistalog # For windows 2003 and earlier use the following: # Module im_mseventlogReadFromLast FALSESavePos FALSEQuery <QueryList>\<Query Id="0">\<Select Path="Application">*</Select>\<Select Path="System">*</Select>\<Select Path="Security">*</Select>\</Query>\</QueryList></Input>

    總結

    以上是生活随笔為你收集整理的ELK-日志收集工具nxlog的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。