ELK下載地址:https://www.elastic.co/downloadshtml
JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmljava
Redis下載地址:http://download.redis.io/releases/redis-3.2.3.tar.gzlinux
一、安裝JDK(Logstash要求JDK版本不低於1.7,官方文檔已寫明)nginx
- # tar zxf jdk-8u101-linux-x64.gz
- # mv jdk1.8.0_101 /usr/local/jdk_1.8.0
- # vim /etc/profile
- ---------------文件最後加入以下內容------------
- #JDK1.8
- export JAVA_HOME=/usr/local/jdk_1.8.0
- export PATH=$JAVA_HOME/bin:$PATH
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
- ------------------------------------------------------------
- # source /etc/profile #使聲明生效
- # java –version #查看java jdk版本

二、安裝Redis agent端不用安裝 redis
- # tar zxf redis-3.2.3.tar.gz
- # cd redis-3.2.3
- # yum install gcc -y (通常狀況下,全部安裝包這個都是必安得!)
- # ./runtest #檢測下安裝環境,看是否缺乏支持包
- 提示: You need tcl 8.5 or newer in order to run the Redis test
- # yum install tcl -y #安裝tcl
- # make MALLOC=libc (加上MALLOC=libc是由於在redis中的readme中有這麼一段話:
- Allocator --------- Selecting a non-default memory allocator when building Redis is done by setting the `MALLOC` environment variable. Redis is compiled and linked against libc malloc by default, with the exception of jemalloc being the default on Linux systems. This default was picked because jemalloc has proven to have fewer fragmentation problems than libc malloc. To force compiling against libc malloc, use: % make MALLOC=libc To compile against jemalloc on Mac OS X systems, use: % make MALLOC=jemalloc)
- # make test #make完成後測試下
- # cd src
- # make install #進入src目錄而且進行編譯
- # cd ../.. #回到redis安裝目錄
- # mv redis-3.2.3 /usr/local/redis
- # vim /usr/local/redis/redis.conf #修改redis配置文件,之後臺運行
- -------------------------修改redis.conf-----------------
- daemonize yes #以守護進程運行(後臺運行)
- ----------------------------------------------------------------
- # /usr/local/redis/src/redis-server /usr/local/redis/redis.conf #啓動redis
-
-
- 另外一種安裝方式(推薦使用):
- make install 以前都是同樣的
-
- cd ../utils/
- ./install_server.sh #腳本執行後,一樣能夠安裝redis的節點,這個腳本的好處就是路徑之類的你能夠本身設置,不用過多的修改配置文件.並且默認也是守護進程。
-
- Welcome to the redis service installer
- This script will help you easily set up a running redis server
-
- Please select the redis port for this instance: [6379]
- Selecting default: 6379
- Please select the redis config file name [/etc/redis/6379.conf]
- Selected default - /etc/redis/6379.conf
- Please select the redis log file name [/var/log/redis_6379.log]
- Selected default - /var/log/redis_6379.log
- Please select the data directory for this instance [/var/lib/redis/6379]
- Selected default - /var/lib/redis/6379
- Please select the redis executable path [/usr/local/bin/redis-server]
- Selected config:
- Port : 6379
- Config file : /etc/redis/6379.conf
- Log file : /var/log/redis_6379.log
- Data dir : /var/lib/redis/6379
- Executable : /usr/local/bin/redis-server
- Cli Executable : /usr/local/bin/redis-cli
- Is this ok? Then press ENTER to go on or Ctrl-C to abort.
- Copied /tmp/6379.conf => /etc/init.d/redis_6379
- Installing service...
- Successfully added to chkconfig!
- Successfully added to runlevels 345!
- Starting Redis server...
- Installation successful!
-
-
-
- 注意:關於redis配置文件裏面的bind這個參數。我本覺得bind選項是容許那些ip訪問redis。後來通過測試發現我理解錯了。這個bind參數是你的服務器ip。也就是若是填寫127.0.0.1則是本機訪問,若是填寫的是外網網卡ip。則是全部人均可以訪問你的redis了。並不是權限控制。(我的理解的,若有不對請包涵)
三、安裝elasticsearchvim
- # tar zxf elasticsearch-2.3.5.tar.gz
- # mv elasticsearch-2.3.5 /usr/local/elasticsearch
- # vim /usr/local/elasticsearch/config/elasticsearch.yml #修改配置文件
- --------------------------
- network.host: 192.168.1.104 #指定主機地址,實際上是可選的,可是最好指定由於後面跟kibana集成的時候會報http鏈接出錯(直觀體現好像是監聽了:::9200 而不是0.0.0.0:9200!暫時不知道這個地址需不須要和kibana的server host一致)
- http.cors.allow-origin: "/.*/"
- http.cors.enabled: true #這2項都是解決跟kibana集成的問題,錯誤體現是 你的 elasticsearch 版本太低,其實不是
- http.port: 9200 #端口9200
- -------------------------
- # useradd guoxin #建立一個用戶guoxin,elasticsearch禁止root用戶啓動服務
- # chown -R guoxin.guoxin /usr/local/elasticsearch #將屬主屬組修改成guoxin
- # su guoxin
- $ /usr/local/elasticsearch/bin/elasticsearch –d (啓動服務)
- $ curl 'http://10.10.16.21:9200' #驗證是否成功
- $ exit #退出guoxin用戶
-
-
-
- 注意:在5.0版本中head插件的安裝方式變了。請自行研究,由於我也沒搞懂呢
- 另外有幾個系統參數須要修改!不然在5.X版本下,es是會報錯的
-
- 1、使用說明!因爲elasticsearch須要大量的現成,請確保系統容許至少2048個線程處理能力。
- 解決方法:編輯/etc/security/limits.d/90-nproc.conf 將 * soft nproc 後面的1024個線程改成2048
-
- 2、es要求文件描述符至少要65536個,請確保文件描述符配置正確
- 解決方法:/etc/security/limts.conf中最後添加以下兩行。這裏的guoxin是啓動es的用戶。知道要保證65535才能夠,添加內容以下
- guoxin soft nofile 65536
- guoxin hard nofile 65536
-
- 3、es要求虛擬內存至少要262144,請確保虛擬內存大小
- 解決方法:vim /etc/sysctl..conf
- 增長vm.max_map_count = 655350
- 使用sysctl -p 使配置生效
-
- 4、另外在配置es時候,咱們須要限制內存大小,這裏最大和最小內存要一致。默認是2G,因爲我是虛擬機因此改>爲最小啓動512m
- 解決方法:vim /usr/local/elasticsearch/config/jvm.options
- 將
- -Xms2g
- -Xmx2g
- 修改成
- -Xms512m
- -Xmx512m

- 安裝Head插件(Optional)
- # cd /usr/local/elaticsearch 進入Elasticsearch目錄
- # ls plugins/ 安裝Head插件前,此目錄爲空
- # ./bin/plugin install mobz/elasticsearch-head 安裝head插件
- # ls plugins/ 安裝完成後此目錄下多了個head目錄
- head
-
- 殺掉進程重啓Elasticsearch服務
Head插件訪問地址 http://10.10.16.21:9200/_plugin/head/ruby
四、安裝logstash(Logstash的話,他的配置文件以及正則正在研究中,關於配置的話就不貼了,這個服務如今不須要開啓,當日志收集的時候,根據本身寫的正則做爲配置文件開啓服務)服務器
- # tar zxf logstash-2.3.4.tar.gz
- # mv logstash-2.3.4 /usr/local/logstash
- # /usr/local/logstash/bin/logstash -f /usr/local/logstash/logstash_redis.conf(配置文件是須要本身寫的)
-
-
- #測試redis是否可以保存logstash的輸入數據
- # vim /usr/local/logstash/logstash_redis.conf 編寫配置文件
- ###########內容以下#################
- input { stdin { } } #這行是經過終端輸入
- output {
- stdout { codec => rubydebug } #以debug模式輸出到終端
-
- redis { 配置redis
- host => '127.0.0.1' redis服務器IP
- data_type => 'list' 數據類型是列表
- key => 'logstash:redis'
- }
- }
- ##############保存####################################
-
- #/usr/local/redis/src/redis-cli monitor 開啓redis的動態監控(因爲是實時監控,因此須要另外再開一個終端)
-
- # /usr/local/logstash/bin/logstash -f /usr/local/logstash/logstash_redis.conf 啓動logstashh,而且加載/usr/local/logstash/logstash_redis.conf配置文件(這裏咱們沒有後臺運行,若是須要後臺運行在最後加上 &便可)
-
- 啓動後輸入---->My name is guo_xin!
-
- ##############如下是logstash的返回結果#############
- {
- "@timestamp" => 2016-12-29T09:41:17.319Z,
- "@version" => "1",
- "host" => "0.0.0.0",
- "message" => "My name is !"
- }
-
-
- ###########redis實時監控輸出(這裏咱們能夠看到redis監控已經將數據存進去了)#######################
- 1483004478.127705 [0 127.0.0.1:38750] "rpush" "logstash:redis" "{\"@timestamp\":\"2016-12-29T09:41:17.319Z\",\"@version\":\"1\",\"host\":\"0.0.0.0\",\"message\":\"My name is!\"}"
-
五、安裝kibanaoracle
- # tar zxf kibana-4.5.4-linux-x64.tar.gz
- # mv kibana-4.5.4-linux-x64 /usr/local/kibana
- # mkdir -pv /usr/local/kibana/logs 建立日誌目錄
- # vim /usr/local/kibana/config/kibana.yml
- -----------------------------------------
- server.host: "10.10.16.21" #輸入服務器IP
- kibana.index: ".kibana"
- elasticsearch.url: 「http://10.10.16.21:9200」 #elasticsearch的URL
- ----------------------------------------
- # cd /usr/local/kibana/logs/ && nohup /usr/local/kibana/bin/kibana &
- (#nohup: 忽略輸入並把輸出追加到"nohup.out")
- #啓動命令的意思是進入kibana的目錄而且忽略輸入並把輸出追加到nohup.out中,而後後臺方式啓動kibana
- # ll /usr/local/kibana/logs/ 查看日誌文件是否生成

環境構建完成cors
kibana訪問地址 http://ip:5601
六、遇到的問題

解決辦法:
修改屬主屬組爲非root用戶,而後重啓服務
# chown -R guoxin.guoxin /usr/local/elasticsearch/
# su guoxin
$ /usr/local/elasticsearch/bin/elasticsearch –d

解決方法:
出現這個問題是由於在elasticsearch配置文件中添加了http.cors.enabled:true。
在kibana4.x版本中,這個參數已經被廢除了,kibana4.x不在兼容elasticsearch中的這個參數,因此須要刪除elasticsearch配置文件中的這個參數,而後殺掉elasticsearch服務進程,從新啓動elasticsearch服務便可
X-Pack在線安裝方法
- # /usr/local/elasticsearch/bin/elasticsearch-plugin install x-pack #使用Elasticsearch的plugin命令來安裝X-Pack插件
雖然Elasticsearch默認不容許root用戶啓動,可是安裝X-pack插件時候,請使用root用戶。不然會報以下錯誤↓↓

- 使用root用戶執行在線安裝正確提示以下:↓↓

- 上圖選項填寫y;X-Pack插件須要額外權限
# /usr/local/kibana/bin/kibana-plugin install x-pack #使用kibana的plugin命令來安裝X-Pack插件
在kibana.yml文件中配置:
elasticsearch.username: "elastic"
elasticsearch.password: "guoxin0521"
啓動Elasticsearch和kibana服務
注意:
若是你的elasticsearch.yml配置文件使用了action.auto_create_index(禁止自動建立索引)參數。
請將如下內容添加到action.auto_create_index後↓
.security,.monitoring*,.watches,.triggered_watches,.watcher-history*
例如:
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
在啓動kibana時候會有個警告:

之後會去解決!不影響使用!
X-Pack離線安裝方法
- # wget https://artifacts.elastic.co/downloads/kibana-plugins/x-pack/x-pack-5.0.0.zip #下載X-Pack安裝包
# /usr/local/elasticsearch/bin/elasticsearch-plugin install file:///usr/local/src/x-pack-5.0.0.zip #使用Elasticsearch的plugin命令來安裝本地X-Pack插件zip包,這裏file:///後面跟着的是下載的安裝包路徑
# /usr/local/kibana/bin/kibana-plugin install file:///usr/local/src/x-pack-5.0.0.zip #使用kibana的plugin一樣裝一下X-Pack包,這裏file:///後面跟着的是下載的安裝包路徑
下面是kibana離線安裝成功的樣子↓↓

離線安裝方式啓動和禁用X-Pack方法(官方文檔說須要添加這些,不過我添加後發現服務起不來了。報錯,不加任何參數反而能起來。不明白爲何。沒深研究。不過我是在線安裝的,不知道是否是離線安裝特殊的需求。有空你們能夠本身玩玩試試!)
- 1、編輯elasticsearch.yml和kibana.yml
xpack.security.enabled
開啓X-Pack插件,關閉的話是將enabled改成false(elasticsearch.yml 和 kibana.yml都須要添加)
xpack.monitoring.enabled
開啓X-Pack監控功能,關閉的話是將enabled改成false(elasticsearch.yml 和 kibana.yml都須要添加)
xpack.graph.enabled
開啓X-Pack圖功能,關閉的話是將enable改成false (elasticsearch.yml 和 kibana.yml都須要添加)
xpack.watcher.enabled
開啓X-Pack遊客功能,關閉的話是將enable改成false(僅elasticsearch.yml須要添加)
xpack.reporting.enabled
開啓X-Pack報告功能,關閉的話是將enbale改成false(僅kibana.yml都須要添加)
2、啓動Elasticsearch和kibana服務 (略...)
下圖是安裝成功x-pack插件後的樣子

升級或刪除X-Pack插件
- 1、關閉Elasticsearch和kibana服務
2、刪除Elasticsearch和kibana的X-Pack模塊
# /usr/local/elasticsearch/bin/elasticsearch-plugin remove x-pack
# /usr/local/kibana/bin/kibana-plugin remove x-pack
3、若是想升級X-Pack插件則從新安裝新插件便可,官方文檔是這麼寫的不知道是否有update這種命令,之前沒使用過ELK。
官方文檔地址:
- https://www.elastic.co/guide/en/x-pack/5.0/installing-xpack.html#xpack-enabling
用戶管理
- 當X-Pack插件安裝完成後會有個超級用戶。
- 用戶名:elastic
- 默認密碼:changeme
- 這個用戶擁有最高權限。包括對全部索引和數據的控制權,咱們可使用elastic用戶在圖形界面進行添加或刪除用戶併爲其分配權限。
-
- 操做:
- 1、使用elastic用戶進入kibana界面
- 2、點擊左側management
- 3、選擇users
- 4、選擇New user建立用戶
- 以下圖↓↓

***使用注意事項:***
一、你的logstash裏面若是直接輸出到es中,咱們須要在logstash的output中添加用戶名和密碼

二、在kibana.yml中要添加訪問Elasticsearch的用戶名和密碼
- 在kibana.yml文件中配置:
- elasticsearch.username: "elastic"
- elasticsearch.password: "guoxin0521"
- 參考資料:
- http://www.2cto.com/os/201611/561466.html
- http://www.guoxin-linux.com/?id=40
- http://yanliu.org/2015/08/19/ELK-redis%E6%90%AD%E5%BB%BAnginx%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90%E5%B9%B3%E5%8F%B0/#more
- 官方文檔地址:
- https://www.elastic.co/guide/en/x-pack/5.0/installing-xpack.html#xpack-enabling