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

目錄:

1、所需安裝包

2、預環境

3、安裝elasticsearch

4、安裝elasticsearch-head

5、安裝logstash

6、安裝kibana

7、分析apache日誌(access和error)

1、所需安裝包

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

2、預環境配置

配置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)

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

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

5、安裝配置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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章