開源日志系統(tǒng)ELKbeats平臺搭建

平臺簡介

開源實時日志分析平臺

  1. 基于Java8環(huán)境
  1. 基于Centos7 64位平臺
  2. 基于ELK 5.1.1 版本

ELK官網(wǎng)
ELK官網(wǎng)文檔
ELK中文手冊

平臺的搭建過程可以參考:開源實時日志分析ELK平臺部署
Beats平臺相關介紹:ELK beats平臺介紹(11th)

構(gòu)成部分

  1. Beats:
    負責收集系統(tǒng)數(shù)據(jù),可以直接發(fā)送到es中,也可以通過logstash中轉(zhuǎn)
  2. logstash:
    收集日志,為beats提供中轉(zhuǎn)功能
  3. Elasticsearch:
    提供數(shù)據(jù)存儲,服務端聚合計算功能
  4. Kibana:
    提供炫麗的可視化圖形展示并且作為elasticsearch的搜索的小清新客戶端

工作原理

工作原理

Logstash

是一個完全開源的工具,他可以對你的日志進行收集、分析,并將其存儲供以后使用

安裝

解壓縮之后,進入bin目錄,直接執(zhí)行看看結(jié)果

./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

配置文件

自建一個配置目錄:conf,創(chuàng)建一個配置文件 myConf.conf

input {
        stdin {}
}
output {
        stdout {
                codec => rubydebug
        }
        elasticsearch {
                hosts => ["192.168.139.58:9200"]
        }
}

這里注意:配置elasticsearch的服務器地址
執(zhí)行方法

$  bin/logstash -f conf/myConf.conf

Elasticsearch

ElasticSearch是一個開源的分布式搜索引擎,具備高可靠性,支持非常多的企業(yè)級搜索用例。像Solr4一樣,是基于Lucene構(gòu)建的。支持時間時間索引和全文檢索。官網(wǎng)
這里使用的版本是5.1.1,運行之后默認端口9200

  1. 安裝插件:elasticsearch-head
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
grunt server

修改配置文件Gruntfile.js,hostname修改為*

        connect: {
            server: {
                options: {
                    hostname: '*', 
                    port: 9100,
                    base: '.',
                    keepalive: true
                }
            }
        }

默認的運行端口為9100

  1. 修改elasticsearch的配置文件
    修改elasticsearch.yml文件,增加下面兩句,目的是允許elasticsearch-head進行訪問
http.cors.enabled: true 
http.cors.allow-origin: "*" 
  1. centos7上啟動錯誤一
    錯誤信息如下:
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:100) ~[elasticsearch-5.1.1.jar:5.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:176) ~[elasticsearch-5.1.1.jar:5.1.1]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:306) ~[elasticsearch-5.1.1.jar:5.1.1]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.1.1.jar:5.1.1]
        ... 6 more

解決方法:不能用root用戶進行啟動

  1. centos7上啟動錯誤二
    錯誤信息如下:
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方法:修改/etc/security/limits.conf文件,添加或修改如下行(用戶名為lxm)

lxm hard nofile 65536
lxm soft nofile 65536
  1. centos7上啟動錯誤三
    錯誤信息如下:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方法:
臨時生效的方法

sudo sysctl -w vm.max_map_count=262144

永久生效的方法:修改 /etc/sysctl.conf,增加如下的設置

vm.max_map_count=262144

執(zhí)行命令讓設置生效

sysctl -a
  1. 集群中發(fā)現(xiàn)的錯誤
    elasticsearch中節(jié)點都啟動但是無法形成集群問題

kibana

修改配置文件config/kibana.yml

server.port: 5601
server.host: "192.168.139.58"
elasticsearch.url: "http://192.168.139.58:9200"

啟動kibana

$ bin/kibana

Beats配置:packetbeat

需要在被監(jiān)控機器上安裝,演示packetbeat,其他類似

  1. 修改配置文件 packetbeat.yml,這里直接連接elasticsearch,不通過Logstash
output.elasticsearch:
   hosts: ["192.168.139.58:9200"]
  1. 配置elasticsearch模板
curl -XPUT 'http://192.168.139.58:9200/_template/packetbeat' -d@/home/lxm/packetbeat-5.1.1-linux-x86_64/packetbeat.template.json
  1. 安裝beats-dashboards
$  git clone https://github.com/elastic/packetbeat-dashboards
$  cd packetbeat-dashboards/
# 將dashboard的模板配置數(shù)據(jù)存進elasticsarch里面
$  ./load.sh -url http://192.168.139.58:9200
  1. 啟動packetbeat
$ sudo ./packetbeat -e -c packetbeat.yml
  1. 在Kibana中查看儀表盤


    選擇儀表盤設置
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容