ELK

1、ELK簡介

Elk是指elasticsearch,logstash,kibana三件套,咱們通常使用它們作日誌分析 ELK+redis關係html

rsyslog 啓動---->logstash
elasticsearch---logstash---->kibana
elasticsearch---logstash---->redis

實時文件存儲,每一個字段均可被索引java

分佈式實時分析搜索引擎node

Elasticsearch是個開源分佈式搜索引擎,提供蒐集、分析、存儲數據三大功能。它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。linux

Logstash 主要是用來日誌的蒐集、分析、過濾日誌的工具,支持大量的數據獲取方式。通常工做方式爲c/s架構,client端安裝在須要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操做在一併發往elasticsearch上去。redis

Kibana 也是一個開源和免費的工具,Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助彙總、分析和搜索重要數據日誌。bootstrap

X-pack 監控組件使您能夠經過Kibana輕鬆地監控ElasticSearch。您能夠實時查看集羣的健康和性能,以及分析過去的集羣、索引和節點度量。此外,您能夠監視Kibana自己性能。當你安裝X-pack在羣集上,監控代理運行在每一個節點上收集和指數指標從Elasticsearch。安裝在X-pack在Kibana上,您能夠查看經過一套專門的儀表板監控數據。vim

2、ELK安裝部署

2.1準備環境
yum update
Java 1.8 環境
yum -y install java
java -version
yum -y install lrzsz
2.2安裝elasticsearch
2.2.1官網選擇版本下載安裝

官網ruby

rz elastic
mkdir /data/server #
目錄建設規範
tar -zxvf  解壓包 /data/server/
mv elastic /data/server # 放到標準目錄裏
useradd elastic # 新建elastic用戶
chown -R elastic.elastic /data/server/elasticserver/
ll # 查看所屬用戶
ps aux | grep elastic 
su elastic
./bin/elasticsearch

vim /etc/security/limit
elastic soft memlock unlimited
elastic hard memlock unlimited
* soft nofile 655366
* hard nofile 100002
vim /etc/sysctl.conf
    vm.max_map_count=362144
sysctl -p 
vim config/elasticsearch/yml
    bootstrap.memory_lock: true
    network.host: 192.168.234.129
    http.port: 9200
    node.max_local_storage_nodes: 256
rm -rf data/nodes/0/node.lock # 若鎖住錯誤
vim config/jvm.options
    -Xms1g
    -Xmx1g    
ulimit -n
ulimit -s 655355

2.2.2 啓動elasticsearchrestful

/data/server/elasticsearch-5.6.8/bin/elasticsearch
netstat -pantu | grep "9200"
tips

1.關閉防火牆架構

永久關閉selinux
修改 /etc/selinux/config 文件中的 SELINUX="" 爲 disabled ,而後重啓。
setenforce 0 #即時生效
systemctl stop firewalld.service

2.elastic須要專用的用戶啓動

useradd elastic # 新建elastic用戶
chown -R elastic.elastic /data/server/elasticserver/

3.Java地址問題

ps aux |grep java
pkill -9 java

4.要求改變data

出現data錯誤時
ps aux |grep log
kill log 進程
kill -9

5.若碰見lock 鎖住

vim config/elasticsearch/yml
node.max_local_storage_nodes: 256
rm -rf data/nodes/0/node.lock # 若鎖住錯誤

6.系統內存不足須要elastic優化

vim config/jvm.options
    -Xms1g
    -Xmx1g    
ulimit -n
ulimit -s 655355

7.主機優化

vim /etc/sysctl.conf
    vm.max_map_count=362144
sysctl -p

8.FATAL Port 5601 is already in use. Another instance of Kibana may be running!

fuser -n tcp 5601
kill -9 56948

3.安裝配置logstash

Logstash 是Elasticsearch 數據管道

Logstash :input output 可選:filter

3.1上傳文件而且安裝
tar -zxvf logstash
mv logstash /data/server/
vim /etc/rsyslog.conf
    $ModLoad imudp
    $UDPServerRun 514
    $ModLoad imtcp
    $InputTCPServerRun 514
    *.* @192.168.23.166:5000

vim /data/server/conf/syslog.conf
input{
        tcp{
        port => 5000
         type => syslog
           }
        udp{
        port => 5000
        type =>syslog
        }
}
output{
        elasticsearch {
               hosts =>["192.168.23.166:9200"]
               index => "zhj"
                    }
        stdout {}
}
3.2啓動
systemctl start rsyslog
su elastic
/data/server/elasticsearch-5.6.8/bin/elasticsearch
exit
/data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf
logger -p info "hello, remote rsyslog"#手工添加日誌信息

4.安裝配置kibana

4.1安裝kibana
vim /data/server/conf/syslog.conf
input{
    tcp{
        port => 5000
        type => syslog
       }
    udp{
        port => 5000
        type =>syslog
    }
}

output{
    elasticsearch {
            hosts => ["192.168.23.166:9200"]
            index => "zhj-%{+YYYY.MM.dd}"
                }
    stdout {
    codec => rubydebug
        }
}

su kibana
vim /data/server/kibana-5.6.8-linux-x86_64/config/kibana.yml
    server.port: 5601
    server.host: "192.168.23.166"
    elasticsearch.url: "http://192.168.23.166:9200"
:wq
4.2啓動
/data/server/kibana-5.6.8-linux-x86_64/bin/kibana

登陸kibana
http://192.168.23.166:5601
查看索引:
http://192.168.23.166:9200/_cat/indices?v
tips

1.kibana 不能實時抓日誌

修改主機服務時間
date -s "2018-05-20 10:00:00"

2.kibana在使用

ps -ef|grep kibana

ps -ef|grep 5601

都找不到 

嘗試 使用 fuser -n tcp 5601

kill -9  端口

啓動便可 ./kibana

5.安裝配置redis

5.1安裝redis
將log日誌放在redis上,而後redis將日誌轉到elastic上
上傳Redis-3.2.1.tar.gz包,解壓到/data/server/
yum -y install tcl* # redis 庫依賴
cd /data/server/redis-3.2.1
make && make install
vim /data/server/conf/syslog.conf
input{
    tcp{
        port => 5000
        type => syslog
       }
    udp{
        port => 5000
        type =>syslog
    }
}
output {
    redis {
        host => "192.168.23.166"
        port => "6379"
        data_type => "list"
        key => "sys_log:redis"
    }
}
input {
    redis {
          host => "192.168.23.166"
          port => "6379"
          data_type => "list"
          key => "sys_log:redis"
          type => "redis-input"
    }
}
output {
    elasticsearch  {
        hosts => "192.168.23.166:9200"
        index => "zhj"
    }
 stdout {
           codec => rubydebug
    }
}
5.2啓動
鏈接客戶端,查看日誌
配置中redis.conf文件中修改bind值爲192.168.23.166
systemctl start rsyslog
su elastic
/data/server/elasticsearch-5.6.8/bin/elasticsearch
/data/server/redis-3.2.1/src/redis-server   /data/server/redis-3.2.1/redis.conf
/data/server/logstash-5.6.8/bin/logstash -f /data/server/conf/syslog.conf
/data/server/redis-3.2.1/src/redis-cli -h 192.168.234.129
#啓動kibana
/data/server/kibana-5.6.8-linux-x86_64/bin/kibana

/data/server/redis-3.2.1/src/redis-cli -p 6379
keys *

6 x-pack 插件的安裝

6.1elasticsearch 安裝x-pack
/data/server/elasticsearch-5.6.8/bin/elasticsearch-plugin install x-pack

一路 y

6.2kibana 安裝x-pack
/data/server/kibana-5.6.8-linux-x86_64/bin/kibana-plugin install x-pack
增長

elastic
    user => "elastic"
    password => "changeme"

6.3手動離線安裝

6.4破解graph 版本

luyten java反編譯
參考

1.本身的有道筆記

2.各組件原理介紹請看 ELK原理

將來計劃

找時間在優化下排版和配圖吧...太糟糕了-.-||

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息