日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
CentOS7單機(jī)部署ELK

一、 簡(jiǎn)介

1.1 介紹

  ELK是三個(gè)開(kāi)源工具組成,簡(jiǎn)單解釋如下:

為振安等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及振安網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站制作、振安網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

  Elasticsearch是個(gè)開(kāi)源分布式搜索引擎,它的特點(diǎn)有:分布式,零配置,自動(dòng)發(fā)現(xiàn),索引自動(dòng)分片,索引副本機(jī)制,restful風(fēng)格接口,多數(shù)據(jù)源,自動(dòng)搜索負(fù)載等。

  Logstash是一個(gè)完全開(kāi)源的工具,它可以對(duì)你的日志進(jìn)行收集、過(guò)濾,并將其存儲(chǔ)供以后使用(如,搜索)。

Kibana 也是一個(gè)開(kāi)源和免費(fèi)的工具,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數(shù)據(jù)日志。

1.2 場(chǎng)景分析

  日志主要包括系統(tǒng)日志、應(yīng)用程序日志和安全日志等等。運(yùn)維人員和開(kāi)發(fā)人員可以通過(guò)日志了解服務(wù)器軟硬件信息、檢查配置過(guò)程中的錯(cuò)誤及錯(cuò)誤發(fā)生的原因。經(jīng)常分析日志可以了解服務(wù)器的負(fù)荷,性能安全性,從而及時(shí)采取措施糾正錯(cuò)誤。

  通常,日志被分散的儲(chǔ)存不同的設(shè)備上。如果你管理數(shù)十上百臺(tái)服務(wù)器,你還在使用依次登錄每臺(tái)機(jī)器的傳統(tǒng)方法查閱日志。這樣是不是感覺(jué)很繁瑣和效率低下。當(dāng)務(wù)之急我們使用集中化的日志管理,例如:開(kāi)源的syslog,將所有服務(wù)器上的日志收集匯總。

  集中化管理日志后,日志的統(tǒng)計(jì)和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實(shí)現(xiàn)檢索和統(tǒng)計(jì),但是對(duì)于要求更高的查詢、排序和統(tǒng)計(jì)等要求和龐大的機(jī)器數(shù)量依然使用這樣的方法難免有點(diǎn)力不從心。

  這里采用開(kāi)源實(shí)時(shí)日志分析ELK平臺(tái)能夠完美的解決我們上述的問(wèn)題,當(dāng)然也還有別的平臺(tái)或者工具可以使用,這里只討論ELK,官方網(wǎng)站:https://www.elastic.co

二、安裝Elasticsearch

2.1 安裝jdk

# Java -version
java version
"1.8.0_121"
Java(TM) SE Runtime Environment (build
1.8
.
0_121
-
b13)
Java HotSpot(TM)
64
-
Bit Server VM (build
25.121
-
b13, mixed mode)

 2.2 安裝Elasticsearch

# tar -zxvf elasticsearch-5.6.3.tar.gz
# mv elasticsearch-5.6.3 /data/elasticsearch
# cd elasticsearch/config/
# 備份配置文件
# cp elasticsearch.yml elasticsearch.yml.bak

  編輯配置文件

# cat elasticsearch.yml | grep -v ^#
cluster.name: elk
-
application
node.name: node
-
1
path.data:
/
data
/
elasticsearch
/
data
path.logs:
/
data
/
elasticsearch
/
logs
network.host:
172.16
.
220.248
http.port:
9200
discovery.zen.ping.unicast.hosts: [
"node-1"
]
discovery.zen.minimum_master_nodes:
1

  添加elasticsearch用戶,不能使用root啟動(dòng)

# groupadd -g 1008 elasticsearch
# useradd -g 1008 -u 1008 elasticsearch
# chown -R elasticsearch:elasticsearch /data/elasticsearch/

  修改sysctl.conf文件

# vim /etc/sysctl.conf
vm.max_map_count
=
262144  
# sysctl -p 

  修改/etc/security/limits.conf文件,修改打開(kāi)文件句柄

*             
soft    nofile         
100000
*             
hard    nofile         
100000
*             
soft    nproc         
100000
*             
hard    nproc         
100000

  添加hosts文件

# vim /etc/hosts
172.16
.
220.248
node
-
1

  啟動(dòng)

# su -s elasticsearch
# cd /data/elasticsearch/bin
# ./elasticearch &

  查看是否啟動(dòng)

  簡(jiǎn)單的curl測(cè)試

# curl http://172.16.220.248:9200

三、安裝Logstash和filebeat

  filebeat用于在各個(gè)服務(wù)器上獲取數(shù)據(jù),發(fā)送到logstash上,再由logstash處理數(shù)據(jù)。

3.1 安裝logstash

# tar -zxvf logstash-5.6.3.tar.gz
# mv logstash-5.6.3 /data/logstash

3.2 安裝filebeat

  下載filebeat并啟動(dòng),通過(guò)它來(lái)監(jiān)聽(tīng)數(shù)據(jù)源文件的新增內(nèi)容經(jīng)過(guò)logstash處理后上傳到es里面

# tar -zxvf filebeat-5.6.3-linux-x86_64.tar.gz
# mv filebeat-5.6.3-linux-x86_64 /data/filebeat
# cd /data/filebeat
# cp filebeat.yml filebeat.yml.bak

  編輯filebeat.yml文件

filebeat.prospectors:
-
input_type: log
 
paths:
   
-
/
var
/
log
/
message
-
log 
# 測(cè)試本機(jī)的一個(gè)log文件
output.logstash:
 
hosts: [
"172.16.220.248:5044"
]

  啟動(dòng)filebeat服務(wù)

# cd /data/filebeat
# ./filebeat &

  查看啟動(dòng),filebeat沒(méi)有監(jiān)聽(tīng)端口,主要看日志和進(jìn)程

# tialf logs/filebeat
# ps -ef | grep filebeat

  filebeat監(jiān)聽(tīng)的文件記錄信息在/data/filebeat/data/registry

  新建一個(gè)本地文件message-log,可以取幾條本機(jī)系統(tǒng)的messages文件

3.3 啟動(dòng)logstash  

  最后新建一個(gè)logstash的啟動(dòng)指定test.conf配置文件,內(nèi)容如下:  

input
{
   
beats {
     
port
=
>
"5044"
   
}
}
output {
   
elasticsearch {
   
hosts
=
>
"172.16.220.248:9200"
 
}
 
stdout { codec
=
> rubydebug } 
# 這是將輸出打印在屏幕上,可以注釋掉
}  

  Logstash默認(rèn)有input、filter、output三個(gè)區(qū)域,一般最少需要配置input和output即可!

  logstash的本身默認(rèn)的logstash.yml配置文件選擇不修改即可!

  簡(jiǎn)單測(cè)試一下logstash不指定配置文件啟動(dòng)

# cd /data/filebeat/bin
# ./logstash -e 'input { stdin {} } output {stdout {} }'

  我們手動(dòng)輸入 hello world,它也會(huì)輸出 hello world

  指定配置文件啟動(dòng)logstash 

# ./logstash -f ../config/test.conf &

  查看5044端口和9600端口是否開(kāi)啟

  等待一會(huì)后應(yīng)該會(huì)出現(xiàn)如下信息輸出,這也就是test.conf里面最后一行定義輸出到屏幕上

 四、安裝kibana 

# tar -zxvf kibana-5.6.3-linux-x86_64.tar.gz
# mv kibana-5.6.3-linux-x86_64 /data/kinbana
# cd /data/kinbana/config/
# cp kibana.yml kibana.yml.bak

  編輯kibana.yml配置文件

# vim kibana.yml
server.port:
5601
server.host:
"172.16.220.248"
elasticsearch.url:
"http://172.16.220.248:9200"

  啟動(dòng)kinbana

# cd /data/kibana/bin
# ./kibana &

  查看端口

  瀏覽器登入查看

  點(diǎn)擊create按鈕后,然后點(diǎn)擊上面的discover按鈕,注意如果沒(méi)數(shù)據(jù)的話,注意看看導(dǎo)入的時(shí)間@timestamp和現(xiàn)在的時(shí)間對(duì)比一下,kibana默認(rèn)只顯示最近15分鐘的數(shù)據(jù),如果超出15分鐘請(qǐng)選擇適當(dāng)?shù)臅r(shí)間,從kibana可以看到messages-log里面的15條數(shù)據(jù)都正常導(dǎo)入了。這就也完成我們的實(shí)現(xiàn)的第一個(gè)效果。但是這僅僅是把流程跑通了,接下來(lái)我們需要做的事情還有更多。注意只能先導(dǎo)入數(shù)據(jù)到es后才能在kibana創(chuàng)建索引。

五、獲取Nginx access日志

  Nginx日志格式在logstash的grok里面默認(rèn)是沒(méi)有的,需要我們手動(dòng)配置,可以通過(guò)http://grokdebug.herokuapp.com/ 在線工具來(lái)判斷配置是否正確。

 5.1 在nginx服務(wù)器上安裝filebeat

  服務(wù)器: 172.16.200.160  

# tar -zxvf filebeat-5.6.3-linux-x86_64.tar.gz
# mv filebeat-5.6.3-linux-x86_64 /data/filebeat
# cd /data/filebeat
# cp filebeat.yml filebeat.yml.bak

  修改filebeat配置文件

# cat filebeat.yml | grep -v ^$ | grep -v ^# | grep -v "#"
filebeat.prospectors:
- input_type: log
 
paths:
   
- /data/nginx/logs/160_access.log
   
document_type: nginx_access
output.logstash:
 
hosts: ["172.16.220.248:5044"]

  啟動(dòng)filebeat

# ./filebeat &

5.2 重新配置logstash啟動(dòng)配置文件

  nginx日志格式,根據(jù)業(yè)務(wù)要求,我們這做了一些修改,比如增加cookie等,修改access.log日志時(shí)間格式等,這個(gè)會(huì)在另外的博客中寫(xiě)出來(lái),會(huì)給出鏈接的。

   Nginx日志格式?? 

log_format main
               
'[$time_local] - $remote_addr:$remote_port - $upstream_addr $upstream_status $upstream_response_time - '
               
'"$request" $status $bytes_sent $request_time '
               
'"$http_referer" - "$http_user_agent" - '
               
'"$customerTag_cookie" - "$ym_cookie" - "$http_cookie" '
               
'"$http_x_forwarded_for"';  
# 這里只是我們自己的格式,各位可以根據(jù)自己要求增刪

   grok使用表達(dá)式

  可能我理解不是很到位,寫(xiě)的也比較復(fù)雜,我會(huì)把匹配對(duì)應(yīng)項(xiàng)一一寫(xiě)出來(lái),大家可以自己理解,然后為自己的項(xiàng)目配置

%{SYSLOG5424SD} - %{IPV4:clientip}:%{NUMBER:clientport} - %{IPV4:hostip}:%{NUMBER:itemport} %{INT:upstream_status} %{NUMBER:response_time} - \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}\" %{INT:status} %{INT:body_bytes_sent} %{NUMBER:request_time} %{QS:url} - %{QS:user_agent} - %{QS:customerTag} - %{QS:ym_traffic_session_id} - %{QS:all_cookies} %{IPV4:realip}

  grok匹配說(shuō)明

 

1 %{SYSLOG5424SD}
時(shí)間格式
 

1 %{IPV4:clientip}
獲取ip,clientip是自己命名的
 

1 %{NUMBER:clientport}
NUMBER匹配數(shù)字
 

1 %{INT:upstream_status}
INT整形
 

1 %{WORD:method}
WORD單詞
 

1 %{URIPATHPARAM:request}
獲取請(qǐng)求內(nèi)容request
 

1 %{QS:url}
 QS可以獲取一段字符串

  修改logstash啟動(dòng)配置文件

input {
   
beats {
     
port => "5044"
   
}  
}    
filter {
   
if [type] == "nginx_access" {  
   
grok {
       
match => {"message" => "%{SYSLOG5424SD} - %{IPV4:clientip}:%{NUMBER:clientport} - %{IPV4:hostip}:%{NUMBER:itemport} %{INT:upstream_status} %{NUMBER:response_time} - \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}\" %{INT:status} %{INT:body_bytes_sent} %{NUMBER:request_time} %{QS:url} - %{QS:user_agent} - %{QS:customerTag} - %{QS:ym_traffic_session_id} - %{QS:all_cookies} %{IPV4:realip}"}
     
}
        
   
mutate {
       
remove_field => "message"  # 把message字段去掉,它會(huì)將上面單項(xiàng)獲取的信息做個(gè)匯總,這樣就重復(fù)了
   
}  
 
}  
}  
output {
   
elasticsearch {
   
hosts => "172.16.220.248:9200"
 
}
#stdout { codec => rubydebug }
}

  測(cè)試一下配置文件

./logstash -t -f ../config/logstash.conf

    重啟logstash

  不出問(wèn)題elasticsearch 和kibana中就會(huì)有數(shù)據(jù)了


網(wǎng)頁(yè)名稱:CentOS7單機(jī)部署ELK
文章分享:http://m.5511xx.com/article/coepppj.html