linux elk+部署+網頁日誌工具+文件詳解

什麼是elk:

ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成:
1)ElasticSearch是一個基於Lucene的開源分佈式搜索服務器。它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並作爲Apache許可條款下的開放源碼發佈,是第二流行的企業搜索引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。
在elasticsearch中,所有節點的數據是均等的。
2)Logstash是一個完全開源的工具,它可以對你的日誌進行收集、過濾、分析,支持大量的數據獲取方法,並將其存儲供以後使用(如搜索)。說到搜索,logstash帶有一個web界面,搜索和展示所有日誌。一般工作方式爲c/s架構,client端安裝在需要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操作在一併發往elasticsearch上去。
3)Kibana 是一個基於瀏覽器頁面的Elasticsearch前端展示工具,也是一個開源和免費的工具,Kibana可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您彙總、分析和搜索重要數據日誌。

一個完整的集中式日誌系統,需要包含以下幾個主要特點:

1)收集-能夠採集多種來源的日誌數據
2)傳輸-能夠穩定的把日誌數據傳輸到中央系統
3)存儲-如何存儲日誌數據
4)分析-可以支持 UI 分析
5)警告-能夠提供錯誤報告,監控機制
ELK提供了一整套解決方案,並且都是開源軟件,之間互相配合使用,完美銜接,高效的滿足了很多場合的應用。目前主流的一種日誌系統。

ELK工作原理:

Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ES集羣中查詢數據生成圖表,再返回給Browser。

環境

準備兩臺服務器
一臺服務器:192.168.80.100
一臺服務器:192.168.80.101

下載並解壓

mkdir /usr/local/work //爲elk創建目錄
mkdir /usr/local/java ///爲java創建目錄
tar xf jdk-8u144-linux-x64.tar.gz -C /usr/local/java
tar xf kibana-6.2.3-linux-x86_64.tar.gz -C /usr/local/work/
tar xf logstash-6.2.3.tar.gz -C /usr/local/work/
tar xf elasticsearch-6.2.3.tar.gz -C /

搭建java環境

cd /opt/
cp -r jdk1.8.0_144/ /usr/local/java
vi /etc/profile //在文件末尾新增
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$PATH:/usr/local/java/bin
export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib

java環境生效

source /etc/profile
查看java版本
java -version

創建用戶

ElasticSerach要求以非root身份啓動,所以要創建一個用戶:
groupadd elasticsearch //創建用戶組
useradd -g elasticsearch elasticsearch //創建用戶

給elasticesearch-6.2.3修改用戶組爲elasticsearch

chown -R elasticsearch.elasticsearch /usr/local/work/elasticsearch-6.2.3

修改主機名

hostnamectl set-hostname elk-server
vi /etc/security/limits.conf 新增

  • soft nofile 65536
  • hard nofile 131072
  • soft nproc 2048
  • hard nproc 4096
    linux elk+部署+網頁日誌工具+文件詳解
    vi /etc/sysctl.conf 新增
    vm.max_map_count=655360
    linux elk+部署+網頁日誌工具+文件詳解
    sysctl -p //生效
    重啓電腦

啓動ElasticSerach

su - elasticsearch //切換用戶
cd /usr/local/work/elasticsearch-6.2.3
bin/elasticsearch -d //啓動
tail -f /usr/local/work/elasticsearch-6.2.3/logs/elasticsearch.log //查看日誌

切換到root

curl 127.0.0.1:9200
linux elk+部署+網頁日誌工具+文件詳解

至此,ElasticSerach服務啓動成功,接下來是Logstash

cd /usr/local/work/logstash-6.2.3
vi default.conf
 
input {
beats {
port => "5044"
}
file{
path => ["/usr/local/work/logstash-6.2.3/logs/logstash-plain.log"]
type => "logstash_log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
geoip {
source => "clientip"
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
}
}
linux elk+部署+網頁日誌工具+文件詳解

啓動logstash

bin/logstash -f default.conf //-f 指定配置文件啓動
tail -f logs/logstash-plain.log //查看配置文件

配置和啓動Kibana

cd /usr/local/work/kibana-6.2.3-linux-x86_64/
vi config/kibana.yml
server.host: "192.168.80.100"
server.port: "5601"
啓動
nohup bin/kibana &
tail -f nohup.out //查看

在瀏覽器訪問http://192.168.80.100:5601

linux elk+部署+網頁日誌工具+文件詳解

配置nginx-server

yum -y install epel-release //安裝源
yum -y install nginx httpd-tools //安裝軟件包

啓動nginx

systemctl start nginx

使用filebeat 收集日誌的工具

mkdir /usr/local/work/
tar xf filebeat-6.2.3-linux-x86_64.tar.gz -C /usr/local/work/
cd /usr/local/work/filebeat-6.2.3-linux-x86_64/
vi filebeat.yml
enabled: true

  • var/log/.log => - /usr/local/nginx/logs/.log 
    output.elasticsearch: 前面加一個“#”註釋掉 
    hosts: ["localhost:9200"] 前面加一個“#” 註釋掉 
    #output.logstash 去掉註釋符號 
    #host: ["localhost:5400"] 去掉註釋符號,並修改爲[“192.168.80.100:5400”]
    啓動FileBeat:./filebeat -e -c filebeat.yml -d “publish”
通過瀏覽器多訪問幾次nginx服務,這樣能多製造一些訪問日誌
訪問Kibana:http://192.168.80.100:5601
點擊左上角的Discover
可以看到訪問日誌已經被ELK蒐集了
輸入logstash-*,點擊”Next step”
選擇Time Filter,再點擊“Create index pattern”

點擊左上角的”Discover”按鈕,即可看到最新的日誌信息

至此,我們已經可以在ELK上查到Nginx的訪問日誌了

linux elk+部署+網頁日誌工具+文件詳解
自此完成elk

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章