1. 程式人生 > >CentOS7 安裝EFK(elasticsearch、fluent、kibana)進行Docker下日誌蒐集

CentOS7 安裝EFK(elasticsearch、fluent、kibana)進行Docker下日誌蒐集

Fluentd並非是專用於日誌檔案收集的,而是一個通用的資訊收集、整理、轉發的流式資料處理工具,日誌收集只是它十分典型的一個運用場景。重要的是,Fluentd的日誌收集功能對容器支援十分完備,遠遠勝於Logstash等傳統日誌收集工具。一方面得益於Fluentd社群開發了幾種專用於Docker日誌檔案的收集外掛,這些外掛能夠在Fluentd收集完Docker日誌以後自動為它加上容器相關的資訊,比較推薦其中的fluent-plugin-docker-metadata-filter這一款外掛,它提供的資訊頗為齊全。Logstash對於這方面依然比較空缺,GitHub上唯一能夠找到的一款社群外掛也已經在一年前就停止開發。另一方面,當前Docker官方支援的日誌驅動除了預設的使用本地目錄,還可以直接傳送到遠端的日誌儲存或日誌採集服務,而其中日誌採集服務目前僅僅支援Splunk和Fluentd,同樣沒有Logstash等老一輩開源日誌工具的蹤影。

安裝elasticsearch

安裝JDK或者openJDK(這裡以openJDK為例)

[[email protected] elk]# yum install java-1.8.0-openjdk -y

安裝elasticsearch

[root@elk elk]# wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.3/elasticsearch-2.3.3.rpm
[root@elk elk]# yum localinstall elasticsearch-2.3.3.rpm -y
..... Installing : elasticsearch-2.3.3-1.noarch 1/1 ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service ### You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service Verifying : elasticsearch-2.3.3-1.noarch 1/1 Installed: elasticsearch.noarch 0:2.3.3-1 [root@elk elk]# systemctl daemon-reload [root@elk elk]# systemctl enable elasticsearch Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service. [root@elk elk]# systemctl start elasticsearch

修改防火牆,開放9200和9300埠

[[email protected] elk]# firewall-cmd --permanent --add-port={9200/tcp,9300/tcp}
success
[[email protected] elk]# firewall-cmd --reload
success
[[email protected] elk]# firewall-cmd  --list-all
public (default, active)
  interfaces: eno16777984 eno33557248
  sources:
  services: dhcpv6-client ssh
  ports: 9200/tcp 9300/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

安裝kibana

安裝kibana的rpm包

[root@elk elk]# wget https://download.elastic.co/kibana/kibana/kibana-4.5.1-1.x86_64.rpm
[root@elk elk]# yum localinstall kibana-4.5.1-1.x86_64.rpm –y
[root@elk elk]# systemctl enable kibana
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /usr/lib/systemd/system/kibana.service.
[root@elk elk]# systemctl start kibana

修改防火牆,對外開放tcp/5601

[[email protected] elk]# firewall-cmd --permanent --add-port=5601/tcp
Success
[[email protected] elk]# firewall-cmd --reload
success
[[email protected] elk]# firewall-cmd --list-all
public (default, active)
  interfaces: eno16777984 eno33557248
  sources:
  services: dhcpv6-client ssh
  ports: 9200/tcp 9300/tcp 5601/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

開啟瀏覽器測試訪問kibana的首頁http://192.168.10.143:5601/

安裝fluent

安裝前步奏

檢視當前最大開啟檔案數:

$ ulimit -n
1024

如果檢視到的是1024,那麼這個數值是不足的,則需要修改配置檔案提高數值

vi /etc/security/limits.conf

設定值如下

root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536

修改network引數

vi /etc/sysctl.conf

設定值如下

net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240    65535

然後重啟系統

安裝fluentd

執行如下命令(命令將會自動安裝td-agent,td-agent即為fluentd)

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

啟動td-agent

$ /etc/init.d/td-agent start 
Starting td-agent: [  OK  ]
$ /etc/init.d/td-agent status
td-agent (pid  21678) is running...

或者

$ systemctl start td-agent
$ systemctl status td-agent

簡單demo測試HTTP logs

$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test

安裝必要的外掛

$ /usr/sbin/td-agent-gem install fluent-plugin-elasticsearch
$ /usr/sbin/td-agent-gem install fluent-plugin-typecast
$ /usr/sbin/td-agent-gem install fluent-plugin-secure-forward

$ systemctl restart td-agent

配置td-agent,使docker生成的日誌輸出到elasticsearch

修改td-agent的配置

$ vi /etc/td-agent/td-agent.conf

修改內容為如下(這裡我沒有填寫埠,預設使用9200埠)

<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match alpine**>
  @type elasticsearch
  logstash_format true
  flush_interval 10s # for testing
  host 127.0.0.1
</match>

重啟td-agent

$ systemctl restart td-agent

啟動docker映象,這裡我使用alpine做測試

$ docker run --log-driver=fluentd --log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}" alpine:3.3 echo "helloWorld"

檢查fluentd是否正常轉發資料

檢查td-agent日誌,如果最後出現如下一行,則表明正常連線elasticsearch

2016-09-02 12:01:10 +0800 [info]: Connection opened to Elasticsearch cluster => {:host=>"127.0.0.1", :port=>9200, :scheme=>"http"}

檢查elasticsearch儲存,使用如下命令

$ curl localhost:9200/_search?pretty
{
  "took" : 472,
  "timed_out" : false,
  "_shards" : {
    "total" : 6,
    "successful" : 6,
    "failed" : 0
  },
  "hits" : {
    "total" : 3,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : ".kibana",
      "_type" : "config",
      "_id" : "4.5.4",
      "_score" : 1.0,
      "_source" : {
        "buildNum" : 10000
      }
    }, {
      "_index" : "logstash-2016.09.02",
      "_type" : "fluentd",
      "_id" : "AVbpDs1fOf1yFl8aApNq",
      "_score" : 1.0,
      "_source" : {
        "log" : "helloWorld",
        "container_id" : "8c58cf5be57e9905215ea8f8cd677e48594a384c30a2842facb6563c3f32097c",
        "container_name" : "/sleepy_elion",
        "source" : "stdout",
        "@timestamp" : "2016-09-02T12:00:59+08:00"
      }
    }, {
      "_index" : "logstash-2016.09.02",
      "_type" : "fluentd",
      "_id" : "AVbpDskPOf1yFl8aApNp",
      "_score" : 1.0,
      "_source" : {
        "log" : "helloWorld",
        "container_id" : "8c58cf5be57e9905215ea8f8cd677e48594a384c30a2842facb6563c3f32097c",
        "container_name" : "/sleepy_elion",
        "source" : "stdout",
        "@timestamp" : "2016-09-02T12:00:59+08:00"
      }
    } ]
  }
}

檢視到剛剛插入的資料,則表明資料已經寫入到elasticsearch了

進入kibana建立索引


點選“create”,即可看到如下設定


修改查詢條件,則可檢視到寫入的資料


至此,EFK的安裝與測試則已經完成

相關推薦

CentOS7 安裝EFKelasticsearchfluentkibana進行Docker日誌蒐集

Fluentd並非是專用於日誌檔案收集的,而是一個通用的資訊收集、整理、轉發的流式資料處理工具,日誌收集只是它十分典型的一個運用場景。重要的是,Fluentd的日誌收集功能對容器支援十分完備,遠遠勝於Logstash等傳統日誌收集工具。一方面得益於Fluentd社群開發

Elk叢集安裝+配置Elasticsearch+Logstash+Filebeat+Kafka+Kibana

一、部署環境 1.基礎環境: 軟體 版本 作用 Linux Centos7.1,16g Jdk 1.8.0_151

騰訊雲Centos7安裝lnmpphp7+mysql5.7+nginx1.14全過程

安裝nginx 1、首先下載對應當前系統版本(Centos7)的nginx包(package) wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch

CentOS7安裝VNCtigerVNC Server和tightVNC Viewer

一、準備 VNC,Virtual NetworkConsole,虛擬網路控制檯。 VNC分伺服器和客戶端,伺服器需要安裝VNCServer,客戶端安裝VNC Viewer來訪問伺服器桌面。   VNC Server選擇Tigervnc,開源免費。 VNC

Centos6和Centos7安裝LAMPPHP-FPM模式編譯安裝

安裝 centos6 lamp -------------------------實驗:CentOS 7安裝LAMP(PHP-FPM模式)---------------------1、安裝PHP-FPM首先要卸載PHP: yum remove php yum install php-fpm

Docker安裝使用拉取映象新建容器啟動容器停止容器刪除容器

Docker操作相關命令 英文:https://docs.docker.com/engine/reference/commandline/docker/ 中文:http://www.runoob.com/docker/docker-command-manual.html 一、安

java專案生成安裝檔案工具為exe4jInno setup,有工具連線

今天做的是將java專案生成可安裝的exe檔案,一併將jre也打包進去了,這樣可以在沒安裝java虛擬機器的電腦上安裝使用該程式。下面介紹詳細步驟。新建一個資料夾,最好和專案名相同,然後將生成的jar檔案,exe檔案以及一些小圖示都放在資料夾中。 一、將java專案打包;

【開發工具】JAVA效能分析:1超詳細的JProfiler安裝使用具體資料分析見2

一、JProfiler簡單介紹 JProfiler是由ej-technologies GmbH公司開發的一款效能瓶頸分析工具(該公司還開發部署工具)。 其特點: 1、使用方便,介面操作友好 2、對被分析的應用影響小 3、CPU,Thread,Memory分析功能尤其強大,支援對jdb

Centos7 安裝rabbitmq轉載

css b- word gre pack sys soft comm lasso 原文地址:http://blog.csdn.net/wenyu826/article/details/71108279 安裝Erlang 從鏈接https://packages.erlan

CentOS7 安裝 haproxy 開啟預設監控介面......

安裝 yum install haproxy 檢視版本號 haproxy -v 修改配置檔案為如下內容-->全覆蓋後,修改對應埠號即可(檔案位置:/etc/haproxy/haproxy.cfg) #---------------------------

Centos7編譯安裝ffmpeg兩個字形容“噁心”以及迴圈播放本地視訊命令

迴圈播放本地視訊 ffmpeg -re -stream_loop -1 -i /root/rtmp/video/sss.mp4 -vcodec copy -acodec copy -f flv rtmp://0.0.0.0:1935/live/test1 /root/rtmp/vi

微服務架構日誌集中化 安裝 EFK (Fluentd ElasticSearch Kibana) 採集nginx日誌

首先在nginx伺服器上執行以下操作. 安裝ruby http://blog.csdn.net/chenhaifeng2016/article/details/78678680 安裝Fluentd curl -L https://toolbelt.treasuredat

Linux-Centos7 編譯安裝nginx 附nginx開機啟動指令碼

1.安裝編譯所需環境: yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 2.下載原始碼包(這裡用的是nginx-1.14.0) wget http://nginx.org/download/

Centos7 安裝nginx稍後用來部署Django程式碼

一、安裝準備 首先由於nginx的一些模組依賴一些lib庫,所以在安裝nginx之前,必須先安裝這些lib庫,這些依賴庫主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以執行如下命令安裝     $   yum in

centos7 安裝linux爬坑篇

第一、下載erlang和rabbitmq-server的rpm: http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm http://www.rabbitmq.com/releases/ra

centos7安裝Nginxrpm

1、下載對應當前系統版本的nginx包(package) nginx-release-centos-7-0.el7.ngx.noarch.rpm 2、建立nginx的yum倉庫 rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

CentOS7 安裝 oracleXE快捷版教程

1、下載安裝包 下載地址:http://www.oracle.com/technetwork/cn/database/database-technologies/express-edition/downloads/index.html 下載完之後上傳到L

CentOs7安裝gitlab轉!

轉自:https://www.cnblogs.com/chenfool/p/7689438.html 環境說明:虛擬機器 centos 7 64位記憶體:4GB儲存:100GBCPU: CORE 版本:gitlab 10.0.3  配置系統基礎環境 配置阿里巴巴 yum 源

centos7.2 lamp環境安裝搭建基於阿里雲ECS伺服器

centos7.2 lamp環境安裝搭建 centos7.2 + apache2.4.23 + mysql5.7.14 + php7.0.9 + phpMyAdmin4.6.3 這是我在一臺新裝的 centos7.2阿里雲ECS伺服器上搭建的lamp環境流程,目的是搭建一

centos7安裝Oracle12完整版

Oracle憑藉各種優勢,在一些大型企業應用非常廣泛,今天來分享一波Oracle12C 資料庫安裝過程,可以自己搭一個環境,練練手,學習學習。 首先說說我的搭建環境: centos 7 Oracle12c Oracle資料庫的安裝比較麻煩,但一般分為以下