使用packetbeat 采集mysql數據
實驗環境: CentOS 6.7 X86_64
ELK版本:5.6.0
實驗機器IP: 10.0.20.25
大部分操作及ELK語法這裏我都省略掉了。
搭建ELK
這裏實驗方便起見,我只用一臺主機演示,因此是單節點的ES。
直接到官方網站下載rpm包然後傳到服務器上,yum安裝即可
yum install elasticsearch-5.6.0.rpm kibana-5.6.0-x86_64.rpm logstash-5.6.0.rpm
vim /etc/elasticsearch/elasticsearch.yml修改後的如下(未修改的地方沒有列出來):
cluster.name: my-application
network.host: 10.0.20.25
http.port: 9200
## 在centos6系列上安裝ELK5.6需要加上下面2行代碼,不然ES啟動會失敗
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
vim /etc/logstash/logstash.yml 這裏實驗環境,我沒有做任何改動,使用的默認配置參數。
path.data: /var/lib/logstash
path.config: /etc/logstash/conf.d
path.logs: /var/log/logstash
vim/etc/kibana/kibana.yml修改後的如下(未修改的地方沒有列出來):
server.port: 5601
server.host: "10.0.20.25"
elasticsearch.url: "http://10.0.20.25:9200"
另外,實際生產環境的ES及logstash 最好修改下JVM的參數配置。
安裝packetbeat
rpm -ivh packetbeat-5.6.0-x86_64.rpm
vim /etc/packetbeat/packetbeat.yml
packetbeat.interfaces.device:any
packetbeat.protocols.mysql:
ports: [3306]
send_request: true
transaction_timeout: 30s
output.elasticsearch:
hosts: ["10.0.20.25:9200"]
work: 1
bulk_max_size: 50
timeout: 90
flush_interval: 1s
template.enabled: true
template.name: "packetbeat.template"
template.overwrite: false
index: test-mysql-%{+yyyy.MM.dd}
然後執行:
curl -XPUT‘http://10.0.20.25:9200/_template/packetbeat‘ [email protected]/etc/packetbeat/packetbeat.template.json
將模板上傳到ES裏面。
!!如果忘記這一步,先到es裏把當天的index刪除(curl -XDELETE‘http://10.0.20.25:9200/test-mysql-2017.09.23‘?pretty),再重啟啟動beat!!
!!如果自定義了index名稱,需要修改/etc/packetbeat/packetbeat.template.json中最後一行的對應的名稱再post啟動:
然後可以使用命令 curl -XGET‘http://10.0.20.25:9200/_template/packetbeat‘?pretty 檢查目前ES裏存在哪些模板
/etc/init.d/packetbeat start 啟動Packetbeat抓包工具
稍等片刻,可以使用 curl -XGET‘http://10.0.20.25:9200/test-mysql-2017.09.23/_search?pretty‘ 查看ES裏面是否有采集到數據。
到http://10.0.20.25:5601裏面,添加索引,名稱為 test-mysql-*
可以看到已經采集到數據了,如下圖:
本文出自 “一只菜雞的筆記” 博客,請務必保留此出處http://lee90.blog.51cto.com/10414478/1968035
使用packetbeat 采集mysql數據