1. 程式人生 > >ELK 叢集 + Redis 叢集 + Nginx ,分散式的實時日誌(資料)蒐集和分析的監控系統搭建,簡單上手使用

ELK 叢集 + Redis 叢集 + Nginx ,分散式的實時日誌(資料)蒐集和分析的監控系統搭建,簡單上手使用

原文地址:https://segmentfault.com/a/1190000010975383

簡述

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, SetsOrdered 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 點選安裝

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 logstashRedis 日誌傳送到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 次,生成測試資料
nginx

4.檢視測試資料

開啟RedisDesktopManager 頁面看看Nginx 重新整理頁面的訪問成功日誌,看到 寫進 Redis 2 條資料

ps 這只是個視覺化Redis介面而已,你也可以使用命令列檢視

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 logstashRedis 日誌傳送到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` 重新整理頁面的訪問成功日誌資料

DevTools

8.使用ElasticSearchHead

通過 ElasticSearchHead 外掛 檢視資料

ElasticSearchHead

9.使用kibana Discover

首先使用kibana Discover配置索引 logstash-*

ps ( 索引名稱是按照 elasticsearch 寫入時建立的索引 index => "logstash-%{type}-%{+YYYY.MM.dd}" 這個配置在上面開啟 logstash indexer 有提到

elasticsearch 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 機構之 分散式日誌

      一 簡介