參考:html
https://blog.csdn.net/e_wsq/article/details/81303713java
https://blog.csdn.net/zdxxinlang/article/details/84616438node
------------------------------------------------- linux
兩臺機子:ios
192.168.42.128 elasticsearch(E) elasticsearch-head(這個是插件)LogStash(L) kibana(K)git
192.168.42.130 LogStash(L)github
安裝 elasticsearch 如下是命令:數據庫
修改源npm
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchjson
編輯repo文件
# vim /etc/yum.repos.d/elasticsearch.repo
加上以下內容:
[elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
安裝 elasticsearch 這一步很慢,我用公司網絡才10k/s 並且會一直切換鏡像,耐心等候
# yum install -y elasticsearch
安裝JAVA環境 使用yum安裝 快一點
1.檢查系統是否安裝弄過java # yum list installed | grep java 2. 若是有舊版本的java,能夠用以下方法卸載java # yum -y remove java-1.8.0-openjdk* 3. 查看java軟件包列表 # yum -y list java* 4. 下載安裝java1.8的全部軟件包,中途須要輸入y來確認下載。 # yum install java-1.8.0-openjdk* 5.安裝成功,輸入以下命令檢查是否安裝成功,若是返回正確的版本號則表示安裝成功。 # java -version
建立elasticsearch data的存放目錄,並修改該目錄的屬主屬組,修改elasticsearch的日誌屬主屬組
# mkdir -p /data/es-data (自定義用於存放data數據的目錄) # chown -R elasticsearch:elasticsearch /data/es-data # chown -R elasticsearch:elasticsearch /var/log/elasticsearch/
修改elasticsearch的配置文件 修改的時候,把井號去掉!把#去掉! 把井號#去掉!!重要的事情說三次
# vim /etc/elasticsearch/elasticsearch.yml 找到配置文件中的cluster.name,打開該配置並設置集羣名稱 cluster.name: demon 找到配置文件中的node.name,打開該配置並設置節點名稱 node.name: elk-1 修改data存放的路徑 path.data: /data/es-data 修改logs日誌的路徑 path.logs: /var/log/elasticsearch/ 配置內存使用用交換分區 bootstrap.memory_lock: true 監聽的網絡地址 network.host: 0.0.0.0 開啓監聽的端口 http.port: 9200 增長新的參數,這樣head插件能夠訪問es (5.x版本,若是沒有能夠本身手動加) http.cors.enabled: true http.cors.allow-origin: "*"
啓動服務
/etc/init.d/elasticsearch start
若是有報錯。請移步:https://blog.csdn.net/e_wsq/article/details/81303713
若是沒有就是長這樣子:
建立開機自啓動服務
# chkconfig elasticsearch on
注意事項:
須要修改幾個參數,否則啓動會報錯 vim /etc/security/limits.conf 在末尾追加如下內容(elk爲啓動用戶,固然也能夠指定爲*) elk soft nofile 65536 elk hard nofile 65536 elk soft nproc 2048 elk hard nproc 2048 elk soft memlock unlimited elk hard memlock unlimited 繼續再修改一個參數 vim /etc/security/limits.d/90-nproc.conf 將裏面的1024改成2048(ES最少要求爲2048) 也有可能不是1024,個人是4000多 * soft nproc 2048 另外還需注意一個問題(在日誌發現以下內容,這樣也會致使啓動失敗,這一問題困擾了好久) [2017-06-14T19:19:01,641][INFO ][o.e.b.BootstrapChecks ] [elk-1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks [2017-06-14T19:19:01,658][ERROR][o.e.b.Bootstrap ] [elk-1] node validation exception [1] bootstrap checks failed [1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk 解決:修改配置文件,在配置文件添加一項參數(目前還沒明白此參數的做用) vim /etc/elasticsearch/elasticsearch.yml bootstrap.system_call_filter: false
訪問9200端口查看是否成功
先檢查9200端口是否起來 netstat -antp |grep 9200 tcp 0 0 :::9200 :::* LISTEN 2934/java 瀏覽器訪問測試是否正常(如下爲正常) # curl http://127.0.0.1:9200/ { "name" : "linux-node1", "cluster_name" : "demon", "cluster_uuid" : "kM0GMFrsQ8K_cl5Fn7BF-g", "version" : { "number" : "5.4.0", "build_hash" : "780f8c4", "build_date" : "2017-04-28T17:43:27.229Z", "build_snapshot" : false, "lucene_version" : "6.5.0" }, "tagline" : "You Know, for Search" }
利用api查看狀態
# curl -i -XGET 'localhost:9200/_count?pretty' HTTP/1.1 200 OK content-type: application/json; charset=UTF-8 content-length: 95 { "count" : 0, "_shards" : { "total" : 0, "successful" : 0, "failed" : 0 } }
安裝插件 使用git安裝elasticsearch-head
# yum install -y npm # git clone git://github.com/mobz/elasticsearch-head.git # cd elasticsearch-head # npm install (這一步安裝很慢。進度條一直卡在20%過不去,而後我敲了幾下回車就報錯了,沒辦法只能重裝) # npm run start 檢查端口是否起來 # netstat -antp |grep 9100 瀏覽器訪問測試是否正常 http://IP:9100/
注意事項:
npm install 地方報錯
其中這一行是報錯信息
解決:
# npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
接着啓動長這樣
而後頁面訪問
http:/IP:9100 (這就是沒去掉井號的後果。顯示集羣健康值:未鏈接)
如下才是正確的樣子
關注這3個地方。
Logstash 安裝
安裝Logstash環境: 下載yum源的密鑰認證: # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 利用yum安裝logstash 有點大,107M # yum install -y logstash 查看下logstash的安裝目錄 # rpm -ql logstash 建立一個軟鏈接,每次執行命令的時候不用在寫安裝路勁(默認安裝在/usr/share下) ln -s /usr/share/logstash/bin/logstash /bin/ 執行logstash的命令 # logstash -e 'input { stdin { } } output { stdout {} }'
若是標準輸出還有elasticsearch中都須要保留應該怎麼玩,看下面
# /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.42.128:9200"] } stdout { codec => rubydebug }}' 運行成功之後輸入: 啦啦啦
咱們不可能每次都是輸入這麼長的一串命令。因此把命令修改到配置文件當中
建立配置文件01-logstash.conf # vim /etc/logstash/conf.d/elk.conf 文件中添加如下內容 input { stdin { } } output { elasticsearch { hosts => ["192.168.1.202:9200"] } stdout { codec => rubydebug } } 使用配置文件運行logstash (在這一步,要把目錄cd到elk.conf的當前目錄。個人目錄就是在/etc/logstash/conf.d/) # logstash -f ./elk.conf
logstash的數據庫類型
Input插件 權威指南:https://www.elastic.co/guide/en/logstash/current/input-plugins.html file插件的使用 # vim /etc/logstash/conf.d/elk.conf 添加以下配置 input { file { path => "/var/log/messages" type => "system" start_position => "beginning" } } output { elasticsearch { hosts => ["192.168.1.202:9200"] index => "system-%{+YYYY.MM.dd}" } } 運行logstash指定elk.conf配置文件,進行過濾匹配 #logstash -f /etc/logstash/conf.d/elk.conf
我理解以上都是系統的日誌
而後繼續配置安全日誌的而且把日誌的索引按類型作存放,繼續編輯elk.conf文件
# vim /etc/logstash/conf.d/elk.conf 添加secure日誌的路徑 input { file { path => "/var/log/messages" type => "system" start_position => "beginning" } file { path => "/var/log/secure" type => "secure" start_position => "beginning" } } output { if [type] == "system" { elasticsearch { hosts => ["192.168.1.202:9200"] index => "nagios-system-%{+YYYY.MM.dd}" } } if [type] == "secure" { elasticsearch { hosts => ["192.168.1.202:9200"] index => "nagios-secure-%{+YYYY.MM.dd}" } } } 運行logstash指定elk.conf配置文件,進行過濾匹配 # logstash -f ./elk.conf
這些設置都沒有問題以後,接下來安裝下kibana,可讓在前臺展現
安裝kibana環境 官方安裝手冊:https://www.elastic.co/guide/en/kibana/current/install.html 下載kibana的tar.gz的軟件包 # wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-linux-x86_64.tar.gz 解壓kibana的tar包 # tar -xzf kibana-5.4.0-linux-x86_64.tar.gz 進入解壓好的kibana # mv kibana-5.4.0-linux-x86_64 /usr/local 建立kibana的軟鏈接 # ln -s /usr/local/kibana-5.4.0-linux-x86_64/ /usr/local/kibana 編輯kibana的配置文件 # vim /usr/local/kibana/config/kibana.yml 修改配置文件以下,開啓如下的配置 server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://192.168.1.202:9200" kibana.index: ".kibana" 安裝screen,以便於kibana在後臺運行(固然也能夠不用安裝,用其餘方式進行後臺啓動) # yum -y install screen # screen # /usr/local/kibana/bin/kibana netstat -antp |grep 5601 tcp 0 0 0.0.0.0:5601 0.0.0.0:* LISTEN 17007/node 打開瀏覽器並設置對應的index http://IP:5601