摘要:日志監控和分析在保障業務穩定運行時,起到了很重要的作用。本文搭建的的是一個分布式的日志收集和分析系統。對于隊列上的這些未處理的日志,有不同的幾臺進行接收和分析。再由統一的進行日志界面的展示。如等配置文件可以配置,等日志報表可視化熟練
ELK簡介ELKStack即Elasticsearch + Logstash + Kibana。日志監控和分析在保障業務穩定運行時,起到了很重要的作用。比如對nginx日志的監控分析,nginx是有日志文件的,它的每個請求的狀態等都有日志文件進行記錄,所以可以通過讀取日志文件來分析;redis的list結構正好可以作為隊列使用,用來存儲logstash傳輸的日志數據。然后elasticsearch就可以進行分析和查詢了。
本文搭建的的是一個分布式的日志收集和分析系統。logstash有agent和indexer兩個角色。對于agent角色,放在多帶帶的web機器上面,然后這個agent不斷地讀取nginx的日志文件,每當它讀到新的日志信息以后,就將日志傳送到網絡上的一臺redis隊列上。對于隊列上的這些未處理的日志,有不同的幾臺logstash indexer進行接收和分析。分析之后存儲到elasticsearch進行搜索分析。再由統一的kibana進行日志web界面的展示。
以上為抄襲!!!
好吧,讓我們切入正題:
首先我們需要一臺linux機器,緊哥其實非常不喜歡在window下安裝軟件,hoho~
當然我們也默認你已經安裝了java,建議版本是使用1.8,但是我使用的是1.7,就是這么任性~
colin@colindev:~$ java -version java version "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)Logstash安裝
下載logstash并解壓,推薦使用最新版本
創建simple.conf文件,并編寫測試conf
input { stdin { } } output { elasticsearch { host => localhost } stdout { codec => rubydebug } }
colin@colindev:~$ wget https://download.elastic.co/logstash/logstash/logstash-2.3.1.tar.gz colin@colindev:~$ tar -zvxf logstash-2.3.1.tar.gz colin@colindev:~$ vim simple.conf colin@colindev:~$ /home/colin/logstash-2.3.1/bin/logstash -f simple.conf --debug
3.可以看到logstash已經運行,輸入hello world會有log打印出來則安裝成功
Elasticsearch安裝ElasticSearch默認的對外服務的HTTP端口是9200,節點間交互的TCP端口是9300(這個可以自配置),注意打開tcp端口
先下載并解壓
安裝mobz/elasticsearch-head插件
啟動logstash并測試 elasticsearch 注意:啟動elasticsearch的話不能用root賬號哈~
colin@colindev:~$ wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gz colin@colindev:~$ tar -zxvf elasticsearch-1.7.1.tar.gz [colin@colindev:bin ]$ ./plugin install mobz/elasticsearch-head [colin@colindev bin]$ elasticsearch start
啟動起來的界面是:
接下來就要安裝kibana了
Kibana安裝[root@hadoop-slave ~]# wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz [root@hadoop-slave elk]# tar -zxf kibana-4.1.1-linux-x64.tar.gz [root@hadoop-slave elk]# mv kibana-4.1.1-linux-x64 /usr/local/elk [root@hadoop-slave bin]# pwd /usr/local/elk/kibana/bin [root@hadoop-slave bin]# ./kibana &
打開http://localhost:5601/
如果需要遠程訪問,需要打開iptables的tcp的5601端口。
需要修改logstash的配置文件
修改logback配置文件github-> 使用ogstash-logback-encode
input { tcp { host => "192.168.1.167" port => 9250 mode => "server" tags => ["tags"] codec => json_lines //可能需要更新logstash插件 } } output { stdout{codec =>rubydebug} elasticsearch { hosts => ["localhost:9200"] //這塊配置需要帶端口號 flush_size => 1000 } }
%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 192.168.1.167:9250
寫一個測試程序:
import org.junit.Test; import org.slf4j.LoggerFactory; /** * Created by colinsu on 2016/4/14. */ public class LogstashTest { private static final org.slf4j.Logger LGR = LoggerFactory.getLogger(LogstashTest.class); @Test public void test() { LogstashTest obj = new LogstashTest(); try{ obj.divide(); }catch(ArithmeticException ex){ LGR.error("大家好111!", ex); } } private void divide(){ int i = 10 /0; } }
使用logstash debug模式
/home/colin/logstash-2.3.1/bin/logstash -f simple.conf --debug
這里可能因為buffer大小的原因不能flush,多執行幾次就好了,timestamp會相差8小時,沒有什么影響,在kibana會顯示正常
需要加上收集的緩沖組件。如 redis,kafka等
配置文件可以配置niginx,linux,jvm等日志
報表可視化熟練
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/65772.html
摘要:部署環境依賴第三方組件下載地址官網簡單的流程示意圖跟都支持集群部署,本文只簡單描述如何單獨部署部署步驟三件套版本最好一致,小版本可以高,但是不可以低。 window環境下搭建簡單ELK日志收集 前言本文主要介紹如何在window環境下部署elk日志收集,網絡上大部分是linux的,剛好這邊服務需要用到window 環境,配置方式有點不同,大體是一樣的。 部署環境window serve...
閱讀 1571·2021-11-23 09:51
閱讀 1107·2021-10-12 10:12
閱讀 2826·2021-09-22 16:06
閱讀 3651·2019-08-30 15:56
閱讀 3477·2019-08-30 15:53
閱讀 3122·2019-08-29 16:29
閱讀 2372·2019-08-29 15:27
閱讀 2031·2019-08-26 10:49