ELK 叢集 + Redis 叢集 + Nginx ,分散式的實時日誌(資料)蒐集和分析的監控系統搭建,簡單上手使用
簡述
ELK實際上是三個工具的集合,ElasticSearch + Logstash + Kibana,這三個工具組合形成了一套實用、易用的監控架構,很多公司利用它來搭建視覺化的海量日誌分析平臺。
Elasticsearch
是一個基於Apache Lucene(TM)的開源搜尋引擎 ,它的特點有:分散式,零配置,自動發現,索引自動分片,索引副本機制,RESTful web風格介面,多資料來源,自動搜尋負載等。
Logstash
是一個用來蒐集、分析、過濾日誌的工具。它支援幾乎任何型別的日誌,包括系統日誌、錯誤日誌和自定義應用程式日誌。它可以從許多來源接收日誌,這些來源包括 syslog、訊息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出資料,包括電子郵件、websockets和 Elasticsearch。
Kibana
是一個基於Web的圖形介面,用於搜尋、分析和視覺化儲存在 Elasticsearch指標中的日誌資料。它利用Elasticsearch的REST介面來檢索資料,不僅允許使用者建立他們自己的資料的定製儀表板檢視,還允許他們以特殊的方式查詢和過濾資料。
Redis
Redis優勢效能極高 – Redis
能讀的速度是110000次/s
,寫的速度是81000
次/s 。
豐富的資料型別 – Redis
支援二進位制案例的 Strings, Lists, Hashes, Sets
及 Ordered Sets
資料型別操作。
原子 – Redis
的所有操作都是原子性的,同時Redis還支援對幾個操作全並後的原子性執行。
豐富的特性
Redis
還支援 publish/subscribe
, 通知, key
過期等等特性。Nginx
是一個高效能的 Web 和反向代理伺服器, 它具有有很多非常優越的特性:
作為 Web 伺服器
:相比 Apache,Nginx 使用更少的資源,支援更多的併發連線,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支援高達 50,000 個併發連線數的響應,感謝 Nginx 為我們選擇了 epoll and kqueue 作為開發模型.
作為負載均衡伺服器
:Nginx 既可以在內部直接支援 Rails 和 PHP,也可以支援作為 HTTP代理伺服器 對外進行服務。Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。
應用場景
在傳統的應用執行環境中,收集、分析日誌往往是非常必要且常見的,一旦應用出現問題、或者需要分析應用行為時,管理員將通過一些傳統工具對日誌進行檢查,如cat、tail、sed、awk、perl以及grep。這種做法有助於培養在常用工具方面的優秀技能,但它的適用範圍僅限於少量的主機和日誌檔案型別。
隨著應用系統的複雜性與日俱增,日誌的分析也越來越重要,常見的需求包括,團隊開發過程中可能遇到一些和日誌有關的問題:
- 開發沒有生產環境伺服器許可權,需要通過系統管理員獲取詳細日誌,溝通成本高
- 系統可能是有多個不同語言編寫、分散式環境下的模組組成,查詢日誌費時費力
- 日誌數量巨大,查詢時間很長
1.準備工作
環境
ElasticSearch : elasticsearch-5.5.2
Logstash : logstash-5.5.2
kibana:kibana-5.5.2
JDK: 1.8
Redis: Redis-4.0.1
Nginx: 1.9.9
node1 --> ElasticSearch: 192.168.252.121:9200
node2 --> ElasticSearch: 192.168.252.122:9200
node3 --> ElasticSearch: 192.168.252.123:9200
node4 --> Logstash: 192.168.252.124
node4 --> nginx: 192.168.252.124
node5 --> Kibana: 192.168.252.125
node6 --> Redis: 192.168.252.126
node7 --> Redis: 192.168.252.127
node8 --> Redis: 192.168.252.128
修改主機名
安裝依賴
本次搭建,ELK 叢集 + Redis + Nginx 日誌分析平臺,需要安裝以下軟體
安裝 JDK
安裝 Nginx
安裝 Redis叢集
關閉防火牆
節點之前需要開放指定埠,為了方便,生產不要禁用
systemctl stop firewalld.service
2.Elasticsearch
ES單機安裝
下載解壓
cd /opt
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
tar -xzf elasticsearch-5.5.2.tar.gz
編輯配置
只要叢集名相同ps(cluster.name:
),且機器處於同一區域網同一網段,Elasticsearch
會自動去發現其他的節點
vi /opt/elasticsearch-5.5.2/config/elasticsearch.yml
cluster.name: ymq
node.name: ELK-node1
network.host: 0.0.0.0
http.port: 9200
通過jvm.options 編輯設定JVM堆大小
vi /opt/elasticsearch-5.5.2/config/jvm.options
-Xms2g --》修改為512m
-Xmx2g --》修改為512m
啟動服務
/opt/elasticsearch-5.5.2/bin/elasticsearch -d
檢視日誌
日誌名稱ymq
就是 cluster.name: ymq
的名稱
less /opt/elasticsearch-5.5.2/logs/ymq.log
檢視埠
netstat -nltp
tcp6 0 0 :::9200 :::* LISTEN 2944/java
tcp6 0 0 :::9300 :::* LISTEN 2944/java
測試訪問
curl -X GET http://localhost:9200/
{
"name" : "ELK-node1",
"cluster_name" : "ymq",
"cluster_uuid" : "jxWzvSFNTCWtToD6wrVIpA",
"version" : {
"number" : "5.5.2",
"build_hash" : "b2f0c09",
"build_date" : "2017-08-14T12:33:14.154Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
健康狀態
curl -X GET http://192.168.252.123:9200/_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1504102874 22:21:14 ymq green 1 1 0 0 0 0 0 0 - 100.0%
關閉服務
直接殺掉程序
jps
2968 Elasticsearch
3135 Jps
kill -9 2968
ES叢集安裝
依次安裝nide2,node3,叢集
編輯配置
叢集名必須相同ps(cluster.name:
),且機器處於同一區域網同一網段,Elasticsearch
會自動去發現其他的節點
vi /opt/elasticsearch-5.5.2/config/elasticsearch.yml
node.name
換個名字,可以ELK-node2
,ELK-node3
node.name: ELK-node2
node.name: ELK-node3
配置叢集時,必須設定叢集中與其他的節點通訊的列表,如果沒有指定埠
,該埠將預設為9300
discovery.zen.ping.unicast.hosts: ["192.168.252.121","192.168.252.122","192.168.252.123"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.minimum_master_nodes
(預設是1):這個引數控制的是,一個節點需要看到的具有master節點資格的最小數量,然後才能在叢集中做操作。官方的推薦值是(N/2)+1,其中N是具有master資格的節點的數量(我們的情況是3,因此這個引數設定為2,但對於只有2個節點的情況,設定為2就有些問題了,一個節點DOWN掉後,你肯定連不上2臺伺服器了,這點需要注意)。
啟動服務
依次啟動各個叢集
/opt/elasticsearch-5.5.2/bin/elasticsearch -d
叢集操作
節點列表
curl 'localhost:9200/_cat/nodes?v'
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.252.121 11 92 0 0.00 0.04 0.05 mdi * ELK-node1
192.168.252.122 16 94 0 0.00 0.04 0.09 mdi - ELK-node2
192.168.252.123 13 92 0 0.02 0.05 0.07 mdi - ELK-node3
叢集健康
curl -XGET 'http://localhost:9200/_cluster/health?pretty'
{
"cluster_name" : "ymq",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
群集狀態
獲得整個叢集的綜合狀態資訊。
curl -XGET 'http://localhost:9200/_cluster/state?pretty'
{
"cluster_name" : "ymq",
"version" : 3,
"state_uuid" : "uWsrNkiFTOSItF5LFZTl1A",
"master_node" : "118aXxRfQIaYQ9Y-mDIfSg",
"blocks" : { },
"nodes" : {
"118aXxRfQIaYQ9Y-mDIfSg" : {
"name" : "ELK-node1",
"ephemeral_id" : "9pT8VWO5SjyRCYMe6qUdgA",
"transport_address" : "192.168.252.121:9300",
"attributes" : { }
},
"R2aiceefQ9aoSqY0_SXZew" : {
"name" : "ELK-node2",
"ephemeral_id" : "1tAgHHrORP65KmHwAkKYaw",
"transport_address" : "192.168.252.122:9300",
"attributes" : { }
},
"P9XQhjaYQrSWpke8rzrgeg" : {
"name" : "ELK-node3",
"ephemeral_id" : "LSjPP11PSx-7YaUw3a-CSw",
"transport_address" : "192.168.252.123:9300",
"attributes" : { }
}
},
"metadata" : {
"cluster_uuid" : "-aqZbTMNTHGzPIm_KoLiiw",
"templates" : { },
"indices" : { },
"index-graveyard" : {
"tombstones" : [ ]
}
},
"routing_table" : {
"indices" : { }
},
"routing_nodes" : {
"unassigned" : [ ],
"nodes" : {
"P9XQhjaYQrSWpke8rzrgeg" : [ ],
"118aXxRfQIaYQ9Y-mDIfSg" : [ ],
"R2aiceefQ9aoSqY0_SXZew" : [ ]
}
}
}
ES 插架
概要
Chrome擴充套件程式包含優秀的ElasticSearch Head
應用程式。
動機
這是因為ElasticSearch 5 刪除了將ElasticSearch Head作為彈性外掛執行的功能而建立的。這為您自己的Web伺服器提供了自主託管的替代方案。它還具有繞過CORS而不在您的Elastic伺服器上配置CORS的優點。
使用
單擊Web瀏覽器工具欄中的副檔名圖示。
鍵入彈性節點的地址到開啟的新選項卡的頂部。
單擊連線按鈕。
安裝
需要翻牆安裝
在Chrome擴充套件程式裡,搜尋ElasticSearch Head 點選安裝
3.Logstash
下載解壓
cd /opt
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.2.tar.gz
tar -xzf logstash-5.5.2.tar.gz
測試一下
測試 logstash 是否正常執行
/opt/logstash-5.5.2/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
敲入 Hello World,回車
結果
Hello World
{
"@timestamp" => 2017-08-30T17:24:25.553Z,
"@version" => "1",
"host" => "node4",
"message" => "Hello World"
}
編輯配置
開啟 logstash agent
編輯 Nginx 配置,解開預設的 Nginx #
註釋
vi /usr/local/nginx/conf/nginx.conf
在nginx.conf 中設定日誌格式:logstash
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
負責收集nginx訪問日誌資訊傳送到redis佇列上
cd /opt/logstash-5.5.2
mkdir etc
vi /opt/logstash-5.5.2/etc/logstash_agent_nginx.conf
input {
file {
type => "nginx_access_log"
path => "/usr/local/nginx/logs/access.log"
}
}
output {
redis {
host => "192.168.252.126"
data_type => "list"
port => "6379"
key => "logstash:redis"
}
}
多日誌檔案例如
path => [ "/usr/local/nginx/logs/*.log", "/var/log/messages.log", "/var/log/syslog.log" ]
input {}
解釋
讀取nginx訪問日誌access.log
,Logstash 使用一個名叫 FileWatch 的 Ruby Gem 庫來監聽檔案變化 FileWatch 外掛只支援檔案的絕對路徑,而且會不自動遞迴目錄。所以有需要的話,請用陣列方式都寫明具體哪些檔案。
output {}
解釋
傳送,Logstash 收集的 Nginx 訪問日誌資訊傳送到 redis 伺服器上
開啟 logstash indexer
cd /opt/logstash-5.5.2
mkdir etc
vi /opt/logstash-5.5.2/etc/logstash_indexer.conf
input {
redis {
host => "192.168.252.126"
data_type => "list"
port => "6379"
key => "logstash:redis"
type => "redis-input"
}
}
output {
elasticsearch {
hosts => ["192.168.252.121:9200"]
index => "logstash-%{type}-%{+YYYY.MM.dd}"
document_type => "%{type}"
flush_size => 20000
idle_flush_time => 10
sniffing => true
template_overwrite => true
}
}
input {}
解釋
讀取Redis
key logstash:redis
的資料
output {}
解釋
批量傳送Elasticsearch,本外掛的 flush_size 和 idle_flush_time 兩個引數共同控制 Logstash 向 Elasticsearch 傳送批量資料的行為。以上面示例來說:Logstash 會努力攢到 20000 條資料一次性發送出去,但是如果 10 秒鐘內也沒攢夠 20000 條,Logstash 還是會以當前攢到的資料量發一次。 預設情況下,flush_size 是 500 條,idle_flush_time 是 1 秒。這也是很多人改大了 flush_size 也沒能提高寫入 ES 效能的原因——Logstash 還是 1 秒鐘傳送一次。
啟動服務
cd /opt/logstash-5.5.2/logs/
mkdir log1 log2
啟動 logstash agent
logstash
代理收集日誌傳送 Redis
nohup /opt/logstash-5.5.2/bin/logstash -f /opt/logstash-5.5.2/etc/logstash_agent_nginx.conf --path.data=/opt/logstash-5.5.2/logs/log1 > /dev/null 2>&1 &
啟動 logstash indexer
logstash
讀 Redis
日誌傳送到Elasticsearch
nohup /opt/logstash-5.5.2/bin/logstash -f /opt/logstash-5.5.2/etc/logstash_indexer.conf --path.data=/opt/logstash-5.5.2/logs/log2 > /dev/null 2>&1 &
檢視日誌
less /opt/logstash-5.5.2/logs/logstash-plain.log
4.Kibana
下載解壓
cd /opt
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.2-linux-x86_64.tar.gz
tar -xzf kibana-5.5.2-linux-x86_64.tar.gz
編輯配置
cd /opt/kibana-5.5.2-linux-x86_64
vi config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.252.121:9200"
啟動服務
cd /opt/kibana-5.5.2-linux-x86_64/bin/
./kibana
訪問 Kibana
5.測試日誌分析平臺
如果之前啟動過就kill
掉
啟動以下服務
啟動 ES
叢集
切換到,新建使用者 ymq
,依次啟動各個 elasticsearch 叢集
su ymq
/opt/elasticsearch-5.5.2/bin/elasticsearch -d
啟動 kibana
/opt/kibana-5.5.2-linux-x86_64/bin/kibana
啟動 Redis
/opt/redis-4.0.1/src/redis-server /opt/redis-4.0.1/redis-sentinel/redis.conf
啟動 Nginx
/usr/local/nginx/sbin/nginx
測試步驟
1.檢查各服務
檢查各服務,是否啟動成功 ,是否日誌異常
2.啟動logstash agent
啟動 logstash agent
logstash
代理收集日誌傳送 Redis
nohup /opt/logstash-5.5.2/bin/logstash -f /opt/logstash-5.5.2/etc/logstash_agent_nginx.conf --path.data=/opt/logstash-5.5.2/logs/log1 > /dev/null 2>&1 &
3.生成測試資料
在瀏覽器 Nginx
頁面 重新整理 2 次,生成測試資料
4.檢視測試資料
開啟RedisDesktopManager
頁面看看Nginx 重新整理頁面的訪問成功日誌,看到 寫進 Redis 2 條資料
ps 這只是個視覺化Redis介面而已,你也可以使用命令列檢視
如果沒有 RedisDesktopManager
,就在安裝Redis 伺服器上 通過命令列檢視
[[email protected] opt]# /opt/redis-4.0.1/src/redis-cli -h 192.168.252.126 -c -p 6379
192.168.252.126:6379> LRANGE logstash:redis 0 9
5.使用kibana
可以看到ElasticSearch
是沒有 Nginx
重新整理頁面的訪問成功日誌資料的,是因為,我沒有啟動 logstash indexer
讀取Redis
資料寫入ElasticSearch
的服務
6.啟動logstash indexer
啟動 logstash indexer
logstash
讀 Redis
日誌傳送到Elasticsearch
nohup /opt/logstash-5.5.2/bin/logstash -f /opt/logstash-5.5.2/etc/logstash_indexer.conf --path.data=/opt/logstash-5.5.2/logs/log2 > /dev/null 2>&1 &
先看Redis
,已經是空的了
192.168.252.126:6379> LRANGE logstash:redis 0 9
(empty list or set)
是不是已經寫到 ElasticSearch
呢? 往下看
7.使用kibana DevTools
我們看看,DevTools
,開發工具資料查詢,相比上次已經看到多了 2 條,就是我們訪問 Nginx` 重新整理頁面的訪問成功日誌資料
8.使用ElasticSearchHead
通過 ElasticSearchHead 外掛 檢視資料
9.使用kibana Discover
首先使用kibana Discover
配置索引 logstash-*
ps ( 索引名稱是按照 elasticsearch
寫入時建立的索引 index => "logstash-%{type}-%{+YYYY.MM.dd}"
這個配置在上面開啟 logstash indexer 有提到
10.使用kibana Search
點選Available Fields
下選擇咱們日誌中的欄位 key
add
可新增更多顯示欄位,我為了部落格顯示效果,沒有讓顯示全部,預設顯示全部欄位,也可由刪除顯示欄位
11.使用kibana Search 條件查詢
點選Discover 工具欄
下選擇 指定時間 2017-09-01 23:45:00.000 ----2017-09-01 23:50:00.000
的日誌,
搜尋關鍵詞AppleWebKit
圖形表示 Hourly 每小時
12.使用kibana Timelion
最後6分鐘的時間軸
Contact
相關推薦
ELK 叢集 + Redis 叢集 + Nginx ,分散式的實時日誌(資料)蒐集和分析的監控系統搭建,簡單上手使用
原文地址:https://segmentfault.com/a/1190000010975383簡述ELK實際上是三個工具的集合,ElasticSearch + Logstash + Kibana,這三個工具組合形成了一套實用、易用的監控架構,很多公司利用它來搭建視覺化的海量
Nginx學習筆記——日誌(log_format)
日誌配置 在/etc/nginx/nginx.conf中有log_format的配置。 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
【完全分散式Hadoop】(四)新建hadoop使用者以及使用者組,並賦予sudo免密碼許可權
搭建hadoop叢集環境不僅master和slaves安裝的hadoop路徑要完全一樣,也要求使用者和組也要完全一致。因此第一步就是新建使用者以及使用者組。對於新手來言,新建使用者使用者組,並賦予適當的許可權無疑是最大的問題。下面請跟隨我來新建使用者以及使用者組並賦予root許可權。
CoreJava讀書筆記--異常、斷言和日誌(二)--斷言和日誌
使用斷言 在一個具有自我保護能力的程式中,斷言很常用。 (一)斷言的概念 斷言機制允許在測試期間向程式碼中插入一些檢查語句。當代碼釋出時,這些插入的檢測語句將會被自動地移走。Java語言引入了關鍵字assert。assert有兩種形式: assert 條件; 和
海量實時使用者行為資料的儲存和分析
在短時間內爆發大量資料,這時資料資源的採集、儲存和分析和應用等,都是大資料行業的難點。行為資料、日誌資料的處理,往往成為企業資料建設首先面對的瓶頸,這些資料不易儲存,實時獲取分析難度較大,但是資料價值卻不可估量。在大資料中,90% 以上的資料爆發來自於行為資料,就像現在的網際網路、移動網際網路、甚至在產生於物
ELK6.2.2日誌分析監控系統搭建和配置
ELK日誌平臺介紹在搜尋ELK資料的時候,發現這篇文章比較好,於是摘抄一小段:日誌主要包括系統日誌、應用程式日誌和安全日誌。系統運維和開發人員可以通過日誌瞭解伺服器軟硬體資訊、檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以瞭解伺服器的負荷,效能安全性,從而及時採取措施
分散式實時日誌分析解決方案ELK部署架構
日誌是分析線上問題的重要手段,通常我們會把日誌輸出到控制檯或者本地檔案中,排查問題時通過根據關鍵字搜尋本地日誌,但越來越多的公司,專案開發中採用分散式的架構,日誌會記錄到多個伺服器或者檔案中,分析問題時可能需要檢視多個日誌檔案才能定位問題,如果相關專案不是一個團隊維護時溝通成本更是直線上升。把各個系統的
分散式ID系列(4)——Redis叢集實現的分散式ID適合做分散式ID嗎
首先是專案地址: https://github.com/maqiankun/distributed-id-redis-generator 關於Redis叢集生成分散式ID,這裡要先了解redis使用lua指令碼的時候的EVAL,EVALSHA命令: https://www.runoob.com/redis/s
【從單體架構到分散式架構】(三)請求增多,單點變叢集(2):Nginx
``` 上一個章節,我們學習了負載均衡的理論知識,那麼是不是把應用部署多套,前面掛一個負載均衡的軟體或硬體就可以應對高併發了?其實還有很多問題需要考慮。比如: 1. 當一臺伺服器掛掉,請求如何轉發到其他正常的伺服器上? 2. 掛掉的伺服器,怎麼才能不再訪問? 3. 如何保證負載均衡的高可用性? 等等等等.
【完全分散式Hadoop】(三)叢集設定SSH無密碼登陸
之前的文章已經有SSH免密部分,這裡單獨列出來只是為了方便查詢 打通SSH,設定ssh無密碼登陸(所有節點) 組建了三個節點的叢集hadoop000、hadoop001、hadoop002 在所有節點上執行 ssh-keygen -t rsa 一路回車,生成無密碼的金鑰對。 將各個節點的公鑰
elk+filebeat的安裝 並 分析nginx日誌(推薦)
關於elk及其相關元件的介紹,參看此文https://boke.wsfnk.com/archives/67.html系統規劃 服務型別 OS版本 IP地址 主機名 elk端 centos7.4 192.168.1.26 elk-server log端 centos7.4 192.168.1.40 b
Redis叢集中主從自動切換之Sentinel(哨兵)
Redis Sentinel Sentinel(哨兵)是用於監控redis叢集中Master狀態的工具,其已經被整合在redis2.4+的版本中 一、Sentinel作用: 1):Master狀態檢測 2):如果Master異常,則會進行Master-Slave切換,將
關於叢集、負載均衡、分散式的區別(轉)
1、Linux叢集主要分成三大類( 高可用叢集, 負載均衡叢集,科學計算叢集) 叢集是一個統稱,他分為好幾種,如高效能科學群集、負載均衡群集、高可用性群集等。 科學群集 、高效能叢集(High performance cluster,HPC)它是利用一個叢集中的多臺機器共同
Redis專案實戰---應用及理論(二)---Redis叢集原理
一、 Redis官方推薦叢集方案:Redis Cluster 適用於redis3.0以後版本, redis cluster 是redis官方提供的分散式解決方案,在3.0版本後推出的,有效地解決了re
Redis叢集--Redis叢集之哨兵模式
echo編輯整理,歡迎轉載,轉載請宣告文章來源。歡迎新增echo微信(微訊號:t2421499075)交流學習。 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!!! 搭建Redis叢集之前請準備好3臺已經安裝好Redis的伺服器,CentOS7下安裝Redis請閱讀:https
從Nginx的access日誌統計PV、UV和熱點資源
port 需求 lba jquery 實現 有用 控制臺 pen for 需求: 在阿裏雲-CDN管理控制臺的監控頁面裏,有對PV、UV和熱點資源的統計。於是自己也寫了腳本來獲取相關數據。分析: PV:指網站的訪問請求數。包含同一來源IP的多次請求。 UV
Nginx訪問日誌(access_log)配置
location 緩沖區 per 防盜鏈 rem mime pes erro error Nginx訪問日誌主要有兩個參數控制 log_format #用來定義記錄日誌的格式(可以定義多種日誌格式,取不同名字即可) access_log #用來指定日至文件的路徑及使用的何種
收集Nginx的json格式日誌(五)
IV htm inter .com success earch dom sys access 一.配置nginx [root@linux-node1 ~]# vim /etc/nginx/nginx.conf #修改日誌格式為json格式,並創建一個nginxweb的網站
Netty遊戲伺服器實戰開發(8):利用redis或者zookeeper實現3pc分散式事務鎖(二)。支撐騰訊系列某手遊百萬級流量公測
導讀:在上篇文章中介紹了分散式事務專案的基本原理和工程元件,我們瞭解到了分散式事務的理論知識。處於實戰的經驗,我們將理論知識使用到實際專案中。所以我們將藉助idea中maven工程 來實戰我們的專案。 回到正文: 在上篇文章中我們已經把需要的準備工作做好了。現在
asp.net core mcroservices 機構之 分散式日誌(一)
一 簡介