日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

简单安装ELK分析日志及使用心得

發(fā)布時(shí)間:2023/12/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单安装ELK分析日志及使用心得 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ELK是由Elasticsearch、Logstash、Kibana三個(gè)組件組成的。
Elasticsearch:是ELK的核心插件,是一個(gè)基于Lucene的搜索服務(wù)器,它提供一個(gè)分布式多用戶能力的全文搜索引擎,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝方便。Elasticsearch服務(wù)會(huì)開(kāi)啟兩個(gè)端口,9200和9300,其中9200是對(duì)外服務(wù)的,9300是對(duì)集群內(nèi)交互使用的。
Logstash:日志收集工具,可以從本地磁盤,網(wǎng)絡(luò)服務(wù)(自己監(jiān)聽(tīng)端口,接受用戶日志),消息隊(duì)列中收集各種各樣的日志。然后對(duì)日志進(jìn)行分析整理,輸出到指定的輸出,(如elasticsearch、redis、終端等。)監(jiān)聽(tīng)9600端口。
Kibana:是一個(gè)可視化日志web展示工具,對(duì)Elasticsearch中存儲(chǔ)的日志進(jìn)行展示。監(jiān)聽(tīng)5601端口。

在這里我直接三個(gè)組件裝在同一臺(tái)機(jī)器上面,也可以把他們分開(kāi)。
192.168.40.15 elasticsearch logstash kibana

由于ES與logstash都需要JDK環(huán)境,所以要先安裝JDK環(huán)境,最好是安裝1.8或者以上的。

[root@elkserver ~]# java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

安裝ES:

[root@elkserver src]# tar -xf elasticsearch-5.6.3.tar.gz [root@elkserver src]# mv elasticsearch-5.6.3/ /usr/local/elasticsearch [root@elkserver src]# cd /usr/local/elasticsearch/ ##修改配置文件: [root@elkserver elasticsearch]# vim config/elasticsearch.yml node.name: elkserver network.host: 192.168.40.15 discovery.zen.minimum_master_nodes: 1 ##在配置文件末尾添加: http.cors.enabled: true http.cors.allow-origin: "*" ##這兩句是為了后面安裝head插件使用的。

安裝head插件
head插件能夠生成集群的統(tǒng)計(jì)數(shù)據(jù),并提供瀏覽器查詢,同時(shí)還能對(duì)elasticsearch索引進(jìn)行結(jié)構(gòu)化查詢。

cd /usr/local/elasticsearch mkdir head cd head git clone https://github.com/mobz/elasticsearch-head.git cd elasticsearch-head/ yum install -y npm* ##安裝npm命令 npm install ##運(yùn)行緩慢 npm install -g grunt-cli ##修改配置文件 [root@elkserver elasticsearch-head]# vim Gruntfile.js connect: {server: {options: {port: 9100,hostname: '0.0.0.0', ##添加這行,冒號(hào)后面有空格base: '.',keepalive: true}}} ##修改elasticsearch的JVM運(yùn)行內(nèi)存,這個(gè)可以根據(jù)需要更改,但是-Xms和-Xmx的值必須一樣,不然啟動(dòng)報(bào)錯(cuò)[root@elkserver elasticsearch-head]# vim /usr/local/elasticsearch/config/jvm.options -Xms1g -Xmx1g ##修改Linux最大打開(kāi)文件數(shù) vim /etc/security/limits.conf * soft nofile 655350 ##在末尾添加 * hard nofile 655350 [root@elkserver ~]# ulimit -n 655350 ##修改sysctl.conf文件 [root@elkserver ~]# vim /etc/sysctl.conf vm.max_map_count=655350 [root@elkserver ~]# sysctl -p

將ES的head插件啟動(dòng),然后創(chuàng)建普通用戶,啟動(dòng)ES,ES只能使用普通用戶啟動(dòng)

useradd elastic passwd elastic##啟動(dòng)head插件 [root@elkserver elasticsearch-head]# pwd /usr/local/elasticsearch/head/elasticsearch-head [root@elkserver elasticsearch-head]# grunt server & ##會(huì)開(kāi)啟9100端口。 ##切換到普通用戶啟動(dòng)elasticsearch [root@elkserver elasticsearch-head]# chown -R elastic:elastic /usr/local/elasticsearch/ [root@elkserver elasticsearch-head]# su - elastic Last login: Sun Jun 10 13:15:09 CST 2018 on pts/0 [elastic@elkserver ~]$ nohup /usr/local/elasticsearch/bin/elasticsearch & [1] 2339 [elastic@elkserver ~]$ nohup: ignoring input and appending output to ‘nohup.out’ ##啟動(dòng)成功是會(huì)開(kāi)啟9200,9300兩個(gè)端口的。 ##在瀏覽器打開(kāi)可以利用head插件查看elasticsearch的集群及索引情況 ![](https://s1.51cto.com/images/blog/201806/10/2ea5998c2fd589e6a539a5afe1b6f598.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

安裝Logstash
Logstash也是需要jdk環(huán)境,所以如果是在不同機(jī)器上部署的,需要安裝jdk環(huán)境,版本可以選擇和ES一樣的。

[root@elkserver src]# tar -xf logstash-5.6.3.tar.gz [root@elkserver src]# mv logstash-5.6.3 /usr/local/logstash ##創(chuàng)建日志處理文件的存放目錄 mkdir /logstash cd /logstash ##接下來(lái)是重點(diǎn),也是ELK的難點(diǎn)吧,就是將日志進(jìn)行分析,使用正則匹配過(guò)濾日志中想要的內(nèi)容。 120.79.189.51 - - [10/Jun/2018:12:58:12 +0800] "POST /wp-cron.php?doing_wp_cron=1528606692.3628709316253662109375 HTTP/1.1" 499 0 "-" "WordPress/4.8; http://120.79.189.51"這是日志中的一行,logstash的正則匹配默認(rèn)是匹配一行,以回車符作為分隔符。 當(dāng)然如果日志是json格式的那么就沒(méi)有需要處理直接輸出即可。 [root@elkserver logstash]# cat input_flter_output.conf input {file {path => "/logstash/test.log"type => "test.log"start_position => "beginning"} } filter {grok {match => {"message" => "(?<ip_addr>\d+?\.\d+?\.\d+?\.\d+?)\s-\s-\s\[(?<log_date>\d+?/\w+?/\d+?):(?<log_time>\d+?:\d+?:\d+?)\s+"}}} output {stdout {codec => rubydebug} } 這是logstash的日志分析文件,總共分為三個(gè)大部分,input、flter、output,其中input是輸入日志,這里選擇的是file文件,path是文件的路徑,type是文件的類型,這個(gè)可以自定義,主要用來(lái)區(qū)分每個(gè)日志,start_position是設(shè)定為beginning是指從文件的開(kāi)頭開(kāi)始讀取。 flter是處理日志的部分,使用grok這個(gè)強(qiáng)大的組件進(jìn)行信息過(guò)濾,對(duì)于日志的正則匹配最總會(huì)以json的格式輸出,所以正則匹配的格式是(?<字段名>正則表達(dá)式過(guò)濾將要匹配的內(nèi)容)在每個(gè)括號(hào)內(nèi)創(chuàng)建過(guò)濾的內(nèi)容,將不需要的內(nèi)容放在括號(hào)外,可以一直做匹配知道日志結(jié)束,這里我只是簡(jiǎn)單匹配日志前面的ip地址和日期時(shí)間。 針對(duì)正則匹配字段詳細(xì)說(shuō)明: 正則匹配字段通過(guò)“(?<字段名>正則表達(dá)式)”來(lái)定義,我們看到“(?<ip_addr>\d+?\.\d+?\.\d+?\.\d+?”匹配了日志中的IP地址,然后將不需要的內(nèi)容放在括號(hào)外面匹配,接著是日期和時(shí)間,使用同樣的方式,然后不需要的內(nèi)容放在外面因?yàn)檫@里我只匹配了前面的一點(diǎn)內(nèi)容,如果有需要提取,可以一直匹配,知道這一行結(jié)束,logstash默認(rèn)只會(huì)匹配日志以行作為分割,下一行又是新的一次匹配了。output是處理輸出部分,這里我只是簡(jiǎn)單輸出到終端,先實(shí)驗(yàn)正則匹配沒(méi)問(wèn)題后,將輸出指向elasticsearch。 ##這里先看看終端的輸出內(nèi)容,也就是經(jīng)過(guò)logstash過(guò)濾后的日志 ![](https://s1.51cto.com/images/blog/201806/10/d911c12532dffb112e5090eaafa08aa9.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 接下來(lái)將日志輸出到elasticsearch,修改output里面的內(nèi)容即可。 output {elasticsearch { ##指定輸出到ESaction => "index" ##建立索引hosts => "192.168.40.15:9200" ##ES地址端口index => "test_log-%{+yyyy.MM.dd}" ##索引的名稱}stdout {codec => rubydebug} } 然后再執(zhí)行一次 /usr/local/logstash/bin/logstash -f input_flter_output.conf

安裝kibana

[root@elkserver src]# rpm -ivh kibana-5.6.3-x86_64.rpmvim /etc/kibana/kibana.yml server.host: "192.168.40.15" ##指定本地server地址 elasticsearch.url: "http://192.168.40.15:9200" ##指定elasticsearch對(duì)外服務(wù)的url

接下來(lái)就是直接在瀏覽器打開(kāi)kibana的web界面,然后建立索引庫(kù),索引是只想elastic的,在logstash日志分析文件里面有建立了一個(gè)索引,索引的名稱是test_log-${日期}這樣的形式。
訪問(wèn)kibana:http://192.168.40.15:5601

輸入相應(yīng)的索引,然后建立索引庫(kù),然后就可以制作各種各樣的圖形分析日志,kibana提供了很多中圖形,根據(jù)需要選擇分析。


記得ELK是實(shí)時(shí)的日志分析,所以kibana的web界面右上角的時(shí)間如果設(shè)置不好就看不到導(dǎo)入的日志了。

轉(zhuǎn)載于:https://blog.51cto.com/lsfandlinux/2127235

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的简单安装ELK分析日志及使用心得的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。