用ELK打造視覺化集中式日誌

2021-09-23 19:44:04 字數 4057 閱讀 7010

elk是elastic search, logstash和kibana三者的簡稱。

elastic search顧名思義是致力於搜尋,它是乙個彈性搜尋的技術平台,與其相似的有solr,二者的對比可參考下面這篇文章:

elastic search與solr選型

總結一下就是,如果你不喜歡夜店咖還是喜歡忠實可靠的老婆,那選elastic search準沒錯,何況他還有那麼一點美。目前運用es的案例也不少了,比如it屌絲們都愛的git hub以及我d痛恨的wiki。

kibana,呃,羔羊肉餅。估計作者是個洋鬼子北京情懷蜜吧,**寫多了,看著掉了一地的頭髮,想著要是能吃份東來順的銅鍋涮羊肉多好,然後取了這鬼名字吧。kibana主要是用於es分析和查詢。elk裡本來完全可以不用帶他的,用用es的head和bigdesk外掛程式也蠻好,不過kibana的管理和查詢用起來確實方便很多,人嘛,有槍炮用何必非要用刺刀,默默想到樓主的前東家。

那個奶媽形態的德魯伊就是logstash,agent只是logstash承擔的乙個角色,與此對應的是indexer。agent會分別將各自獲取的日誌作為輸入輸出到乙個訊息**(例如redis或者kafka),indexer會將訊息**作為輸入再輸出到es上,由es做indexing。其實logstash在整個過程中只負責輸入輸出,對logstash而言並沒有agent和index之分。如果日誌量小的話完全不需要設定indexer,直接將es作為agent的輸出源。

es不能以root許可權啟動。

樓主的環境;

10.0.250.90 9200 9300

10.0.250.90 9201 9301

10.0.250.90 9200 9300

第乙個埠是對外提供http服務的介面,第二個埠是集**換協議的埠。

cd /opt/elasticsearch-2.1.0/config

vim elasticsearch.yml

以10.0.250.90 9200 9300為例。

修改集群名稱,es預設通過廣播發現節點,所有在廣播裡宣告為同乙個集群名稱的節點都會被自動加入集群中。

cluster.name: es
設定節點名稱

node.name: es-node-2

````

此外可以通過node.master設定節點是否可以被推舉為leader以及node.data設定節點是否儲存索引資料。

節點的定製化屬性資訊,我把三個節點設成r1-r3

"se-preview-section-delimiter">

node.rack: r2

class="se-preview-section-delimiter">div>

path.data: /usr/local/data/

class="se-preview-section-delimiter">div>

path.logs: /var/log/es/

class="se-preview-section-delimiter">div>

bootstrap.mlockall: true

.0.1。可以通過transport.tcp.port設定項設定幾圈交換協議的埠。

1. 設定初始化時的發現列表,新節點會通過單播的方式發現列表裡的節點。

2. 設定有master資格的節點最小個數,低於這個個數可能會發生腦裂。es建議的個數是所有節點數/2+1。

所謂腦裂是指集群中有多個active的master節點,這樣就導致多個節點接管集群服務。舉個例子:

假設a,b,c三個節點都有master資格,a節點為active,其他未standby,但是a節點出了故障,這時b,c就要進行投票選出新的leader,此時的結果就可能會是b和c都互有兩票,量個節點都分別active。

這裡只是描述腦裂成因,和es的腦裂成因並不完全一樣,es的投票機制應該是類似於redis先到先得的那種。不過配置上最好遵從es的建議。

"se-preview-section-delimiter">

discovery.zen.ping.unicast.hosts: [「10.0.250.90:9300」, 「10.0.250.91:9300」]

discovery.zen.minimum_master_nodes: 2

class="se-preview-section-delimiter">div>

bin/elasticsearch

curl

curl /_nodes

推薦安裝head外掛程式,可以檢視集群狀態

class="se-preview-section-delimiter">div>

bin/plugin install mobz/elasticsearch-head

bigdesk外掛程式在當前版本上無法使用,因為es通過rest介面返回的json資料不標準,jquery會出parse錯誤。

通過瀏覽器訪問/_plugin/head

![節點狀態](

class="se-preview-section-delimiter">

div>

## kibana ##

我安裝在251主機上。

class="se-preview-section-delimiter">

div>

vim config/kibana.yml

class="se-preview-section-delimiter">div>

server.port: 5601

class="se-preview-section-delimiter">div>

elasticsearch.url: 「

class="se-preview-section-delimiter">div>

kibana.index: 「.eslogs」

class="se-preview-section-delimiter">div>

bin/kibana

class="se-preview-section-delimiter">div>

## logstash ##

.1.class="se-preview-section-delimiter">div>

bin/logstash -e 」

-e ''會預設以stdin作為輸入,以stdout作為輸出。

我在控制台輸入11111,控制台就輸出了格式化的輸出。

div>11111

class="se-preview-section-delimiter">div>

mkdir config

touch logstash-indexer.conf

vim logstash-indexer.conf

修改logstash-indexer.conf定義輸入源為stdin,輸出為stdout以及es.

div>input

} output

elasticsearch

}class="se-preview-section-delimiter">div>

bin/logstash -f config/logstash-indexer.conf -l /var/log/logstash/logstash.log

「` 輸入「hello this a test message」然後回車

在kibana那就能看到對應的日誌資訊

如何建設視覺化集中管理平台

隨著資訊化建設的不斷深入,新的業務資訊系統不斷上線,越來越多的業務應用需要資訊系統來實現,it架構的規模與複雜度也越來越高,對it管理提出了更高的要求。為了進一步提高it管理,需要建立資料中心的視覺化平台,來實現有效在同一平台管理及掌握資料中心全面狀況。視覺化平台是統一it管理系統的資料展現平台,也...

海量視覺化日誌分析平台之ELK搭建

elk是什麼?e elasticsearch 一款基於的lucene的分布式搜尋引擎,我們熟悉的github,就是由elastisearch提供的搜尋,據傳已經有10tb 的資料量。l logstash 一款分布式日誌收集系統,支援多輸入源,並內建一些過濾操作,支援多輸入元 k kibana 一款配...

pandas視覺化 取得資料的集中趨勢

資料的集中趨勢主要包含均值 一般均值 截尾均值 縮尾均值 幾何平均數 調和平均數 中位數 分位數 眾數。這裡嘗試用視覺化方法取得以上數值。除了部分輸入對話方塊需要鍵盤輸入數值,其餘都用滑鼠完成。部分運算結果 df cars.dist 眾數 moderesult mode array 26 dtype...