syslog-ng收集日誌+ELK平臺搭建教程

来源:https://www.cnblogs.com/sitongyan/archive/2019/07/29/11177718.html
-Advertisement-
Play Games

syslog-ng部署: 用於接收交換機輸出的日誌。 syslog-ng安裝很簡單,可以順便搜一下,文章有很多。我是yum直接安裝的。 syslog-ng配置: 配置文件需要添加source 和destination 交換機上配置好log伺服器地址(部署syslog-ng、ELK的伺服器IP地址)即 ...


syslog-ng部署:

  用於接收交換機輸出的日誌。

  syslog-ng安裝很簡單,可以順便搜一下,文章有很多。我是yum直接安裝的。

  syslog-ng配置:

vi /etc/syslog-ng/syslog-ng.conf

  配置文件需要添加source 和destination

#設置接收日誌的協議和埠,localhost填寫本機IP地址
source s_remote {
    tcp(ip(localhost) port(514));
    udp(ip(localhost) port(514));
}; 

#收到的日誌存放本地一份(elk搭建存不存本地都無所謂)
destination d_file 
    { file("/netlog/logs_${YEAR}-${MONTH}-${DAY}"); 
};

#收到的日誌交給logstash處理,定義傳輸協議udp,埠5144(這裡對應logstash的input)
destination d_logstash { udp ("10.120.248.132" port(5144)); };

#多個目的,需要填寫進來,分號隔開
log { source(s_remote); destination(d_file); destination(d_logstash); };

  交換機上配置好log伺服器地址(部署syslog-ng、ELK的伺服器IP地址)即可。

ELK搭建(非集群):

  ELK分別是Elasticsearch、Logstash、Kibana三個開源框架縮寫。

  Elasticsearch是個開源分散式搜索引擎,提供搜集、分析、存儲數據三大功能。

  Logstash 主要是用來日誌的搜集、分析、過濾日誌的工具,支持大量的數據獲取方式。

  Kibana 提供日誌分析的 Web 界面,幫助彙總、分析和搜索重要數據日誌。

1. 下載ELK(版本保持一致!):

  這裡選擇下載了6.3.0版本。

  Elasticsearch下載: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz 

  Kibana下載: https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gz

  Logstash下載: https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.tar.gz 

  下載完成,使用rz命令上傳至centos7虛機,放在/home/目錄下。

2. 解壓

cd /home
tar -zxvf elasticsearch-6.3.0.tar.gz 
tar -zxvf kibana-6.3.0-linux-x86_64.tar.gz
tar -zxvf logstash-6.3.0.tar.gz

3. java環境搭建

  推薦使用jdk1.8,為了方便安裝了java-1.8.0-openjdk,安裝方法見鏈接。

  https://www.cnblogs.com/sitongyan/p/11262375.html

4. 部署elasticsearch,ELK的包解壓修改配置文件啟動即可使用,不需要安裝。

  修改配置文件

vi /home/elasticsearch-6.3.0/config/elasticsearch.yml
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0           ##伺服器ip 本機
#
# Set a custom port for HTTP:
#
http.port: 9200                 ##服務埠
#

  啟動elasticsearch:

/home/elasticsearch-6.3.0/bin/elasticsearch   #命令窗運行

/home/elasticsearch-6.3.0/bin/elasticsearch  -d  #後臺線程運行

  關閉elasticsearch:

ps -ef | grep elastic                    #後臺線程關閉
kill -9 4442                             ##pid 4442為查處線程的pid 

  Elasticsearch啟動常見問題解決

  驗證elasticsearch啟動:

5. 安裝kibana

  修改配置文件:

vi /home/kibana-6.3.0-linux-x86_64/config/kibana.yml
server.port: 5601       ##服務埠
server.host: "0.0.0.0"  ##伺服器ip  本機
 
elasticsearch.url: "http://localhost:9200" ##elasticsearch服務地址 與elasticsearch對應

  啟動kibana:

/home/kibana-6.3.0-linux-x86_64/bin/kibana       #命令窗啟動

nohup ./kibana-6.3.0-linux-x86_64/bin/kibana &   #後臺線程啟動

  關閉kibana:

ps -ef | grep kibana                    #後臺線程關閉
kill -9 4525                             ##pid 4525 為查處線程的pid 
  備註:常見問題多為 埠占用,以及目錄未授權,需要同elasticsearch 使用目錄運行執行的用戶去執行 未配置則為root用戶

  驗證kibana啟動:

6. 安裝logstash

  新建配置文件:

vi /home/logstash-6.3.0/config/logback-es.conf

0.0.0.0填寫本地IP地址,input標簽表示監聽udp協議的5144埠(此埠為syslog-ng設置的吐出日誌的目標埠),input日誌來源有很多種,udp是其中一種。

其他常見input標簽使用。

input {
    udp {
        host => "0.0.0.0"
        port => 5144
    }
}
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "switch-log-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

   備註:上述文件複製時必須去除多餘空格,保持yml文件規範。

  啟動logstash:

/home/logstash-6.3.0/bin/logstash -f /home/logstash-6.3.0/config/logback-es.conf         ##命令窗形式

nohup /home/logstash-6.3.0/bin/logstash -f /home/logstash-6.3.0/config/logback-es.conf &  ##後臺線程形式

  關閉logstash:

ps -ef | grep logstash                    #後臺線程關閉
kill -9 4617                              ##pid 4617 為查處線程的pid 

7. 驗證ELK

  查看elasticsearch索引,logstash收集到日誌後,會按照配置文件自動創建索引,並且根據時間YYYY.MM.dd切割數據建立一個一個的索引

curl http://10.120.248.132:9200/_cat/indices?v   ##查看自動創建的索引,能查看到說明elasticsearch存儲了從logstash output來的數據。
curl -XDELETE http://10.120.248.132:9200/索引名   ##清空無用索引

  驗證kibana日誌展示是否正常:新建立的索引,kibana需要新建一下關聯。

  Create Index Pattern創建索引

  選擇時間戳,創建完成。

  然後在Discover中查看日誌。如果看不見日誌,註意右上角的時間段選擇,選擇查看的時間長一些即可看見日誌。

  註意:右上角的選擇查看日誌的時間段(例如today)是參照按照當前瀏覽器時間。例如,需要查看的日誌索引為7月1日,然而今天實際是7月2日,選擇區間為today就沒有日誌,因為today代表當前時間7月2日,7月1日的日誌中是不包含7月2日的。

 8. kibana添加登錄認證

  elk驗證完成之後,會發現kibana不需要用戶登錄直接即可訪問,這樣很不安全,需要添加登錄認證。

  可以採用Nginx代理完成認證操作。

  Linux環境安裝Nginx步驟

  1.安裝Nginx完成之後,安裝Apache密碼生成工具:

yum install httpd-tools

  2.生成密碼文件:

mkdir -p /etc/nginx/passwd
htpasswd -c -b /etc/nginx/passwd/kibana.passwd user ******     ##-c表示創建一個加密文件,-b表示在htpassswd命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼。

  3.配置Nginx:

vi /usr/local/webserver/nginx/conf/nginx.conf
    server {
        listen       5601;   ##監聽用戶訪問的5601埠
        server_name  localhost:5601;    ##本機IP:port

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            auth_basic "kibana login auth";
            auth_basic_user_file /usr/local/test/passwd/kibana.passwd;    ##存儲用戶密碼文件
            proxy_pass http://localhost:5602;    #因為Nginx代理了kibana的5601埠,所以kibana需要換一個埠,我換成了5602,註意kibana的配置文件也需要改成5602埠
            proxy_redirect off;
        }

        #error_page  404              /404.html;

  4.修改Kibana配置文件:

vi /home/kibana-6.3.0-linux-x86_64/config/kibana.yml
# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5602

  5.重啟Kibana服務,配置文件生效:

ps -ef | grep kibana
kii -9 進程號
cd /home/
nohup ./kibana-6.3.0-linux-x86_64/bin/kibana & ##後臺啟動

   6.訪問kibana

  

  後續會補充logstash時間戳問題的處理辦法。











您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 無論是個人站還是企業站,都希望網站內容豐富後,網上用戶可以通過搜索引擎搜索到網站的內容信息,其實如果站長已經入住了百度站長平臺,則我們可以通過百度站長平臺的數據監控功能中的查看流量和關鍵詞的菜單來查看具體多少用戶通過百度搜索查看到自己的網站,通過百度搜索進入自己網站的流量是多少以及用戶通過啥搜索關鍵 ...
  • Linux軟體安裝——服務管理 摘要:本文主要學習了Linux中有關服務管理的知識。 什麼是服務 服務一般是放置在後臺運行的一個或多個進分程,為用戶或系統提供某項特定的服務,有些是系統服務,有些則是獨立的網路服務。 對於這些服務,我們可以通過運行主程式來啟動或關閉服務,也可以通過系統提供的servi ...
  • 在用Linux的時分,有時分要刪除一個文件夾,常常會提示次此文件非空,沒法刪除,這個時分,必需運用rm rf命令。關於一些小白用戶常常在運用Linux命令,會十分當心,以免搞出一些事情,下麵小編將教細緻教大家如何運用linux命令刪除文件夾,需求的請珍藏。 linux刪除文件夾命令實例: rm rf ...
  • Ubuntu Linux配置 1.為什麼是Ubuntu? ​ Ubuntu是一個由Canonical公司打造的基於Debian系列的GNU/Linux開源操作系統,支持ARM、x86、amd64等架構。自2004年10月20日發行以來,Ubuntu在伺服器端運用廣泛,在Linux桌面端也處於領先地位 ...
  • 最近用PyQt5寫了一個界面小程式,需要打包成exe給到其他windows上使用,一開始使用python 3.7 64位,用pyinstaller打包exe,在64位機上運行正常。 但是目標電腦是32位的,所以需要打包32位exe,然後問題就出現了。 打包32位exe, 雖然網上有教程說使用 Ana ...
  • 這是我第一次寫博客,沒有系統性、專業性,東西很雜,也不知道自己在寫些什麼。 SOA分散式架構,所以,使用solr,搜索層的服務層需要搭建起來、搜索系統的表現層搭建 ,打包方式是war包 功能變數名稱改變代表系統改變,例如京東點擊搜索,由www.jd.com www.searchjd.com solr使用li ...
  • 別名 別名是命令的快捷方式。為那些需要經常執行,但需要很長時間輸入的長命令創建快捷方式很有用。語法是: 它們並不總是用來縮短長命令。重要的是,你將它們用於你經常執行的任務。可能的例子: 這樣就可以只是用update來完成yum update的命令操作了 在終端中設置別名的問題是,一旦終端會話關閉,別 ...
  • 即日起,csdn將搬至博客園https://www.cnblogs.com/My-DreamTrip/ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...