主頁 > 資料庫 > 企業級別應用--ELK企業級日志分析系統(ELK 日志分析系統 、配置 Elasticsearch 群集 )

企業級別應用--ELK企業級日志分析系統(ELK 日志分析系統 、配置 Elasticsearch 群集 )

2020-09-16 18:45:39 資料庫

文章目錄

  • 一、 ELK日志系統簡介
    • 1.1 ELK的組成
    • 1.2 日志分析的步驟
    • 1.3 Elasticsearch 介紹
      • 1.3.1 Elasticsearch 的基礎核心概念
    • 1.4 Logstash 介紹
    • 1.5 Kibana 介紹
  • 二、 部署Elasticsearch 群集
    • 2.1 部署程序
      • 1. 準備環境
      • 2. 安裝Elasticsearch軟體
      • 3. 更改elasticsearch主組態檔
      • 4. 開啟elastisearch,并測驗
      • 5. 安裝node組件(手工編譯安裝)
      • 6. 安裝前端框架 phantomjs(手工編譯安裝)
      • 7. 安裝elasticsearch-head插件(手工編譯安裝)
      • 8. 修改elasticsearch主組態檔
      • 9. 啟動elasticsearch-head 服務器
      • 10. 進行訪問
      • 11. 添加資料并查看
  • 三、 安裝logstash
    • 3.1 logstash的安裝程序
      • 1. web服務器的部署
      • 2. 查看JAVA環境
      • 3. 安裝logstash
      • 4. 測驗logstash命令
      • 5. 使用logstash將資訊寫入elasticsearch中--輸入輸出對接
      • 6. 修改logstash組態檔
  • 三、 kibana部署與使用
    • 3.1 部署kibana
    • 3.2 對接apache的日志檔案
    • 3.3 在kibana中進行創建、查看

一、 ELK日志系統簡介

日志分析是運維工程師解決系統故障、發現問題的主要手段,日志包含多種型別,包括程式日志、Web 訪問日志、系統日志以及安全日志等,ELK可以很好地查找以及分析所需要的內容,快速定位是否出現故障,以及哪些機器、哪些服務存在故障,

1.1 ELK的組成

ELK 由 ElasticSearch、Logstash 和 Kiabana 三個開源工具組成,其官方網站為 https://www.elastic.co/cn,

  • Elasticsearch 是一個開源分布式實時分析搜索引擎,建立在全文搜索引擎庫 Apache Lucene 基礎上,同時隱藏了 Apache Lucene 的復雜性,Elasticsearch 將所有的功能 打包成一個獨立的服務,并提供了一個簡單的 RESTfulAPI 介面,它具有分布式、零配置、自動發現、索引自動分片、索引副本機制、RESTful 風格介面、多資料源、自動搜索負載等特點,
  • Logstash 是一個完全開源的工具,主要用于日志收集,同時可以對資料處理,并輸出 給 Elasticsearch,
  • Kibana 也是一個開源和免費的工具,Kibana 可以為 Logstash 和 ElasticSearch 提 供圖形化的日志分析 Web 界面,可以匯總、分析和搜索重要資料日志,

1.2 日志分析的步驟

Logstash 收集 AppServer 產生的 Log,并存放到 ElasticSearch 群集中,而 Kibana 則 從 ES 群集中查詢資料生成圖表,再回傳給 Browser,

  1. 將日志進行集中化管理,
  2. 將日志格式化(Logstash)并輸出到 Elasticsearch,
  3. 對格式化后的資料進行索引和存盤(Elasticsearch),
  4. 前端資料的展示(Kibana),

1.3 Elasticsearch 介紹

Elasticsearch 提供了一 個分布式多用戶能力的全文搜索引擎,基于 RESTful Web 介面,通過該介面,用戶可以通 過瀏覽器與 Elasticsearch 通信,具有實時搜索、穩定、可靠、快速、安裝使用方便等特點,

1.3.1 Elasticsearch 的基礎核心概念

  • 接近實時(NRT):Elasticsearch 是一個搜索速度接近實時的搜索平臺,回應速度非常 快,從開始索引一個檔案到這個檔案能夠被搜索到只有一個輕微的延遲(通常是 1s) ,
  • 群集(cluster) :在一個或多個節點上存放用戶資料,并一起提供索引和搜索功能,通過選舉產生主節點,并提供跨節點的聯合索引和搜索的功能,
  • 節點(node):是指一臺單一的服務器,多個節點組織為一個群集,每個節點都存盤資料并參與群集的索引和搜索功能,默認情況,每個節點都已經加入 Elasticsearch 群集,如果群集中有多個 節點,它們將會自動組建一個名為 Elasticsearch 的群集,
  • 索引(index):類似于關系型資料庫中的“庫”,當索引一個檔案后,就可以使用 Elasticsearch 搜索到該檔案,在 index 下面包含存盤資料的型別(Type),Type 類似于關系型資料 庫中的“表”,用來存放具體資料,而 Type 下面包含檔案(Document),檔案相當于關 系型資料庫的“記錄”,一個檔案是一個可被索引的基礎資訊單元,
  • 分片和副本(shards & replicas):Elasticsearch 將索引分成若干個部分,每個部分稱為一個分片,每個分片就是一個全功能的獨立的索引,分片的數量一般在索引創建前指定,且創建索引后不能更改,
  • 分片的兩個最主要原因如下,
    水平分割擴展,增大存盤量,
    分布式并行跨分片操作,提高性能和吞吐量,
  • Elasticsearch 將索引分片復制一份或多份,稱為副本,副本是索引 的另一個備份,用于資料冗余以及負載分擔,默認情況下 Elasticsearch 自動對索引請求進行負載分擔,

1.4 Logstash 介紹

Logstash 由 JRuby 語言撰寫,運行在 Java 虛擬機(JVM)上,常用于日志處理,Logstash 只做三件事情:資料輸入、資料加工(如過濾,改寫等) 以及資料輸出,
LogStash 的主要組件如下,

  • Shipper:日志收集者,負責監控本地日志檔案的變化,及時收集最新的日志檔案內容,通常遠程代理端(agent)只需要運行這個組件即可,
  • Indexer:日志存盤者,負責接收日志并寫入到本地檔案,
  • Broker:日志 Hub,負責連接多個 Shipper 和多個 Indexer,
  • Search and Storage:允許對事件進行搜索和存盤,
  • WebInterface:基于 Web 的展示界面,

Logstash 使用管道方式進行日志的搜集處理和輸出,有點類似 Linux 系統的管道命令, 將前一個流程的處理結果發送到后一個流程繼續處理,在 Logstash 中,包括了三個階段, 分別是輸入(Input )、處理(Filter,非必需)和輸出(Output),

1.5 Kibana 介紹

Kibana可以搜索、查看存盤在 Elasticsearch 索引中的資料,并通過各種圖表進行高級資料分析及展示,讓資料看起來一目了然,

Kibana 的主要功能如下,

  • Elasticsearch 無縫之集成,Kibana 架構是為 Elasticsearch 定制的,可以將任何(結構 化和非結構化)資料加入 Elasticsearch 索引,
  • 整合資料,Kibana 可以讓海量資料變得更容易理解,根據資料內容可以創建形象的柱形圖、折線圖、散點圖、直方圖、餅圖和地圖,方便用戶查看,
  • 復雜資料分析,Kibana 提升了 Elasticsearch 的分析能力,能夠更加智能地分析資料,執行資料轉換并且根據要求對資料切割分塊,
  • 讓更多團隊成員受益,強大的資料庫可視化介面讓各業務崗位都能夠從資料集合受益,
  • 介面靈活,分享更容易,使用 Kibana 可以更加方便地創建、保存、分享資料,并將可視化資料快速交流,
  • 配置簡單,Kibana 的配置和啟用非常簡單,用戶體驗非常友好,Kibana 自帶 Web 服務,可以快速啟動運行,
  • 可視化多資料源,Kibana 可以非常方便地把來自 Logstash、ES-Hadoop、Beats 或第三方技術的資料整合到 Elasticsearch,
  • 簡單資料匯出,Kibana 可以方便地匯出感興趣的資料,與其他資料整合并融合后快速建模分析,發現新結果,

二、 部署Elasticsearch 群集

部署Elasticsearch 群集至少需要兩臺服務器

2.1 部署程序

1. 準備環境

修改主機名、hosts檔案、關閉防火墻、內核防護

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# su
[root@node1 ~]# vim /etc/hosts    ##在hosts檔案中寫入下面的決議條目
14.0.0.77 node1
14.0.0.110 node2
[root@node1 ~]# systemctl stop firewalld.service 
[root@node1 ~]# setenforce 0
[root@node1 ~]# java -version    ##查看jdk是否安裝
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# su
[root@node2 ~]# vim /etc/hosts
14.0.0.77 node1
14.0.0.110 node2
[root@node2 ~]# systemctl stop firewalld.service 
[root@node2 ~]# setenforce 0

2. 安裝Elasticsearch軟體

兩個節點服務器進行相同的操作,以node1服務器為例

[root@node1 ~]# cd /opt   ##將軟體包拷貝到/opt目錄下
rz waiting to receive.
[root@node1 opt]# ls
elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm                    rh
elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm     ##rpm方式安裝elasticsearch軟體
警告:elasticsearch-5.5.0.rpm: 頭V4 RSA/SHA512 Signature, 密鑰 ID d88e42b4: NOKEY
準備中...                          ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
正在升級/安裝...
   1:elasticsearch-0:5.5.0-1          ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
[root@node1 opt]# systemctl daemon-reload     ##多載系統服務
[root@node1 opt]# systemctl enable elasticsearch.service    ##設定為開機自啟動
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.

3. 更改elasticsearch主組態檔

node1與node2做同樣的操作

[root@node1 opt]# cp -p /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak     ##將組態檔做備份,防止錯改組態檔
[root@node1 opt]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# vim elasticsearch.yml
cluster.name: my-elk-cluster   ##17行,設定集群名字
node.name: node1               ##23行,設定節點名字
path.data: /data/elk_data      ##33行,資料存放路徑
path.logs: /var/log/elasticsearch/     ##37行,日志存放路徑
bootstrap.memory_lock: false           ##43行,不在啟動的時候鎖定記憶體
network.host: 0.0.0.0                  ##55行,提供服務系結的IP地址,0.0.0.0代表所有網段
http.port: 9200                        ##59行,偵聽埠9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]          ##68行,集群發現通過單播實作
[root@node1 elasticsearch]# grep -v '^#' elasticsearch.yml    ##查看剛剛更改的組態檔是否成功
cluster.name: my-elk-cluster
node.name: node1
path.data: /data/elk_data
path.logs: /var/log/elasticsearch/
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
[root@node1 elasticsearch]# mkdir -p /data/elk_data     ##創建elasticsearch的資料檔案存放位置
[root@node1 elasticsearch]# id elasticsearch    ##查看用戶
uid=987(elasticsearch) gid=981(elasticsearch) =981(elasticsearch)
[root@node1 elasticsearch]# chown elasticsearch.elasticsearch /data/elk_data/       ##設定elasticsearch的資料檔案存放目錄屬組、屬主為elasticsearch

4. 開啟elastisearch,并測驗

node1和node2做同樣的操作

[root@node1 elasticsearch]# systemctl start elasticsearch.service     ##需要等待一會埠開會開啟
[root@node1 elasticsearch]# netstat -ntap | grep 9200   
tcp6       0      0 :::9200                 :::*                    LISTEN      65901/java  

在真機中訪問

http://14.0.0.77:9200
http://14.0.0.110:9200

在這里插入圖片描述
在這里插入圖片描述

http://14.0.0.77:9200/_cluster/health?pretty
http://14.0.0.110:9200/_cluster/health?pretty

在這里插入圖片描述

在這里插入圖片描述

http://14.0.0.77:9200/_cluster/state?pretty
http://14.0.0.110:9200/_cluster/state?pretty

在這里插入圖片描述
在這里插入圖片描述

5. 安裝node組件(手工編譯安裝)

軟體包之前已經拷貝到/opt目錄下了,直接進行解壓安裝

[root@node1 elasticsearch]# cd /opt
[root@node1 opt]# yum install gcc gcc-c++ -y
[root@node1 opt]# tar zxvf node-v8.2.1.tar.gz   ##解壓
[root@node1 node-v8.2.1]# ./configure           ##configure配置
[root@node1 node-v8.2.1]# make -j4              ##編譯安裝,-j4是指四個執行緒運行,編譯速度比較慢,大概20分鐘
[root@node1 node-v8.2.1]# make install          ##安裝

6. 安裝前端框架 phantomjs(手工編譯安裝)

[root@node1 opt]# tar jvxf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/    ##解壓
[root@node1 opt]# cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/
[root@node1 phantomjs-2.1.1-linux-x86_64]# cd bin/
[root@node1 bin]# ls
phantomjs
[root@node1 bin]# cp phantomjs /usr/local/bin/     ##將腳本拷貝到指定目錄下,便于系統識別

7. 安裝elasticsearch-head插件(手工編譯安裝)

[root@node1 bin]#  cd /opt
[root@node1 opt]# tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/
[root@node1 opt]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm install    ##等待安裝

8. 修改elasticsearch主組態檔

[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml     ##在檔案末尾寫入下面兩句
http.cors.enabled: true        ##開啟跨域訪問支持,默認為false
http.cors.allow-origin: "*"    ##跨域訪問允許的域名地址
[root@node1 elasticsearch-head]# systemctl restart elasticsearch.service

9. 啟動elasticsearch-head 服務器

[root@node1 elasticsearch-head]# pwd
/usr/local/src/elasticsearch-head
[root@node1 elasticsearch-head]# npm run start &    ##開啟服務,在后臺運行
[1] 112187
[root@node1 elasticsearch-head]# 
> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100    ##埠為9100
[root@node1 elasticsearch-head]# netstat -ntap | grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      112197/grunt  

10. 進行訪問

在真機中進行訪問

14.0.0.77:9100
14.0.0.110:9100

在這里插入圖片描述
在這里插入圖片描述

11. 添加資料并查看

[root@node1 elasticsearch-head]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'     ##存資料
{
  "_index" : "index-demo",
  "_type" : "test",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "created" : true
}

在這里插入圖片描述

三、 安裝logstash

這里還是再準備兩臺centos7的虛擬機,一臺作為web服務器,安裝apache服務,另外一臺安裝logstash收集apache的日志,并交給elasticsearch進行存盤,

3.1 logstash的安裝程序

1. web服務器的部署

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# hostnamectl set-hostname apache
[root@localhost ~]# su
[root@apache ~]# yum install httpd -y
[root@apache ~]# systemctl start httpd

2. 查看JAVA環境

[root@apache ~]# java -version    ##如果沒有安裝,使用yum install java -y 安裝
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

3. 安裝logstash

[root@apache ~]# cd /opt
將軟體包拷貝到這個目錄下
[root@apache opt]# rpm -ivh logstash-5.5.1.rpm    ##安裝logstash
警告:logstash-5.5.1.rpm: 頭V4 RSA/SHA512 Signature, 密鑰 ID d88e42b4: NOKEY
準備中...                          ################################# [100%]
正在升級/安裝...
   1:logstash-1:5.5.1-1               ################################# [100%]
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash
[root@apache opt]# systemctl start logstash.service    ##開啟服務
[root@apache opt]# systemctl enable logstash.service   ##設定開機自啟動
Created symlink from /etc/systemd/system/multi-user.target.wants/logstash.service to /etc/systemd/system/logstash.service
[root@apache opt]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/    ##建立軟連接便于系統識別

logstash (Apache)與elasticsearch (node)功能是否正常,可以使用logstash命令做對接測驗,常用命令引數如下:

  • -f 通過這個選項可以指定logstash的組態檔,根據組態檔配置logstash
  • -e后面跟著字串該字串可以被當做logstash的配置(如果是””,則默認使用stdin做為輸入、stdout作為輸出)
  • -t測驗組態檔是否正確,然后退出

4. 測驗logstash命令

  • 輸入采用標準輸入輸出采用標準輸出—在Apache服務器上
[root@apache opt]# logstash -e 'input { stdin {} } output { stdout {} }'
輸入命令后會進入一個輸入輸出的狀態,我們輸入什么,就會按照格式給我們輸出出來
...
省略掉部分提示資訊
2020-09-15T14:28:01.479Z apache 
www.njit.com     ##這里就是自己輸入的內容
2020-09-15T14:29:54.032Z apache www.njit.com     ##這是按照格式輸出的內容
zhangsan
2020-09-15T14:30:00.274Z apache zhangsan

在這里插入圖片描述

  • 使用rubydebug顯示詳細輸出,codec為一種編解碼器
[root@apache opt]# logstash -e 'input { stdin {} } output { stdout { codec=>rubydebug } }'
...
省略掉部分提示資訊
www.njit.com     ##輸入資訊,以下為輸出資訊
{
    "@timestamp" => 2020-09-15T14:37:50.914Z,
      "@version" => "1",
          "host" => "apache",
       "message" => "www.njit.com"
zhangsan       ####輸入資訊,以下為輸出資訊
{
    "@timestamp" => 2020-09-15T14:38:18.485Z,
      "@version" => "1",
          "host" => "apache",
       "message" => "zhangsan"
}

5. 使用logstash將資訊寫入elasticsearch中–輸入輸出對接

[root@apache opt]# logstash -e 'input { stdin {} } output { elasticsearch { hosts=>["14.0.0.77:9200"] } }'     ##將資訊寫入elasticsearch中
...
省略部分資訊
www.njit.com

在真機上進行查看
在這里插入圖片描述
在這里插入圖片描述

6. 修改logstash組態檔

Logstash組態檔主要由三部分組成: input、output、filter(根據需要)

[root@apache opt]# cd /var/log/
[root@apache log]# ll | grep messages 
-rw-------. 1 root     root   678003 9  15 22:52 messages   ##權限為管理員讀寫,需要被其它用戶讀
[root@apache log]# chmod o+r messages
[root@apache log]# ll | grep messages 
-rw----r--. 1 root     root   685620 9  15 22:54 messages
[root@apache log]# cd /etc/logstash/
[root@apache logstash]# vim logstash.yml    ##組態檔中寫明了子組態檔的路徑,需要到這個路徑下創建檔案才能被識別

在這里插入圖片描述

[root@apache log]# vim /etc/logstash/conf.d/system.conf
input {
       file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
      }
output {
        elasticsearch {
          hosts => ["14.0.0.77:9200"]
          index => "system-%{+YYYY.MM.dd}"
          }
        }
[root@apache logstash]# systemctl restart logstash.service

在真機中訪問,產生了新的索引檔案
在這里插入圖片描述

三、 kibana部署與使用

3.1 部署kibana

再使用一臺新的虛擬機14.0.0.107作為kibana服務器,也可以在node1節點服務器上直接安裝

[root@localhost ~]# hostnamectl set-hostname kibana
[root@localhost ~]# su
將軟體包拷貝到當前目錄下
[root@kibana ~]# rpm -ivh kibana-5.5.1-x86_64.rpm
[root@kibana ~]# cd /etc/kibana/
[root@kibana kibana]# cp kibana.yml kibana.yml.bak
[root@kibana kibana]# vim kibana.yml
server.port: 5601                ##2行,kibana打開的埠
server.host: "0.0.0.0"           ##7行,kibana偵聽的地址
elasticsearch.url: "http://14.0.0.77:9200"     ##21行,和elasticsearch建立聯系
kibana.index: ".kibana"            ##30行,在elasticsearch中添加.kibana索引
[root@kibana kibana]# systemctl start kibana.service 
[root@kibana kibana]# systemctl enable kibana.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.

在真機查看索引
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

3.2 對接apache的日志檔案

[root@apache logstash]# cd /etc/logstash/conf.d/
[root@apache conf.d]# vim apache_log.conf

        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
        }
       file{
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
        }
        
      } 
output {
        if [type] == "access" {
        elasticsearch {
          hosts => ["14.0.0.77:9200"]
          index => "apache_access-%{+YYYY.MM.dd}"
          }
        } 
        if [type] == "error" {
        elasticsearch {
          hosts => ["14.0.0.77:9200"]
          index => "apache_error-%{+YYYY.MM.dd}"
          }
        }
        }
[root@apache conf.d]#  /usr/share/logstash/bin/logstash -f apache_log.conf    ##不重啟服務,直接加載組態檔

3.3 在kibana中進行創建、查看

在真機中進行查看
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在kibana中為apache日志創建索引
在這里插入圖片描述
在這里插入圖片描述
同樣的操作創建apache_error
在這里插入圖片描述
在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/59169.html

標籤:其他

上一篇:云計算運維必會的PXE批量裝機!

下一篇:Linux磁盤空間管理-------- GPT磁區模式

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more