ELK是指Elasticsearch + Logstash + Kibaba三個組件的組合。node
Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。linux
Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、過濾,並將其存儲供之後使用(如,搜索)。
c++
Kibana 也是一個開源和免費的工具,它Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。
git
搭建前準備:
github
一、建立一個本地賬號elasticsearch和elasticsearch組;npm
二、#vi /proc/sys/fs/file-max,添加797934bootstrap
三、#vi /etc/security/limits.d/90-nproc.confcentos
root soft nproc unlimited安全
四、vi /etc/sysctl.confrestful
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
步驟2-4是開啓最大文件限制等操做
搭建過程:
因爲沒有集羣,本次實驗是在一臺centos 6.5系統上搭建的,elk版本爲5.4.0。
elk安裝
一、機器的JAVA版本最低要求爲1.8.0,centos 7自帶JAVA1.8.0,centos 6.5的可在百度或者谷歌查找安裝過程,並不難;
二、在官網https://www.elastic.co/downloads下載Elasticsearch、Logstash、Kibana。我下載的是tar包。
三、解壓至/usr/loacl,如
#tar -xf elasticsearch-5.4.0.tar.gz
#cp -r /home/cnc/elasticsearch-5.4.0/* /usr/local/elastisearch
X-PACK安裝
#/usr/local/elastisearch/bin/elasticsearch-plugin install x-pack
Kibaba的X-PACK安裝方法同上
elasticsearch配置文件修改:
#vi /usr/local/elasticsearch-5.4.0/config/elasticsearch.yml
添加以下項:
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false
xpack.security.enabled: false ##關閉elasticsearch安全機制,不關閉會致使head插件鏈接不上集羣
network.host: 你的公網IP地址或127.0.0.1
logstash配置文件修改:
#vi /usr/local/logstash/config/logstash.yml
添加以下:
path.data: /usr/local/logstash-5.4.2/data/ ##數據存放位置,可隨意指定也可默認
path.config: /usr/local/logstash-5.4.2/conf.d ##配置存放位置,可隨意指定
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.url: 公網IP地址(或127.0.0.1):9200
http.host: "(公網IP或127.0.0.1)"
kibana配置文件修改:
#vi /usr/local/kibana/config/kibana.yml
添加以下:
http.host: "IP地址"
elasticsearch.url: "http://IP地址:9200"
elastisearch-head插件安裝
所須要的軟件:git gcc gcc-c++ node grunt,其中grunt須要用node來安裝。centos 6.5安裝node建議安裝老版本,新版本要求gcc的版本要到最新。cenots 7能夠無視。個人系統是centos 6.5因此安裝的是nodev6.9.2,下載地址https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-x64.tar.gz
#yum install -y git
#git clone git://github.com/mobz/elasticsearch-head.git ##下載head插件
#tar -xf node-v6.9.2-linux-x64.tar.gz
#ln -s node-v6.9.2-linux-x64/bin/node /usr/local/bin/node
#ln -s node-v6.9.2-linux-x64/bin/npm /usr/local/bin/npm
#cd elasticsearch-head-master ##解壓head插件包獲得的文件
#npm install -g cnpm --registry=https://registry.npm.taobao.org
#vi Gruntfile.js
修改以下選項:
#npm isntall grunt-cli ##head插件須要用grunt啓動
#grunt server ##啓動head插件
logstash實例配置:
收集本地/var/log/messages日誌:
input {
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["IP地址:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
收集交換機日誌:
前提是交換機已配置發送日誌功能
input{
udp{
port => 514
type => "switch"
}
}
output{
elasticsearch{
hosts => ['202.104.149.44:9200']
index => "switch-%{+YYYY.MM.dd}"
}
}