使用Docker快速部署ELK日志分析及搜索服務


1. 安裝docker

2. 創建目錄

mkdir -p /home/elasticsearch

3. 拉取ElasticSearch鏡像並啟動容器

docker run -dit -p 9200:9200 -v /home/elasticsearch:/usr/share/elasticsearch/data --name=elasticsearch docker.io/elasticsearch

4. 拉取Kibana鏡像並啟動容器

docker run -dit -p 5601:5601 --name=kibana --link elasticsearch:elasticsearch docker.io/kibana

5. 安裝ElasticSearch Head

5.1 Docker方式安裝

/*Elasticsearch 5.x 版本*/
docker run -p 9100:9100 mobz/elasticsearch-head:5

Note: 此方式可能需要解決跨域問題

/*進入Es的容器,編輯Es配置文件,增加如下內容*/
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

5.2 Chrome插件方式安裝

點擊下載插件 或者在Chrome插件中心搜索ElesticSearch Head

至此ElasticSearch和Kibana安裝完成,可以進行基礎搜索服務

6. 安裝Logstash

6.1 創建配置文件

cd /home

vim logstash.conf

/***輸入一下內容***/
input{
    beats{
        port => "5044"
    }
}
filter{
    if [type] == "nginxAccess"{
        json{
            source => "message"
            remove_field => ["message"]
	    }
	    mutate{
        	gsub => ["request_uri", "\?.*" ,""]
		    convert => ["body_bytes_sent","integer"]
    	}
	}
}
output{
	elasticsearch{
		hosts => ["Es所在服務器IP"]
	}
}
/******============******/

6.2 拉取Logstash鏡像並啟動容器

docker pull docker.io/logstash

docker run -itd -p 5044:5044 -v "$PWD":/config-dir logstash -f /config-dir/logstash.conf

7. 在日志源主機上安裝FileBeat

7.1 安裝

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.3-x86_64.rpm 

sudo rpm -vi filebeat-5.6.3-x86_64.rpm

7.2 配置

vi /etc/filebeat/filebeat.yml

/******============******/
filebeat:
  prospectors:
    -
      paths:
        - /data/logs/nginx_access.log
      input_type: log
      document_type: nginxAccessDev2
    -
      paths:
        - /data/logs/nginx_error.log
      input_type: log
      document_type: nginxErrorDev2
output:
  logstash:
    hosts: ["IP地址:5044"]
/******============******/

/***檢測配置文件是否正確***/
./filebeat.sh -configtest -e

/***重啟filebeat服務***/
/etc/init.d/filebeat restart

至此ELK搭建完成,下面配置nginx的日志輸出格式

log_format main '{"remote_addr": "$remote_addr",'
                '"remote_user": "$remote_user",'
                '"body_bytes_sent": $body_bytes_sent,'
                '"request_time": $request_time,'
                '"status": "$status",'
                '"request": "$request",'
                '"uri":"$uri",'
                '"request_filename":"$request_filename",'
                '"document_uri":"$document_uri",'
                '"request_method": "$request_method",'
                '"http_referrer": "$http_referer",'
                '"body_bytes_sent":"$body_bytes_sent",'
                '"http_x_forwarded_for": "$http_x_forwarded_for",'
                '"http_user_agent": "$http_user_agent",'
                '"request_uri":"$request_uri"}';

重啟Nginx服務。可以到kibana控制台進行圖形繪制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM