根據elastic上的說法:javascript
Filebeat is a lightweight, open source shipper for log file data. As the next-generation Logstash Forwarder, Filebeat tails logs and quickly sends this information to Logstash for further parsing and enrichment or to Elasticsearch for centralized storage and analysis.html
Filebeat比Logstash貌似更好,是下一代的日誌收集器,ELK(Elastic + Logstash + Kibana)之後估計要更名成EFK。java
Filebeat使用方法:node
一、下載最新的filebeatnginx
地址:https://www.elastic.co/downloads/beats/filebeat 而後解壓到任意目錄docker
二、修改filebeat下的filebeat.yml文件,參考如下內容:apache
filebeat: prospectors: - paths: - "/var/log/nginx/*.log" input_type: log document_type: nginx-access - paths: - "/data/log/order/*.log" input_type: log document_type: order-service - paths: - "/opt/service/zhifu/logs/*.log" input_type: log document_type: zhifu-service output: elasticsearch: hosts: ["localhost:9200"] logging: files: rotateeverybytes: 10485760
裏面hosts裏的內容,改爲實際elasticsearch的地址。json
三、設置elasticsearch的filebeat模板安全
curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json
注:上面localhost:9200改爲實際的elasticsearch的地址,後面的一串爲filebeat根目錄下的filebeat.template.json的完整路徑,順利的話,會返回:bash
{ "acknowledged" : true }
表示模板已被接收。
四、啓動
./filebeat -e -c filebeat.yml -d "Publish"
若是能看到一堆東西輸出,表示正在向elastic search發送日誌。能夠瀏覽:http://192.168.1.111:9200/_search?pretty 若是有新內容返回,表示ok
測試正常後,Ctrl+C結束,而後用
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
轉入後臺運行,最後到kibana裏,建立一個索引,注意pattern爲:filebeat-*
2、kibana的登陸認證問題
kibana是nodejs開發的,自己並無任何安全限制,直接瀏覽url就能訪問,若是公網環境很是不安全,能夠經過nginx請求轉發增長認證,方法以下:
tips:kibana沒有重啓命令,要重啓,只能ps -ef|grep node 查找nodejs進程,幹掉重來。
一、參考如下內容,修改配置文件:
server { listen 80; server_name elk.yjmyzz.com; location / { auth_basic "secret"; auth_basic_user_file /data/nginx/db/passwd.db; proxy_pass http://localhost:5601; proxy_set_header Host $host:5601; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Via "nginx"; } access_log off; }
上面的配置表示將elk.yjmyzz.com的請求,轉發到服務器的5601端口,同時使用最基本的用戶名、密碼來認證。
二、配置登陸用戶名,密碼
htpasswd -c /data/nginx/db/passwd.db user1
注意passwd.db的路徑要跟nginx配置中的一致,最後的user1爲用戶名,能夠隨便改,輸入完該命令後,系統會提示輸入密碼,搞定後passwd.db中就有加密後的密碼了,有興趣的能夠cat看下。
提示:htpasswd是apache自帶的小工具,若是找不到該命令,嘗試用yum install httpd安裝
三、關掉kibana端口的外網訪問
用nginx轉發後,必定要記得配置iptables之類的防火牆,禁止外部直接訪問5601端口,這樣就只能經過nginx來訪問了。
參考文章:
一、http://elk-docker.readthedocs.org/
二、https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-getting-started.html