1.簡介
ELK是Elasticsearch、Logstash幼东、Kibana的簡稱确镊,這三者是核心套件士骤。
(1)Elasticsearch是實時全文搜索和分析引擎,提供搜集蕾域、分析拷肌、存儲數(shù)據(jù)三大功能;是一套開放REST和JAVA API等結構提供高效搜索功能,可擴展的分布式系統(tǒng)巨缘。它構建于Apache Lucene搜索引擎庫之上厢绝。
(2)Logstash是一個用來搜集、分析带猴、過濾日志的工具。它支持幾乎任何類型的日志懈万,包括系統(tǒng)日志拴清、錯誤日志和自定義應用程序日志。它可以從許多來源接收日志会通,這些來源包括 syslog口予、消息傳遞(例如 RabbitMQ)和JMX,它能夠以多種方式輸出數(shù)據(jù)涕侈,包括電子郵件沪停、websockets和Elasticsearch。
(3)Kibana是一個基于Web的圖形界面裳涛,用于搜索木张、分析和可視化存儲在 Elasticsearch指標中的日志數(shù)據(jù)。它利用Elasticsearch的REST接口來檢索數(shù)據(jù)端三,不僅允許用戶創(chuàng)建他們自己的數(shù)據(jù)的定制儀表板視圖舷礼,還允許他們以特殊的方式查詢和過濾數(shù)據(jù)
2.使用docker-compose,一鍵搭建ELK環(huán)境
(1)電腦上安裝docker
? ? ? ? windows端:https://www.runoob.com/docker/windows-docker-install.html
? ? ? ? linux端:http://www.reibang.com/p/66575c930cf1
? ? ? ? 因為網(wǎng)上有很多文章講述郊闯,這邊就直接跳過了
(2)安裝docker-compose
linux運行命令:
curl -L?"https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)"?-o /usr/local/bin/docker-compose
給docker-compose執(zhí)行權限妻献,運行命令:
chmod +x?/usr/local/bin/docker-compose
? ? 執(zhí)行后,運行docker-compose --version团赁,可以看到docker-compose的版本和docker的版本育拨,這個時候,docker-compose安裝成功欢摄。
(3)新建一個docker-compose.yml文件
? ? 在????/home/用戶名/ ? ?下新建一個docker-compose.yml文件
? ? cd /home/用戶名
? ? touch?docker-compose.yml
? ? 打開 docker-compose.yml
? ? vi? docker-compose.yml
? ? 將下面的代碼粘貼進去(注意縮進熬丧,縮進不對會報錯)
version: ‘2’
services:
? elasticsearch:
? ? image: elasticsearch
? ? environment:
? ? ? - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
? ? volumes:
? ? ? - /volume/elasticsearch/data:/usr/share/elasticsearch/data
? ? hostname: elasticsearch
? ? restart: always
? ? ports:
? ? ? - "9200:9200"
? ? ? - "9300:9300"
? kibana:
? ? image: kibana
? ? environment:
? ? ? - ELASTICSEARCH_URL=http://elasticsearch:9200 #elasticsearch查詢接口地址
? ? hostname: kibana
? ? depends_on:
? ? ? - elasticsearch #后于elasticsearch啟動
? ? restart: always
? ? ports: - "5601:5601"
? logstash:
? ? image: logstash
? ? command: logstash -f /etc/logstash/conf.d/logstash.conf #logstash 啟動時使用的配置文件
? ? volumes:
? ? ? - /volume/logstash/conf.d:/etc/logstash/conf.d #logstash 配文件位置
? ? ? - /volume/logst:/tmp
? ? ? - /volume/logs:/logs
? ? hostname: logstash
? ? restart: always
? ? depends_on:
? ? ? - elasticsearch #后于elasticsearch啟動
? ? ports:
? ? ? - "7001-7005:7001-7005"
? ? ? - "4560:4560"
? ? ? - "9600:9600"
保存并退出
按一下Esc,
再輸入“:wq”命令
(4)編寫 logstash 的配置文件
進入logstash映射出來的目錄
cd /volume/logstash/conf.d
打開logstash.conf(若沒有則“touch logstash.conf”創(chuàng)建一個)
vi?logstash.conf
復制下面的代碼剧浸,并保存退出
input {
????file { ? ? ? ? ? ? ? ?//若是抓取日志文件則使用這個
????????path => "/logs/*.log" ? ?//日志文件的路徑
????????type => "service-log" ? ?//存入es時的一個type字段锹引,隨便一個標識就行
????????start_position => "beginning"
????????stat_interval => "2"
????????codec => json { ?????????//若希望json格式的日志信息中的字段可以被解讀,就加上這個
????????????charset => "UTF-8" ??
????????}
????}
????tcp { ? ? ? ? ? ? ? ? ? ? ? ? //若程序直接發(fā)送消息唆香,使用這個
????????mode => "server"
????????host => "0.0.0.0"
????????port => 4560
????????codec => json_lines
????}
}
output{
????elasticsearch {
????????hosts => ["elasticsearch:9200"]
????????action => "index"
????????index => "logstash-%{+YYYY.MM.dd}"
????}
????stdout {
????????codec => rubydebug
????}
}
(5)創(chuàng)建并啟動ELK的相關容器
這步很簡單嫌变,只要在docker-compose.yml的當前目錄。
執(zhí)行docker-compose up -d就行了躬它。若報錯提示找不到文件目錄腾啥,就把提示的文件自己創(chuàng)建一下。
(6)登錄kabana查看日志信息
瀏覽器輸入 ?linux的ip:5601進入kabana的可視化界面,
創(chuàng)建一個pattern就可以看日志啦