日誌伺服器

天府雲創發表於2018-08-21

常見日誌伺服器搭建方案:

接筆者以往的的日誌文章衍生- https://blog.csdn.net/enweitech/article/details/51536644 此獻給正在做等保的企業(僅供參考)

集中式/中央式管理日誌 抑或 是分散式統一管理日誌?看各自企業公司的實際需求選型。以下資訊分享,最終看實踐。

1、Rsyslog+LogAnalyzer+X(Redis+NFS/

LogAnalyzer 是一款syslog日誌和其他網路事件資料的Web前端。它提供了對日誌的簡單瀏覽、搜尋、基本分析和一些圖表報告的功能。資料可以從資料庫或一般的syslog文字檔案中獲取,所以LogAnalyzer不需要改變現有的記錄架構。基於當前的日誌資料,它可以處理syslog日誌訊息,Windows事件日誌記錄,支援故障排除,使使用者能夠快速查詢日誌資料中看出問題的解決方案。

LogAnalyzer 獲取客戶端日誌會有兩種儲存模式,一種是直接讀取客戶端/var/log/目錄下的日誌並儲存到服務端該目錄下,一種是讀取後儲存到日誌伺服器資料庫中,推薦使用後者。

LogAnalyzer 採用php開發,所以日誌伺服器需要php的執行環境.備註(phplogcon是以前老版本,新版本已改名LogAnalyzer)

2、ELK +Beat  或者 elasticsearch + kafka-zookeeper + Flume + kibana/zabbix 多種工具軟體組合的方式

ELK 不是一款軟體,而是 Elasticsearch、Logstash 和 Kibana 三種軟體產品的首字母縮寫。這三者都是開源軟體,通常配合使用,而且又先後歸於 Elastic.co 公司名下,所以被簡稱為 ELK Stack。根據 Google Trend 的資訊顯示,ELK Stack 已經成為目前最流行的集中式日誌解決方案。

  • Elasticsearch:分散式搜尋和分析引擎,具有高可伸縮、高可靠和易管理等特點。基於 Apache Lucene 構建,能對大容量的資料進行接近實時的儲存、搜尋和分析操作。通常被用作某些應用的基礎搜尋引擎,使其具有複雜的搜尋功能;
  • Logstash:資料收集引擎。它支援動態的從各種資料來源蒐集資料,並對資料進行過濾、分析、豐富、統一格式等操作,然後儲存到使用者指定的位置;
  • Kibana:資料分析和視覺化平臺。通常與 Elasticsearch 配合使用,對其中資料進行搜尋、分析和以統計圖表的方式展示;
  • Filebeat:ELK 協議棧的新成員,一個輕量級開源日誌檔案資料蒐集器,基於 Logstash-Forwarder 原始碼開發,是對它的替代。在需要採集日誌資料的 server 上安裝 Filebeat,並指定日誌目錄或日誌檔案後,Filebeat 
    就能讀取資料,迅速傳送到 Logstash 進行解析,亦或直接傳送到 Elasticsearch 進行集中式儲存和分析。

3、scribe、chukwa、kafka、flume日誌系統

scribe、chukwa、kafka、flume日誌系統對比 –  http://www.ttlsa.com/log-system/scribe-chukwa-kafka-flume-log-system-contrast/

Facebook 日誌系統 Scribe、Apache 日誌系統 Chukwa
Linkedin    日誌系統 Kafka、Cloudera 日誌系統 Flume

4、Splunk日誌分析

日誌分析管理解決方案 | Splunk https://www.splunk.com/zh-hans_cn/solutions/solution-areas/log-management.html

5、基於大資料分析平臺Hadoop之類的日誌離線分析系統

https://blog.csdn.net/chdhust/article/details/27973533

五種日誌格式傳輸協議 

UDP、TCP、http/https、RELP、SMTP

UDP

可靠性比較低,但是效能損耗最少,在網路情況比較差或者接受伺服器壓力比較高的情況下,可能存在丟日誌情況。

  1. 服務端改配置檔案 /etc/rsyslog.conf
    $ModLoad imudp
    $UDPServerRun 514 ///// 註釋 去掉15 16 行的#
    讓日誌伺服器遵循UDP協議 重啟服務

  2. 客戶端改改配置檔案 /etc/rsyslog.conf
    *.info @伺服器IP地址 /////udp是 一個@ 
    重啟服務這下我們們日誌的UDP日誌伺服器就搭配完畢

TCP

可靠性比較高,但在接受伺服器當機或者兩者之間網路出問題的情況下,會出現丟日誌情況。
1. 服務端改配置檔案 /etc/rsyslog.conf
   $ModLoad imtcp
   $InputTCPServerRun 514  ///// 註釋 去掉19 20 行的#
    讓日誌伺服器遵循TCP協議    重啟服務
2.  客戶端改改配置檔案 /etc/rsyslog.conf
    *.info @@伺服器IP地址     /////TCP是 兩個@  
    重啟服務這下我們們日誌的TCP日誌伺服器就搭配完畢

RELP

基於TCP封裝的可靠日誌訊息傳輸協議; 是為解決TCP與UDP協議的缺點而在應用層實現的傳輸協議,也是三者中最可靠的。
  1. 裝包
    yum -y install rsyslog-relp.x86_64

2.服務端改配置檔案 /etc/rsyslog.conf
$ModLoad imrelp
$inputRELPServerRun 20514 ///// 註釋 這個是自己加上去的
讓日誌伺服器遵循RELP協議 重啟服務
3.客戶端改改配置檔案 /etc/rsyslog.conf
$ModLoad omrelp

建立一箇中央日誌伺服器

詳細步驟 http://wenku.baidu.com/view/8053931cff00bed5b9f31d8a.html

1建立中央日誌伺服器前的準備工作

配置良好的網路服務(DNS和NTP)有助於提高日誌記錄工作的精確性。在預設情況下,當有其他機器向自己傳送日誌訊息時,中央日誌伺服器將嘗試解析該機器的FQDN(fullyqualifieddomainname,完整域名)。(你可以在配置中央伺服器時用“-x”選項禁止它這樣做。)如果syslog守護程式無法解析出那個地址,它將繼續嘗試,這種毫無必要的額外負擔將大幅降低日誌記錄工作的效率。類似地,如果你的各個系統在時間上不同步,中央日誌伺服器給某個事件打上的時間戳就可能會與傳送該事件的那臺機器打上的時間戳不一致,這種差異會在你對事件進行排序分析時帶來很大的困擾;對網路時間進行同步有助於保證日誌訊息的時間準確性。如果想消除這種時間不同步帶來的麻煩,先編輯/etc/ntp.conf檔案,使其指向一箇中央時間源,再安排ntpd守護程式隨系統開機啟動就可以了。

2配置一箇中央日誌伺服器

只須稍加配置,就可以用syslog實現一箇中央日誌伺服器。任何一臺執行syslog守護程式的伺服器都可以被配置成接受來自另一臺機器的訊息,但這個選項在預設情況下是禁用的。在後面的討論裡,如無特別說明,有關步驟將適用於包括SUSE和RedHat在內的大多數Linux發行版本。我們先來看看如何啟用一個syslog伺服器接受外來的日誌訊息:

1. 編輯/etc/sysconfig/syslog檔案。

在“SYSLOGD_OPTIONS”行上加“-r”選項以允許接受外來日誌訊息。如果因為關於其他機器的DNS記錄項不夠齊全或其他原因不想讓中央日誌伺服器解析其他機器的FQDN,還可以加上“-x”選項。此外,你或許還想把預設的時間戳標記訊息(--MARK--)出現頻率改成比較有實際意義的數值,比如240,表示每隔240分鐘(每天6次)在日誌檔案裡增加一行時間戳訊息。日誌檔案裡的“--MARK--”訊息可以讓你知道中央日誌伺服器上的syslog守護程式沒有停工偷懶。按照上面這些解釋寫出來的配置行應該是如下所示的樣子:
SYSLOGD_OPTIONS="-r-x-m240"

2.重新啟動syslog守護程式。修改只有在syslog守護程式重新啟動後才會生效。如果你只想重新啟動syslog守護程式而不是整個系統,在RedHat機器上,執行以下兩條命令之一:
/etc/rc.d/init.d/syslogstop;/etc/rc.d/init.d/syslogstart
/etc/rc.d/init.d/syslogrestart

3.如果這臺機器上執行著iptables防火牆或TCPWrappers,請確保它們允許514號埠上的連線通過。syslog守護程式要用到514號埠。

4為中央日誌伺服器配置各客戶機器

讓客戶機把日誌訊息發往一箇中央日誌伺服器並不困難。編輯客戶機上的/etc/syslog.conf檔案,在有關配置行的操作動作部分用一個“@”字元指向中央日誌伺服器,如下所示:

另一種辦法是在DNS裡定義一個名為“loghost”的機器,然後對客戶機的syslog配置檔案做如下修改(這個辦法的好處是:當你把中央日誌伺服器換成另一臺機器時,不用再修改每一個客戶機上的syslog配置檔案):
authpriv.*@loghost

接下來,重新啟動客戶機上的syslog守護程式讓修改生效。讓客戶機在往中央日誌伺服器傳送日誌訊息的同時繼續在本地進行日誌工作仍有必要,起碼在除錯客戶機的時候不必到中央日誌伺服器查日誌,在中央日誌伺服器出問題的時候還可以幫助除錯。

如何在windows2008建立syslog伺服器

我們需要測試一種集中日誌系統,要在Windows上建立一個類Linux下的集中日誌系統
  
  經過比較Winsyslog和Kiwisyslog等工具,最終選定Kiwisyslog(http://www.kiwisyslog.com/),它不僅功能齊全,而且提供免費的版本。
  
  Kiwisyslog遵循標準的日誌協議(RFC 3164),並支援UDP/TCP/SNMP幾種方式的日誌輸入。它預設是個免費的功能受限版(但功能基本夠用了,只是沒有找到漢化),自帶傳送模擬器﹑日誌瀏覽器等實用工具。
  
  我還測試了一下把ACE日誌寫到syslog的功能。過程記錄如下:
  
  1)使用klog工具
  
  這個主要用到kiwisyslog的klog實用工具(這個工具同時提供dll庫的呼叫方式,真是好東西,我決定以後在我的應用裡都用它!),它支援直接或用重定向的方法輸出日誌到kiwisyslog。
  
  klog –m "It's almost lunchtime"
  
  DIR *.* | klog -h 192.168.1.2 -i
  
  但我試圖使用ACE應用日誌輸出到kiwisyslog時(ace_app.exe | klog -h 192.168.1.2 -i的形式),發現日誌內容裡前後有亂碼出現,即ACE的日誌輸出直接重定向到klog再轉到kiwisyslog有問題;並且不能按時間一行一行的輸出,而是等應用程式執行結束時一股腦輸出到kiwisyslog(按回車換行切開成一條一條日誌)。如果程式非正常結束,還不能將輸出日誌內容傳到 kiwisyslog。
  
  
  還有一個方法是在Windows通過設定可以把ACE日誌輸出到系統日誌裡面。
  
  ACE_LOG_MSG->set_flags(ACE_Log_Msg::SYSLOG);
  
  然後按下面2)的方法轉到kiwisyslog。
  
  
  2)還可以把Windows下的事件日誌轉到Linux下的syslog
  
  我們需要第三方的軟體來將windows的日誌轉換成syslog型別的日誌後,轉發給syslog伺服器。
  
  介紹第三方軟體evtsys (全稱是evntlog to syslog)
  
  檔案才幾十K大小,非常小巧,解壓後是兩個檔案evtsys.dll和evtsys.exe
  
  把這兩個檔案拷貝到 c:/windows/system32目錄下。
  
  開啟Windows命令提示符(開始->執行輸入CMD)
  
  C:/>evtsys –i –h 192.168.10.100
  
  -i 表示安裝成系統服務
  
  -h 指定log伺服器的IP地址
  
  如果要解除安裝evtsys,則:
  
  net stop evtsys
  
  evtsys -u
  
  啟動該服務:
  
  C:/>net start evtsys
  
  開啟windows組策略編輯器 (開始->執行輸入 gpedit.msc)
  
  在windows設定-> 安全設定-> 本地策略->稽核策略中,開啟你需要記錄的windows日誌。evtsys會實時的判斷是否有新的windows日誌產生,然後把新產生的日誌轉換成syslogd可識別的格式,通過UDP 3072埠傳送給syslogd伺服器。

【其他資料】

1、Windows日誌分析工具,Syslog日誌分析軟體,系統日誌審計系統 - 卓豪EventLog Analyzer https://www.manageengine.cn/products/eventlog/

2、日誌服務_實時日誌分析系統_日誌管理軟體_網站日誌分析工具 - 阿里雲 https://www.aliyun.com/product/sls/

3、日誌易: 日誌分析更容易 - 日誌易 https://www.rizhiyi.com/

4、日誌_智慧日誌管理_智慧日誌管理平臺 - 七牛雲 https://www.qiniu.com/products/insight

5、LOGSYS日誌管理系統 http://www.qinghong.net.cn/LOGSYS/index.html

6、明析資料 http://infodt.com/index.php/product/news_show?id=3 (百度logsys日誌管理系統的商業版)

7、分享一個號稱萬億級海量的深度日誌分析系統_搜狐科技 http://www.sohu.com/a/113114089_188123

8、LogInsight 智慧日誌分析平臺 | AIOps | 業務監控 | 實時業務分析 | 運維大資料 - OneAPM https://www.oneapm.com/li/feature.html

9、日誌分析管理系統 http://www.ipmotor.com/Dlm.html

10、EasyLog日誌分析,日誌大資料分析平臺 | 袋鼠雲 https://www.dtstack.com/?page_id=663

11、摩卡統一日誌分析平臺 http://www.mochalog.com/

12、HOOLI日誌分析平臺-虎嗅網 https://www.huxiu.com/chuangye/product/2382/HOOLI

13、打造高效的運維日誌收集與分析平臺-騰訊雲資訊 https://cloud.tencent.com/info/e0b8b659534c08e0009700ae031adb75.html

14、從ITOA運維和大資料分析著眼,構建智慧化日誌分析平臺 - 運維 -  http://dbaplus.cn/news-134-1545-1.html

15、CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日誌伺服器 -  https://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html

相關文章