在今天的文章中,我們來詳細地描述如果使用Filebeat把MySQL的日志資訊傳輸到Elasticsearch中。為了說明問題的友善,我們的測試系統的配置是這樣的:

我有一台MacOS機器。在上面我安裝了Elasticsearch及Kibana。在這個機器裡,我同時安裝了一個Ubuntu 18.04的虛拟機。在這個Ubunutu機器上,我安裝了MySQL及Filebeat。它們的IP位址分别顯示如上。針對你們自己的測試環境,你們的IP位址可能和我的不太一樣。
準備工作
如果大家還沒安裝好自己的Elastic Stack的話,那麼請按照我之前的教程“如何在Linux,MacOS及Windows上進行安裝Elasticsearch” 安裝好自己的Elasticsearch。由于我們的Elastic Stack需要被另外一個Ubuntu VM來通路,我們需要對我們的Elasticsearch進行配置。首先使用一個編輯器打開在config目錄下的elasticsearch.yml配置檔案。我們需要修改network.host的IP位址。在你的Mac及Linux機器上,我們可以使用:
<code>$ ifconfig</code>
來檢視到我們的機器的IP位址。針對我的情況,我的機器的IP位址是:192.168.0.100。
我們也必須在elasticsearch.yml的最後加上discovery.type: single-node,表明我們是單個node。
等修改完我們的IP位址後,我們儲存elasticsearch.yml檔案。然後重新運作我們的elasticsearch。我們可以在一個浏覽器中輸入剛才輸入的IP位址并加上端口号9200。這樣可以檢視一下我們的elasticsearch是否已經正常運作了。
我們可以按照“如何在Linux,MacOS及Windows上安裝Elastic棧中的Kibana”中介紹的那樣來安裝我們的Kibana。由于我們的Elasticsearch的IP位址已經改變,是以我們必須修改我們的Kibana的配置檔案。我們使用自己喜歡的編輯器打開在config目錄下的kibana.yml檔案,并找到server.host。把它的值修改為自己的電腦的IP位址。針對我的情況是:
同時找到elasticsearch.hosts,并把自己的IP位址輸入進去:
儲存我們的kibana.yml檔案,并運作我們的Kibana。同時在浏覽器的位址中輸入自己的IP位址及5601端口:
如果配置成功的話,我們就可以看到上面的畫面。
這個不在我的這個教程之内。在網上我們可以找到許多的教程教我們如何安裝Ubuntu虛拟機。
我們可以按照連結https://vitux.com/how-to-install-and-configure-mysql-in-ubuntu-18-04-lts/來安裝我們的MySQL。簡單地說,安裝步驟如下:
如果尚未安裝MySQL,則可以使用以下步驟安裝和配置它。 您需要做的第一件事就是更新系統。
<code>sudo apt-get update</code>
然後像這樣安裝MySQL:<code>sudo apt-get install mysql-server</code>
在安裝過程中,系統将提示您設定root密碼。 記下它,因為管理MySQL資料庫将需要它。或者,你通過如下的方法來設定MySQL的密碼:
<code>sudo mysql</code>
等進入到MySQL後,打入如下的指令來建立你的root使用者的密碼:
在上面的句子裡,使用自己喜歡的密碼來代替password。
下一步是配置MySQL以寫入正常查詢日志檔案和慢速查詢日志檔案,因為預設情況下會禁用這些配置。 要更改配置,您将需要編輯包含使用者資料庫設定的my.cnf檔案。
正常查詢和慢速查詢的有效配置應如下所示:
我們可以把上面的配置添加到我們的my.cnf檔案當中去:
請注意,在低于5.1.29的MySQL版本中,使用了變量log_slow_queries而不是slow_query_log。
進行以下更改後,請確定重新啟動MySQL:
現在,您的MySQL已準備好編寫慢速查詢,這些查詢将通過Filebeat傳送到您的Elasticsearch叢集中。我們可以檢查一下我們的MySQL是否已經成功運作:<code>systemctl status mysql.service</code>
等我們成功配置後我們的MySQL,我們可以開始對我們的MySQL進行一些操作,然後你可以在如下的目錄中檢視到相應的log檔案:
在Ubuntu上安裝Filebeat也是非常直接的。我們可以先打開我們的Kibana。
點選上面的“Add log data”按鈕:
點選上面的“MySQL logs”按鈕:
選擇上面的作業系統。針對我們的Ubuntu系統,它是一個DEB格式的安裝檔案。我們按照上面的要求一步一步地進行安裝和修改。在修改filebeat.yml檔案時,我們需要注意的三點:
1)修改MySQL的log路徑:
2)填入Kibana的位址:
3)填入Elasticsearch的位址及端口号:
我們需要運作如下的指令來把相應的dashboard,pipeline及template資訊上傳到Elasticsearch和Kibana中。
等我們啟動我們的filebeat後,我們可以通過如下的指令來檢查filebeat服務是否運作正常:
Kibana檢視
我們可以打開Kibana,并在Kibana中檢視由filebeat發送過來的MySQL的資料:
在上面,我們可以看到MySQL的dashboard:
至此,我們可以看到所有的關于MySQL的資訊,這裡包括以下queries及error logs等。
上面我們顯示了如何直接把MySQL的資訊發送到Elasticsearch,并對資料進行分析。當然,我們也可以把資料發送到logstash來對資料進行處理,然後再發送到Elasticsearch中。我們的filebeat.yml檔案的配置檔案可以這麼寫:
總結
版權聲明:本文為CSDN部落客「Elastic 中國社群官方部落格」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/UbuntuTouch/article/details/103954935