CentOS7使用Elasticsearch+ Logstash+kibana快速搭建日誌分析平臺
CentOS7使用Elasticsearch+ Logstash+kibana快速搭建日誌分析平臺
介紹:
安裝logstash,elasticsearch,kibana三件套,搜索程序一般由索引鏈及搜索組件組成。
索引鏈功能的實現需要按照幾個獨立的步驟依次完成:檢索原始內容、根據原始內容來創建對應的文檔、對創建的文檔進行索引。
搜索組件用於接收用戶的查詢請求並返回相應結果,一般由用戶接口、構建可編程查詢語句的方法、查詢語句執行引擎及結果展示組件組成。
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制, restful 風格接口,多數據源,自動搜索負載等。
Logstash 是一個完全開源的工具,他可以對你的日誌進行收集、分析,並將其存儲供以後使用(如,搜索)。
kibana也是一個開源和免費的工具,他Kibana 可以為 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日誌
一、安裝elastic:
1、安裝java:
[root@cml3 elasticsearch-5.6.3]# yum install -y *jdk*
2、配置訪問最大文件數:
[root@node2 src]# cat/etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
2、在解壓目錄下創建,log,data文件目錄:
[[email protected]]# mkdir data
[[email protected]]# mkdir log
[[email protected]]# mkdir logs ##有時候沒有這個目錄就自己手動創建
3、修改elastic.yaml:監聽主機
[root@cml3 elasticsearch-5.6.3]# vimconfig/elasticsearch.yml
node.name: cml3
network.host: 192.168.5.104
discovery.zen.minimum_master_nodes: 1 ##因為我這裏演示的是在一臺機器上安裝(所以節點改為1)
4、創建elastic用戶用來開啟elasticsearch
[root@cml3 elasticsearch-5.6.3]# useraddelastic
[root@cml3 elasticsearch-5.6.3]# ls
bin config data lib LICENSE.txt log logs modules NOTICE.txt plugins README.textile
##有時候會小了目錄自己手動創建上就可以了:
[root@cml3 logs]# ll
total 4
-rw-rw-r-- 1 elastic elastic 0 Nov 3 19:52 elasticsearch_deprecation.log
-rw-rw-r-- 1 elastic elastic 0 Nov 3 19:52 elasticsearch_index_indexing_slowlog.log
-rw-rw-r-- 1 elastic elastic 0 Nov 3 19:52 elasticsearch_index_search_slowlog.log
##因為5.0的版本為了安全不能使用root用戶啟動所以給elasticsearch-5.6.3目錄下elastic(可以自定義用戶)的用戶權限
##開啟haed:插件:
http.cors.enabled:true
http.cors.allow-origin:"*"
##開啟的時候會有以下錯誤:
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should conf...CThreads=N
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=‘Cannot a ...‘(errno=12)
##解決方法:
意思是內存不夠,加大內存重啟就可以了!
##有時候還會出現以下錯誤:
[elastic@cml3 bin]$ ./elasticsearch
Exception in thread "main"2017-11-03 20:38:47,194 main ERROR No log4j2 configuration file found. Usingdefault configuration: logging only errors to the console. Set system property‘log4j2.debug‘ to show Log4j2 internal initialization logging.
2017-11-03 20:38:47,646 main ERROR Couldnot register mbeans java.security.AccessControlException: access denied("javax.management.MBeanTrustPermission" "register")
##解決方法:直接安裝幾個log4j包就ok啦
[root@cml3 elasticsearch-5.6.3]# yuminstall -y log4j*
5、啟動elastic:直接用curl訪問9200端口成功即可
[root@cml3 elasticsearch-5.6.3]# netstat-ntlp
Active Internet connections (only servers)
tcp6 0 0 192.168.5.104:9200 :::* LISTEN 3749/java
tcp6 0 0 192.168.5.104:9300 :::* LISTEN 3749/java
二、安裝head插件:
1、介紹:
在以往的es版本有一個非常好用的插件叫head,可以方便的查看索引,集群等相關狀態:
5.0之後head安裝支持目前只是支持插件的方式:
2、創建存放這個插件的目錄:
#mkdir head ##隨意目錄下創建就行
#cd head
#git clonegit://github.com/mobz/elasticsearch-head.git
#cd elasticsearch-head
yum install -y npm* ##缺少npm就直接安裝就ok了
#npm install ##這個步驟下載包都是國外地址所以安裝起來比較慢
#npm install -g grunt-cli
#grunt server
3、監聽端口為localhost,可以修改配置文件:
[root@controller head]# cdelasticsearch-head/
[root@controller elasticsearch-head]#vim Gruntfile.js
做如下修改:
server: {
options: {
port: 9100,
hostname: ‘0.0.0.0‘, #####添加這句。
base: ‘.‘,
keepalive: true
}
}
}
修改es配置文件添加如下:
[root@controllerconfig]# vim elasticsearch.yml
http.cors.enabled:true
http.cors.allow-origin:"*"
#####然後重啟es服務
4、啟動head插件,然後訪問web的ip與端口即可:
#gruntserver
##就可以看到我們相關索引的狀態,分片集群等相關操作都可以在上面完成:
三、安裝配置logstash文件然後啟動:
1、下載解壓logstash:
下載地址: https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.tar.gz
[root@cml3 src]# tar -xflogstash-5.6.3.tar.gz
2、創建conf的目錄
[root@cml3 ~]# mkdir /logstash/
[root@cml3 logstash]# viminput_flter_output.conf
input {
file{
path=> "/usr/local/nginx/logs/cml.log" ##nginx生成日誌的目錄
type=> "cml" ##索引的類型
start_position=> "beginning" ##一開始就輸入原來的日誌信息
}
stdin{}
}
filter{
grok {
match => {
"message" =>"(?<remote_IP>\d+.\d+.\d+.\d+)\s-\s-\s\[(?<DATA>\d+/\w+/\d+:\d+:\d+:\d+)[[:space:]](?<time_zone>\+\d+)\]\s\"(?<action>\w+)%{URIPATHPARAM:request} (?<Version>\w+/\d+.\d+)\"\s(?<status>\w+)\s(?<web_size>\w+)\s\"(?<check>\S+)\"\s"
##自定義grok
}
}
}
output{
elasticsearch{
action=> "index"
hosts=> "192.168.5.104:9200" ##輸出到elasticsearch上面
index=> "log-%{+yyyy.MM.dd}" ##生成一個log-時間的索引
}
stdout {codec=>rubydebug} ##在終端上輸出方便檢測
}
3、啟動logstash
[root@cml3 logstash]# /usr/local/src/logstash-5.6.3/bin/logstash-f input_flter_output.conf
四、安裝kibana,然後修改監聽ip直接啟動即可
1、下載安裝kibana:
[root@cml3 logstash]# cd /usr/local/src/
[root@cml3 src]# wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.3-x86_64.rpm
[root@cml3 src]# rpm -ivhkibana-5.6.3-x86_64.rpm
2、修改kibana配置文件:
[root@controller config]# vim kibana.yml
server.host: "192.168.63.246"
elasticsearch.url: http://192.168.63.246:9200
elasticsearch.username: "elastic"
elasticsearch.password: "changeme ##x-pack默認超級用戶的登錄密碼(es和kibana兩個的超級管理員賬號密碼都一樣,這裏我就為了方便不使用密碼用戶登錄了。)
3、啟動kibana
[root@cml3 src]# systemctl start kibana
瀏覽器輸入http://IP:5601配置input_flter_output.conf文件定義的索引。(圖形化配置kibana)
##點擊Discover選擇log*索引就可以看到日誌的數據出來了。
##點擊儀表板然後創建一個儀表盤:
##接下來就是創建一個圖表
##這裏就可以定義自己想要的圖表了:
##我比較喜歡看柱形圖,選擇自己的索引:
##最終可以出來的結果(我添加了request項是訪問的url)也可以是客戶端的IP
本文出自 “第一個legehappy51cto博客” 博客,請務必保留此出處http://legehappy.blog.51cto.com/13251607/1979030
CentOS7使用Elasticsearch+ Logstash+kibana快速搭建日誌分析平臺