ELK(elasticsearch+logstash+kibana)日誌分析系統

目錄: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,也就是健康)

image.png

四、安裝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

image.png

會出現如上的界面,在鏈接那裏,將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

###注意,這裏其實你應當只能看到紅框內的索引,其餘的索引與此次測試無關

11111.PNG

五、安裝配置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索引

logstash.PNG

六、安裝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

kibana-chushi.PNG

添加索引顯示圖形分析

添加index.PNG

圖表.PNG

七、分析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

驗證

logstash.PNG

無標題.png

相關文章
相關標籤/搜索