ELK+logback搭建日志系统
最近工作需要,開始研究ES,當前ES的最新版本為5.1.1,版本5.0.1以上jdk為1.8,緩存服務器用的redis
本篇會記錄ES5.1.1 + Kibana 5.1.1 + es-head插件在Linux環境上安裝操作步驟。
首先,去Elastic官網?https://www.elastic.co/downloads? ,下載頁有所有Elastic的產品,都是最新的版本(版本號還一致)。
?
?
?下載完成后,全部解壓,使用unzip和tar -xvzf
(一) 首先嘗試去啟動elasticsearch,到elasticsearch的bin目錄下,執行./elasticseharch。
如果遇到下面的錯誤:
?
說明是用root賬戶來啟動的,因為ES是沒有權限限制的,還可以接收用戶的腳本,所有用root賬戶很不安全,需要新建一個賬戶來啟動。
命令執行如下
# adduser leichunqiong
# passwd leichunqiong
用root 給新建用戶賦予權限
1、進入bin目錄下執行chmod +x?elasticsearch
2、chown leichunqiong.leichunqiong -R /opt/elasticsearch-5.1.1
3、切換到新建用戶
# su leichunqiong
4、修改vm.map 限制
vi /etc/sysctl.conf vm.max_map_count=262144
5、進入bin目錄 執行./elasticsearch -d &
然后就可以在命令行中用curl?http://localhost:9200?pretty??看看輸出
此時,ES可以在本地訪問,但是用瀏覽器遠程的話,還是無法訪問的,因為相應的端口沒有打開
進到安裝目錄/config/elasticsearch.yml,將network.host設置為0.0.0.0并且將訪問端口放開
?
接下來重啟es 然后通過瀏覽器外部訪問就可以了
(二) 下一步現在我們來安裝logstash
1、解壓完成后配置logstash的環境變量
#?echo?"export?PATH=\$PATH:/usr/local/logstash-1.5.4/bin"?>?/etc/profile.d/logstash.sh #?.?/etc/profile 可能會不生效,你可以關掉xshell重新連接2、啟動logstash
2.1?通過-e參數指定logstash的配置信息,用于快速測試,直接輸出到屏幕。
#?logstash?-e?"input?{stdin{}}?output?{stdout{}}"???????????? my?name?is?zhengyansheng.????//手動輸入后回車,等待10秒后會有返回結果 Logstash?startup?completed 2015-10-08T13:55:50.660Z?0.0.0.0?my?name?is?zhengyansheng. 這種輸出是直接原封不動的返回... 2.2?通過-e參數指定logstash的配置信息,用于快速測試,以json格式輸出到屏幕 #?logstash?-e?'input{stdin{}}output{stdout{codec=>rubydebug}}' my?name?is?zhengyansheng.????//手動輸入后回車,等待10秒后會有返回結果 Logstash?startup?completed { ???????"message"?=>?"my?name?is?zhengyansheng.", ??????"@version"?=>?"1", ????"@timestamp"?=>?"2015-10-08T13:57:31.851Z", ??????????"host"?=>?"0.0.0.0" } 這種輸出是以json格式的返回... 3、logstash以配置文件方式啟動 #?vim?logstash-simple.conf? input?{?stdin?{}?} output?{ ???stdout?{?codec=>?rubydebug?} } #?logstash?-f?logstash-simple.conf????//普通方式啟動 Logstash?startup?completed #?logstash?agent?-f?logstash-simple.conf --debug//開啟debug模式 Pipeline?started?{:level=>:debug} Logstash?startup?completed hello?world.????//手動輸入hello?world. { ???????"message"?=>?"hello?world.", ??????"@version"?=>?"1", ????"@timestamp"?=>?"2015-10-08T14:01:43.724Z", ??????????"host"?=>?"0.0.0.0" } 效果同命令行配置參數一樣..? 4、從redis數據庫中讀取然后輸出到elasticsearch中 #?cat?logstash-redis.conf input?{ ????redis?{ ????????host?=>?'192.168.1.104'? #ip????????data_type?=>?'list' ????????port?=>?"6379" ????????key?=>?'logstash:redis'?#自定義 ????????type?=>?'redis-input'???#自定義 ????} } output?{ ????elasticsearch?{ ????????host?=>?"192.168.1.104" ?#ip ????????codec?=>?"json" ????????protocol?=>?"http"??#版本1.0+?必須指定協議http ????} }
(三)?
1、修改配置文件
#?vim?/opt/kibana-5.1.1-linux-x86_ 64/config/kibana.yml elasticsearch_url:?"http://192.168.1.104:9200" 2、啟動?3、外部訪問
?
?
(四) 新建maven項目結合logstash
1、加入apender jar包
<dependency><groupId>com.cwbase</groupId>
<artifactId>logback-redis-appender</artifactId>
<version>1.1.5</version>
</dependency>
2、配置logback.xml <configuration>
<property name="type.name" value="" />
<appender name="TEST" class="com.cwbase.logback.RedisAppender">
<source>test-application</source>
<!--type 可定為項目類型-->
<type>${type.name}</type>
<!--redis ip-->
<host>192.168.1.218</host>
<!--redis存放的key-->
<key>logstash:redis</key>
<tags>test-2</tags>
<mdc>true</mdc>
<location>true</location>
<callerStackIndex>0</callerStackIndex>
<!--additionalField添加附加字段 用于head插件顯示-->
<additionalField>
<key>MyKey</key>
<value>MyValue</value>
</additionalField>
<additionalField>
<key>MySecondKey</key>
<value>MyOtherValue</value>
</additionalField>
</appender>
<!--日志輸出-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<!--日志回滾周期30天-->
<maxHistory>30</maxHistory>
</rollingPolicy>
<!-- <encoder>
<pattern>%logger{15} - %message%n%xException{5}</pattern>
</encoder>-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} %caller{3} - %msg%n%xException{5}</pattern>
</encoder>
</appender>
<logger name="application" level="DEBUG" />
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="TEST" />
</root>
</configuration>
3、寫測試類,然后到kinana上邊就可以看到你的日志啦
?(五) 可以將kibana替換elasticsearch-head插件進行頁面展示,elasticsearch-head是一個elasticsearch的集群管理工具
?
插件安裝方法1: 1.elasticsearch/bin/plugin -install mobz/elasticsearch-head 2.運行es 3.打開http://192.168.1.104:9200/_plugin/head/ 插件安裝方法2: 1.https://github.com/mobz/elasticsearch-head下載zip 解壓 2.建立elasticsearch-1.0.0\plugins\head\_site文件 3.將解壓后的elasticsearch-head-master文件夾下的文件copy到_site 4.運行es 5.打開http://192.168.1.104:9200/_plugin/head/?
?轉載于:https://www.cnblogs.com/Leiwang/p/6278329.html
總結
以上是生活随笔為你收集整理的ELK+logback搭建日志系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算时间复杂度
- 下一篇: C# 之浅拷贝与深拷贝问题拙见(一)