目錄:java
一、所需安裝包node
二、預環境linux
三、安裝elasticsearchdocker
四、安裝elasticsearch-headapache
五、安裝logstashjson
六、安裝kibanabootstrap
七、分析apache日誌(access和error)跨域
一、所需安裝包bash
elasticsearch-5.5.3.rpm elk-head-5.tar.gz kibana-5.5.3-x86_64.rpm logstash-5.5.3.rpm node-v8.9.4.tar.gz phantomjs-2.1.1-linux-x86_64.tar.bz2
二、預環境配置app
配置ip地址 elk-node1:10.0.0.133 elk-node2:10.0.0.135 編輯hosts文件 10.0.0.133 elk-node1 10.0.0.135 elk-node2 安裝java yum -y install java java -version openjdk version "1.8.0_102" OpenJDK Runtime Environment (build 1.8.0_102-b14) OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
三、安裝elasticsearch
elk-node1上: 安裝elasticsearch rpm -ivh elasticsearch-5.5.3.rpm 編輯/etc/elasticsearch/elasticsearch.conf cluster.name: my-elk-cluster 集羣名字 node.name: elk-node1 節點名字 path.data: /data/elk_data 數據存放路徑 path.logs: /var/log/elasticsearch/ 日誌存放路徑 bootstrap.memory_lock: false 不在啓動的時候鎖定內存 network.host: 0.0.0.0 提供服務綁定的 IP 地址,0.0.0.0 表明全部地址 http.port: 9200 偵聽端口爲 9200 discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"] 集羣發現經過單播實現 建立elasticsearch的data數據目錄 mkdir -p /data/elk_data chown elasticsearch:elasticsearch /data/elk_data/ systemctl enable elasticsearch systemctl start elasticsearch elk-node2上: 安裝elasticsearch rpm -ivh elasticsearch-5.5.3.rpm 編輯/etc/elasticsearch/elasticsearch.conf cluster.name: my-elk-cluster node.name: elk-node2 #注意,這裏也是兩個節點配置惟一不同的地方 path.data: /data/elk_data path.logs: /var/log/elasticsearch/ bootstrap.memory_lock: false network.host: 0.0.0.0 http.port: 9200 discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"] 建立elasticsearch的data數據目錄 mkdir -p /data/elk_data chown elasticsearch:elasticsearch /data/elk_data/ systemctl enable elasticsearch systemctl start elasticsearch
查看是否成功
ss -lnpt |grep 9200 systemctl status elasticsearch
驗證
登陸10.0.0.133:9200/_cluster/health?pretty
(你的集羣的node數應當是2,status應當是green,也就是健康)
四、安裝elasticsearch-head插件,在其中一臺node安裝便可。本次安裝在了elk-node1上。
安裝node tar zxvf node-v8.2.1.tar.gz cd node-v8.2.1/ ./configure && make && make install 安裝phantomjs tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 cd phantomjs-2.1.1-linux-x86_64/bin/ cp phantomjs /usr/local/bin/ 安裝docker,在docker跑elasticsearch-head 安裝docker yum -y install docker systemctl start docker systemctl enable docker #注意安裝docker時,若是直接yum安裝沒法啓動,可先更新內核 使用docker運行elasticsearch-head docker load < elk-head-5.tar.gz docker run -d -p 9100:9100 mobz/elasticsearch-head:5 配置elasticsearch 編輯/etc/elasticsearch/elasticsearch.conf http.cors.enabled: true 開啓跨域訪問支持,默認爲 false http.cors.allow-origin: "*" 跨域訪問容許的域名地址 重啓elasticsearch systemctl restart elasticsearch
驗證
登陸10.0.0.133:9100
會出現如上的界面,在鏈接那裏,將http://localhost:9200改成http://10.0.0.133:9200,能夠看到集羣狀態,應當爲綠色。
建立測試索引
curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Content-Type: application/json' -d '{ "user": "zhangsan","mesg":"hello world" }'
刷新10.0.0.133:9200
###注意,這裏其實你應當只能看到紅框內的索引,其餘的索引與此次測試無關
五、安裝配置logstash(你要採集哪裏的日誌,就裝在哪裏)
注意:logstash須要java支持,因此你要裝logstash須要先執行yum -y install java,因爲elk-node1已經安裝則不需再次安裝java
在elk-node1上,分析其系統志
安裝 rpm -ivh logstash-5.5.3.rpm 經過logstash採集日誌 chmod a+r /var/log/messages 編輯/etc/logstash/conf.d/system.conf input { file { path => "/var/log/messages" type => "system" start_position => "beginning" } } output { elasticsearch { hosts => ["10.0.0.133:9200"] index => "system-%{+YYYY.MM.dd}" } } 起服務 systemctl enable logstash systemctl start logstash
驗證:登陸10.0.0.133:9100,刷新,查看是否有定義的system索引
六、安裝kibana
安裝 rpm -ivh kibana-5.5.3-x86_64.rpm 編輯/etc/kibana/kibana.yml server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://10.0.0.133:9200" kibana.index: ".kibana" 起服務 systemctl start kibana systemctl enable kibana
驗證:登陸10.0.0.133:5601
添加索引顯示圖形分析
七、分析apache日誌(access和error)
安裝apache yum -y install httpd systemctl enable httpd systemctl satrt httpd 安裝logstash yum -y install java rpm -ivh logstash-5.5.3.rpm 編輯配置/etc/logstash/conf.d/apache_log.conf input { file { path => "/etc/httpd/logs/access_log" type => "access" start_position => "beginning" } file { path => "/etc/httpd/logs/error_log" type => "error" start_position => "beginning" } } output { if [type] == "access" { elasticsearch { hosts => ["10.0.0.133:9200"] index => "apache_access-%{+YYYY.MM.dd}" } } if [type] == "error" { elasticsearch { hosts => ["10.0.0.133:9200"] index => "apache_error-%{+YYYY.MM.dd}" } } } 起服務 systemctl enable logstash systemctl start logstash
驗證