舉例說明,在做的各位有沒有在讀小學的,都是讀過小寫的,我們讀小學的時候,經常做乙個事情,老師要求我們寫日記,我們感覺非常煩,那麼,日記記錄的是什麼,是我們每一天做的事情。專業表述,日記是不是用來記錄人每一天活動的狀態,
同理,在軟體中,為了記錄軟體的執行狀態,那麼記錄這種狀態的叫做日誌
日記是用來記錄人的狀態,那麼日誌是用來記錄軟體系統執行的狀態。
日記組成:時間,地點,做了什麼。(條件和結果)
日誌組成:時間,類,方法資訊(輸入引數和輸出結果)
就是統一記錄多個系統的執行日誌,就叫做日誌中心。
見圖,微服務系統中使用日誌中心
1、微服務系統執行正常,一切正常的情況下,不需要使用日中中心
2、微服務系統執行執行異常
2.1 微服務系統內部出現了異常,無法進行排查
2.2 微服務系統呼叫過程出現了內部異常,定位日誌問題非常麻煩,一會在這個地方用,一會在那個地方用,不是非常好維護,
在這兩種情況下,所以就出現了日誌中心,來統一排查問題
elk:elk是三個開源軟體的縮寫,分別表示:elasticsearch , logstash, kibana ,
比較不同的日誌框架
對於目前elk成為了微服務系統和分布式系統的主流,在市面上還沒有其他的日誌中心可選
這個時候需要和其他進行對比,只有對比才有效果,就是他的優勢在**,其他日誌中心框架的缺陷在**。
logstash :日誌收集,處理器
elasticsearch :日誌儲存器
kibana:日誌視覺化分析器(webui)
在這三個元件裡面,logstash 是核心地位
logstash 組成
客戶端:收集日誌 ==== 客戶端有哪些nlog,log4j
服務端:接受客戶端收集來的日誌進行進行處理。
見圖進行展示
條件1、微服務系統
2、elasticsearch 6.6.0
3、logstash 6.6.0
4、kibana 6.6.0
5、nlog
步驟1、微服務系統操作
1.1 微服務系統已經準備好
2、 elasticsearch 6.6.0操作
解壓後,在elasticsearch-6.6.0/config目錄下,在elasticsearch.yml內配置
network.host: 0.0.0.0
增加thread_pool.bulk.queue_size: 1000
2.3 elasticsearch 6.6.0啟動
解壓後,在elasticsearch-6.6.0/bin目錄下,雙擊啟動
elasticsearch.bat
2.4 elasticsearch 6.6.0訪問
瀏覽器輸入:http://localhost:9200,顯示結果,啟動成功
3、logstash 6.6.0操作
3.2 logstash 6.6.0配置
解壓後,在logstash-6.6.0/config目錄下,建立logstash.conf檔案,在其中新增配置資訊
input
}
output "
#user => "elastic"
#password => "changeme"
}}
3.3 logstash 6.6.0啟動
logstash -f ../config/logstash.conf
3.4 logstash 6.6.0訪問
瀏覽器輸入:http://localhost:9600,顯示結果,啟動成功
4、kibana 6.6.0操作
4.2 kibana 6.6.0配置
解壓後,在kibana-6.6.0-windows-x86_64/config目錄下,開啟kibana.yml檔案,在其中新增配置資訊
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
3.3 kibana 6.6.0啟動
在kibana-6.6.0-windows-x86_64/bin目錄下,雙擊
kibana.bat
3.4 logstash 6.6.0訪問
瀏覽器輸入:http://localhost:5601,顯示結果,啟動成功
5、微服務系統操作
5.1 nlog操作
在ruanmou.microservice.core微服務使用nuegt安裝nlog.web.aspnetcore
nuget nlog.web.aspnetcore
5.1.2 nlog配置
在ruanmou.microservice.aggregateservice微服務中建立nlog.config檔案,內容為
<?xml version="1.0" encoding="utf-8" ?>
5.1.3 nlog載入
在ruanmou.microservice.aggregateservice微服務中開啟program.cs,配置內容為
public static ihostbuilder createhostbuilder(string args) =>
host.createdefaultbuilder(args)
.configurewebhostdefaults(webbuilder =>
);// 2、使用nllog
webbuilder.usestartup().usenlog();
});
5.1.4 nlog使用
在ruanmou.microservice.aggregateservice微服務中開啟aggregatecontroller.cs,增加內容為
// nlog日誌列印類
private readonly ilogger _logger = logmanager.getcurrentclasslogger();
精華 2023年10月1日 微服務 事件匯流排
例如 事物 所有看到的一切都是事物,不能看到的也是事物 例如 團隊微服務,成員微服務,聚合微服務,閘道器api,認證中心等等包括類,物件 所有的事件都是事物變化的結果 大家接觸事件最早就是在js 或者是c 高階特性。大家對於事件不預設,但是對於事件不是很好理解 事件就是指事物狀態的變化,每一次事物變...
精華 2023年8月17日 WebApi許可權認證
session webapi預設是不支援session restful 可以自行擴充套件去支援 無狀態 第2次請求和第1次請求不關聯 1 登陸過程,拿到令牌 token ticket 許可證 2 驗證成功 賬號 密碼 其他資訊 時間 加密一下得到ticket 返回給客戶端 3 請求時,ajax裡面帶...
精華 2023年01月02日 WPF繫結
在winform中,我們常常會用到各種型別的賦值,例如 類似這種賦值操作,我們之所以不稱之為繫結,主要原因是因為他們大多數操作都是一次性的,無論是資料還是按鈕本身發生變化,對兩者而言都是不可見的。而繫結的概念則側重於 兩者的關聯,協議與兩者之間的影響。首先,從乙個簡單的例子來理解什麼是繫結。1 bi...