天天看點

logtial無落盤采集之rsyslog一.簡介二.rsyslog配置檔案三.ilogtial配置檔案四.日志服務配置步驟五.排查步驟

一.簡介

日志服務SLS支援通過logtial用戶端采集機器組的系統日志到日志服務中,syslog是Linux系統預設的日志守護程序,預設的主配置檔案和輔助配置檔案分别是/etc/syslog.conf和/etc/sysconfig/syslog檔案,在配置采集的過程中,經常會遇到無法采集的情況,本篇文檔主要是采集syslog日志的基本概念和采集方法的說明,還有采集失敗常見的排查方法。
           

二.rsyslog配置檔案

檔案名稱:/etc/syslog.conf

檔案内容格式:facility.level action

facility代表消息類型,level代表級别,action代表動作

在 /etc/rsyslog.conf 中根據需要修改配置,例如:

$WorkDirectory /var/spool/rsyslog # where to place spool files
$ActionQueueFileName fwdRule1     # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g       # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on     # save messages to disk on shutdown
$ActionQueueType LinkedList       # run asynchronously
$ActionResumeRetryCount -1        # infinite retries if host is down
# 定義日志資料的字段
$template ALI_LOG_FMT,"0.1 sys_tag %timegenerated:::date-unixtimestamp% %fromhost-ip% %hostname%             %pri-text% %protocol-version% %app-name% %procid% %msgid% %msg:::drop-last-lf%\n"
*.*      @@10.101.166.173:11111;ALI_LOG_FMT           

配置檔案最後一行,. @@10.101.166.173:11111;ALI_LOG_FMT

第一個*代表所有的消息類型

第二個*代表所有級别的消息

@@代表TCP協定(@代表UDP)

10.101.166.173代表該syslog消息要轉發到的主機

11111代表11111端口

ALI_LOG_FMT代表模版名稱

是以整個一行代表,所有類型、所有級别的消息都通過TCP協定轉發到10.101.166.173主機的11111端口,消息内容使用模版 ALI_LOG_FMT

配置檔案倒數第二行,$template ALI_LOG_FMT,"0.1 sys_tag %timegenerated:::date-unixtimestamp% %fromhost-ip% %hostname% %pri-text% %protocol-version% %app-name% %procid% %msgid% %msg:::drop-last-lf%n"

$template :模版辨別

ALI_LOG_FMT:模版名稱

雙引号:模版内容

0.1:該日志格式的版本号,Logtail使用該版本号解析user-defined-field 字段。

sys_tag:資料标簽,用于尋找Project或Logstore,在控制台中的tag名稱

timegenerated:::date-unixtimestamp%:該條日志的時間戳。

%fromhost-ip%:該條日志的對應的機器IP,如果日志中的該字段是 127.0.0.1,最終發往服務端的日志資料中該字段會被替換成 TCP socket的對端位址。

%hostname% ~~ %msgid%:使用者自定義字段,中括号表示是可選字段。

%msg:::drop-last-lf%:日志消息正文。

三.ilogtial配置檔案

檔案名稱:/usr/local/ilogtail/ilogtail_config.json

檔案格式:

"config_server_address" : "http://logtail.cn-shanghai.log.aliyuncs.com",日志服務通路域名
  "data_server_list" :
  [
      {
          "cluster" : "cn-shanghai",所在區域
          "endpoint" : "cn-shanghai.log.aliyuncs.com",接入點
      }
  ],
  "cpu_usage_limit" : 0.4,CPU占用率門檻值
  "mem_usage_limit" : 256,常駐記憶體使用門檻值
  "max_bytes_per_sec" : 20971520,Logtail發送原始資料的流量限
  "buffer_file_num" : 25,緩存檔案的最大數目
  "buffer_file_size" : 20971520,緩存檔案可以實際使用的最大磁盤空間
  "streamlog_open" : false,是否打開接受syslog功能(非常重要,和rsyslog功能相關)
  "streamlog_pool_size_in_mb" : 50,用于緩存接收到的syslog資料。
  "streamlog_rcv_size_each_call" : 1024,linux socket rcv 接口使用的緩沖區大小
  "streamlog_formats":[],定義接收到的 syslog 日志解析方式。
  "streamlog_tcp_port" : 11111,logtail 用于接收 syslog 日志的 TCP 端口           

整個配置檔案隻有三個參數和rsyslog采集有直接關系,streamlog_open、streamlog_tcp_port和streamlog_formats

streamlog_open:rsyslog采集是否開啟

streamlog_tcp_port:ilogtail采集rsyslog日志端口

streamlog_formats:ilogtail采集日志的類型

streamlog_formats:

[
    {"version": "2.1", "fields": ["level", "method"]},
    {"version": "2.2", "fields": []},
    {"version": "2.3", "fields": ["pri-text", "app-name", "syslogtag"]}
]           

其中"version": "2.1"對應的/etc/rsyslog.conf 中的0.1,fields對應/etc/rsyslog.conf 中的%hostname% ~~ %msgid%,可以設定提取那個字段,如果将/etc/rsyslog.conf 中的0.1改為2.1,就會比對到{"version": "2.1", "fields": ["level", "method"]},進而日志服務loghub中提取到使用者自定義字段的日志格式就是level和method。

四.日志服務配置步驟

1.安裝logtial

2.建立syslog類型配置

3.配置/usr/local/ilogtail/ilogtail_config.json

4./etc/syslog.conf

日志服務官網采集syslog日志文檔

五.排查步驟

現象:控制台資料無法采集

1.排查rsyslog服務

(1)按照rsyslog排查,了解rsyslog配置檔案,可以很簡單的排查syslog.conf配置錯誤的問題,可以配置多個模版。

logtial無落盤采集之rsyslog一.簡介二.rsyslog配置檔案三.ilogtial配置檔案四.日志服務配置步驟五.排查步驟

(2)排查rsyslog服務是否啟動使用service rsyslog status

logtial無落盤采集之rsyslog一.簡介二.rsyslog配置檔案三.ilogtial配置檔案四.日志服務配置步驟五.排查步驟

(3)排查rsyslog監聽端口和轉發端口

logtial無落盤采集之rsyslog一.簡介二.rsyslog配置檔案三.ilogtial配置檔案四.日志服務配置步驟五.排查步驟

這裡可以看到一個rsyslog程序,兩個sockets監聽,一個監聽本機的53552端口,轉發到本機的11111端口,另一個監聽本機的53554端口,轉發到本機的11111端口,有兩個是因為syslog.conf中配置了兩個規則,而ilogtial服務也啟動了三個,兩個ESTABLISHED狀态的監聽與兩個ESTABLISHED狀态的rsyslog監聽在進行資料傳輸。

2.排查ilogtail服務

(1)排查ilogtial服務運作狀态,通過/etc/init.d/ilogtaild status判斷ilogtial服務的運作狀态。

logtial無落盤采集之rsyslog一.簡介二.rsyslog配置檔案三.ilogtial配置檔案四.日志服務配置步驟五.排查步驟

(2)排查ilogtial日志是否有報錯,通過ilogtail.LOG判斷ilogtial服務是否有報錯。

3.排查機器組狀态

(1)排查機器組狀态是否是OK狀态,可參考

文檔

4.控制台上檢查

(1)可以通過控制台診斷判斷問題所在,查到的報錯關鍵字對比

logtial無落盤采集之rsyslog一.簡介二.rsyslog配置檔案三.ilogtial配置檔案四.日志服務配置步驟五.排查步驟

(2)通過預覽資料看下是否采集到了資料,如果采集到,倒是查詢無法查到,應該是沒有開啟日志索引,或者設定索引錯誤導緻的,可以參考

logtial無落盤采集之rsyslog一.簡介二.rsyslog配置檔案三.ilogtial配置檔案四.日志服務配置步驟五.排查步驟

繼續閱讀