elasticsearch+logstash之間傳輸效率以及es-sql查詢效率簡單測試
對於logstash解析大批量資料並傳輸到elasticsearch中的過程簡單進行一些資料的測試,條件4G記憶體,logstash中配置index.refresh_interval=5s,(這個資料是es索引重新整理速率,就是資料傳輸到es中,es不會實時展示,延遲五秒,一般來說es配置1s),index.refresh_interval的增加可以較大提高插入資料的效率,特別的,可以將其改為-1,等到大批量資料匯入完成後,再改回去
這裡有幾個優化logstash、elasticsearch的部落格,連線掛在最後啦。
標準方法:
inputs/generator 是無中生有,output/null 則是鋸嘴葫蘆。事件流轉到這裡直接就略過,什麼操作都不做。相當於只測試 Logstash 的 pipe 和 filter 效率。input { generator { count => 10000000 message => '{"key1":"value1","key2":[1,2],"key3":{"subkey1":"subvalue1"}}' codec => json } }
$ time ./bin/logstash -f generator_null.conf
output {
stdout {
codec => dots
}
}
下面就要介紹 pv 命令了。這個命令的作用,就是作實時的標準輸入、標準輸出監控。我們這裡就用它來監控標準輸出:
可以很明顯的看到在前幾秒中,速度是 0 B/s,因為 JVM 還沒啟動起來呢。開始執行的時候,速度依然不快。慢慢增長到比較穩定的狀態,這時候的才是你需要的資料。$ ./bin/logstash -f generator_dots.conf | pv -abt > /dev/null
但是在Centos上面過 yum 安裝的 pv 命令,版本較低,可能還不支援 -a 引數(我用的centos7,已經完全沒有pv命令了)
我的實際測試:
測試elastic的流程:複製檔案到指定位置,logstahs先啟動後會不斷檢測並傳輸到es
最終測試結果:
一份168條文件,2mb,複製50次
最終是8400份資料,沒有錯誤
9:25 -- 9:25 200條/s(左右?) 一條日誌36000字元
order by log_json_content.trace.linenumber 1s不到,很快
group by linenumber 0,50,100,150 1s不到,很快
分詞器全文檢索(en?) 1s不到,很快 type=matchQuery('ERRor') ('error') 1s不到,很快
一份168條文件,2mb,複製100次
最終是16800份資料,沒有錯誤
10:27 -- 10:28 1分10s 240條/s(可能sql不斷查詢還耽誤了點時間) 一條日誌36000字元
order by log_json_content.trace.linenumber 1s不到,很快
group by linenumber 0,50,100,150 1s不到,很快
type=matchQuery('ERRor') ('error') 1s不到,很快
附上覆制系統自帶的日誌資料到指定位置的shell程式碼,很簡單(大神見笑)
#!/bin/bash
file_in_Name="/home/cuixuange/Public/elk/syslog"
cd /home/cuixuange/Public/elk/test_log
for i in $(seq 1 50)
do
name=$(printf shell_%02d.log $i)
touch $name
while read line
do
echo $line >>$name
done < $file_in_Name
chmod -R 777 /home/cuixuange/Public/elk/test_log/$name
sleep 0.1s
done
其中cd 使用注意下;後面我是為了模範真實情況使用逐條讀取複製再寫入的方式,也可以直接用cp cat 之類的
注意:ubuntu日誌資料中的日期空格應該是tab隔開的,因為同樣的資料在centos系統中發現長度就不一樣,會使得logstash中的即將使用的conf檔案中grok解析會出現問題(所以要注意到統一的問題,空格是空格,tab是tab)
下面把;logstash解析ubuntu syslog 的conf檔案放上來吧
input {
file{
path => ["/home/cuixuange/Public/elk/test_log/*.log"]
start_position=>"beginning"
# discover_interval => 15
# stat_interval => 1
# sincedb_write_interval => 15
}
}
filter{
grok{
match=>{ "message" => "(?m)%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}"
}
}
date {
match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
# locale => "en"
# timezone=>"+00:00"
remove_field => [ "timestamp"]
}
}
output {
elasticsearch {
host => "192.168.88.130"
# index => "logstash-shell-%{+2016.MMM.dd}" #logstash-* to find
# index => "logstash-shell"
# protocol => transport
workers =>5
template_overwrite =>true
}
}
elasticsearch-sql外掛就不多說了,支援各種查詢方法,可以到github上面去看一下,有很多簡單例子,特別是其中的全文分詞檢索的支援,很棒,一般中文的話考慮ik分詞器
還有一開始說的es,logstash的優化問題:
相關推薦
elasticsearch+logstash之間傳輸效率以及es-sql查詢效率簡單測試
對於logstash解析大批量資料並傳輸到elasticsearch中的過程簡單進行一些資料的測試,條件4G記憶體,logstash中配置index.refresh_interval=5s,(這個資料是es索引重新整理速率,就是資料傳輸到es中,es不會實時展示
mysql傳入一個時間範圍 查詢每一天的彙總資料 以及es-sql的寫法
案例: select sum(quantity) as quantity, sum(charge_weight) as charge_weight, sum(balance_amount) as balance_amount, DATE_FORMAT(create_time,'%
提高sql查詢效率
無法 結構 創建 存儲 開發 連續 新建 操作符 rom 1.對查詢進行優化,應盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描
轉:關於SQL查詢效率優化
1.關於SQL查詢效率,100w資料,查詢只要1秒,與您分享: 機器情況 p4: 2.4 記憶體: 1 G os: windows 2003 資料庫: ms sql server 2000 目的: 查詢效能測試,比較兩種查詢的效能 SQL查詢效率 step by step -- setp 1. --
資料庫SQL查詢效率in、exists、left join on、right join on 適用場景與比較
in 與 join例 select t1.id,sum(t1.num) from (select * from t2 where num =2) as t3 LEFT JOIN t1 on t3.id=t1.id GROUP BY t1.id; join 時間: 0.005
《提高SQL查詢效率的30種方法》
1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應儘量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如: select id from t
Oracle提高SQL查詢效率where語句條件的先後次序
(1)選擇最有效率的表名順序(只在基於規則的優化器中有效): Oracle的解析器按照從右到左的順序處理FROM子句中的表名,FROM子句中寫在最後的表(基礎表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎
SQL查詢效率提高方法
關於SQL查詢效率,100w資料,查詢只要1秒 1.關於SQL查詢效率,100w資料,查詢只要1秒,與您分享: 機器情況 p4: 2.4 記憶體: 1 G os: windows 2003 資料庫: ms sql server 2000 目的: 查
SQL 查詢效率
很多人不知道SQL語句在SQL SERVER中是如何執行的,他們擔心自己所寫的SQL語句會被SQL SERVER誤解。比如: select * from table1 where name='zhangsan' and tID > 10000 和執行: se
要提高SQL查詢效率where語句條件的先後次序應如何寫
我們要做到不但會寫SQL,還要做到寫出效能優良的SQL語句。 (1)選擇最有效率的表名順序(只在基於規則的優化器中有效): Oracle的解析器按照從右到左的順序處理FROM子句中的表名,FROM子句中寫在最後的表(基礎表 driving table)將被最先處理,在FROM子句中包含多個表的情況下,你必須
ELK (ElasticSearch + Logstash + Kibaba + Marvel)系統的搭建學習與簡單使用
ELK 實時日誌分析系統平臺的學習與使用 ElasticSearch Logstash Kibana Marvel Log Linux 簡介 工作工程中,不論是開發還是運維,都會遇到各種各樣的日誌,主要包括系統日誌、應用程式日誌和安全日誌,對於
如何在 SQL Server 2005 實例之間傳輸登錄和密碼
cati 知識庫 語句 generated target policy cond 權限 asc 簡介本文介紹如何在不同服務器上的 Microsoft SQL Server 2005 實例之間傳輸登錄和密碼。有關如何在其他版本的 SQL Server 實例之間傳輸登錄和密碼的
SQL Union和SQL Union All兩者用法區別效率以及與order by 和 group by配合問題
SQL UNION 操作符 UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。 請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 SELECT 語句中的列的順序必須相同。 SQL UNION
TCP和UDP的傳輸過程以及二者之間的區別
TCP和UDP的區別 TCP TCP/IP協議是一個協議簇。裡面包括很多協議的。UDP只是其中的一個。之所以命名為TCP/IP協議,因為TCP,IP協議是兩個很重要的協議,就用他兩命名了。TCP和UDP協議屬於傳輸層協議,而IP協議屬於網路層協議。 TCP(
linux下用scp命令在兩個服務器之間傳輸文件,利用php_scp函數進行文件傳輸
evc 在操作 path send 返回值 遠程 false cal 上傳 在linux下利用scp進行文件傳輸, 從服務器下載文件 scp [email protected]/* */:/path/filename /path/filename 上傳
基於ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合測試
success move maven issues ats call using env proto 前言開源實時日誌分析ELK平臺(ElasticSearch, Logstash, Kibana組成),能很方便的幫我們收集日誌,進行集中化的管理,並且能很方便的進行日誌的統
(高版本)ELK(Elasticsearch + Logstash + Kibana)服務服務搭建
服務器 搜索引擎 雲計算 一、ELK是什麽鬼?ELK實際上是三個工具的集合,Elasticsearch + Logstash + Kibana,這三個工具組合形成了一套實用、易用的監控架構,很多公司利用它來搭建可視化的海量日誌分析平臺。1. ElasticSearchElasticSearch是一
PHP:測試SQL註入以及防止SQL註入
escape sca ase ouya pro sch 參與 則表達式 其中 在寫登錄註冊的時候發現了SQL和JS註入這個危害網站的用戶舉動: 測試方法: SQL註入: 1 先來做一個測試: 2 用戶名:’ or 1 # 3 密碼:隨便寫8位以上
【轉載】xShell5 利用 sftp 在本地和服務器之間傳輸文件
exc user water 文件夾路徑 secure heal health jpg 連接方式 sftp是Secure File TransferProtocol的縮寫,安全文件傳送協議。可以為傳輸文件提供一種安全的加密方法。sftp與 ftp有著幾乎一樣的語法和功能。S
javascript中數組與字符串之間的轉換以及字符串的替換
ons spl 字符串 console 替換字符 javascrip con ole lac 數組轉化為字符串: var a=[‘aa‘,‘bb‘,‘cc‘]; var b=a.join(‘-‘); console.log(b)----->‘aa-bb-c