ElasticSearch-kibana-Logstash-mysql[干貨]

為了解決什么問題?

本文介紹如何將mysql里的表數(shù)據(jù)導(dǎo)入至ElasticSearch(以下簡稱es),并用kibana查詢這些數(shù)據(jù)

準(zhǔn)備

一臺(tái)裝有centos 7能夠正常聯(lián)網(wǎng)的服務(wù)器(內(nèi)存至少8G)
安裝好JDK(版本大于等于8)
下載相同版本的ElasticSearch,kibana,logstash的rpm安裝包(官網(wǎng)都有這里就不多說了)
提供一個(gè)測(cè)試mysql數(shù)據(jù)庫(表里要有數(shù)據(jù)噢)
將下載好的rpm包全部傳到服務(wù)器/tmp/下
mysql驅(qū)動(dòng)jar

安裝ElasticSearch(以下簡稱es)

  1. 關(guān)閉機(jī)器selinux
  2. 執(zhí)行安裝命令
rpm -ivh  elasticsearch-8.5.0-x86_64.rpm
  1. 查看elasticsearch.service安裝文件
#我們使用rpm安裝的serivce文件都在/usr/lib/systemd/system/下
vi /usr/lib/systemd/system/elasticsearch.service
  1. 查看es本體安裝目錄
#我們使用rpm安裝的安裝本體都在/usr/share/下
cd /usr/share/elasticsearch/
[root@node91 elasticsearch]# ls
bin  jdk  lib  LICENSE.txt  modules  NOTICE.txt  plugins  README.asciidoc
  1. 調(diào)整查看配置文件
[root@node91 elasticsearch]# cd /etc/elasticsearch/
[root@node91 elasticsearch]# ls
certs                   elasticsearch-plugins.example.yml  elasticsearch.yml.rpmsave  jvm.options.d      role_mapping.yml  users
elasticsearch.keystore  elasticsearch.yml                  jvm.options                log4j2.properties  roles.yml         users_roles
  1. vi編輯elasticsearch.yml主配置文件
# 部分需要更改的配置
# es日志地址
path.logs: /var/log/elasticsearch解析
# 網(wǎng)絡(luò)監(jiān)聽地址
network.host: 0.0.0.0
# 訪問端口
http.port: 9200
# 安全配置 xpack開頭的全部改成false
xpack.* = false
  1. 啟動(dòng)es服務(wù)
# 所有采用rpm安裝的軟件都會(huì)交由systemctl去管理,下面趁機(jī)說下一些systemctl服務(wù)的基本操作
# 系統(tǒng)重載systemctl服務(wù),凡是對(duì)serivice文件做了更改的必須執(zhí)行下面的命令
systemctl daemon-reload
# 查看es服務(wù)狀態(tài)
systemctl status elasticsearch.service
# 運(yùn)行es服務(wù),并查看日志
systemctl start elasticsearch.service && journalctl -f -n 22 -u elasticsearch.service
# 關(guān)閉es服務(wù)
systemctl stop elasticsearch.service
# 將es服務(wù)注冊(cè)為開機(jī)自啟服務(wù)
systemctl enable elasticsearch.service
# 禁用es服務(wù)為開機(jī)自啟
systemctl disabled elasticsearch.service
# 重啟es服務(wù),并查看日志
systemctl restart elasticsearch.service && journalctl -f -n 22 -u elasticsearch.service
  1. 測(cè)試es服務(wù)是否正常開啟
# 能看到  "You Know, for Search" 即說明正常
curl http://localhost:9200
{
  "name" : "elk",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "hqp4Aad0T2Gcd4QyiHASmA",
  "version" : {
    "number" : "8.5.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "de777fa",
    "build_date" : "2022-10-24T18:30:11.767338Z",
    "build_snapshot" : false,
    "lucene_version" : "9.4.1",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

安裝kibana

  1. 執(zhí)行安裝命令
rpm -ivh  kibana-8.5.0-x86_64.rpm
  1. 查看kibana.service安裝文件
#我們使用rpm安裝的serivce文件都在/usr/lib/systemd/system/下
vi /usr/lib/systemd/system/kibana.service
  1. 查看kibana本體安裝目錄
#我們使用rpm安裝的安裝本體都在/usr/share/下
cd /usr/share/kibana/
[root@node91 kibana]# ls
bin  LICENSE.txt  node  node_modules  NOTICE.txt  package.json  plugins  README.txt  src  x-pack
  1. 調(diào)整查看配置文件
[root@node91 kibana]# cd /etc/kibana/
[root@node91 kibana]# ls
kibana.keystore  kibana.yml  node.options
  1. vi編輯kibana.yml主配置文件
# 部分需要更改的配置
# kibana端口
server.port: 5601
# 可訪問,0.0.0.0 表示可遠(yuǎn)程鏈接
server.host: "0.0.0.0"
# 監(jiān)聽es地址
elasticsearch.hosts: ["http://localhost:9200"]
# 訪問端口
http.port: 9200
# web頁面顯示改成中文
i18n.locale: "zh-CN"
  1. 啟動(dòng)kibana服務(wù)(跟es的服務(wù)一個(gè)地址噢也是同樣的用法)
# 運(yùn)行kibana服務(wù),并查看日志
systemctl start kibana.service && journalctl -f -n 22 -u kibana.service
  1. 打開瀏覽器,瀏覽kibana web頁面
http://localhost:5601

安裝logstash

  1. 執(zhí)行安裝命令
rpm -ivh  logstash-8.5.0-x86_64.rpm
  1. 查看logstash.service安裝文件
#我們使用rpm安裝的serivce文件都在/usr/lib/systemd/system/下
vi /usr/lib/systemd/system/logstash.service
  1. 查看logstash本體安裝目錄
#我們使用rpm安裝的安裝本體都在/usr/share/下
cd /usr/share/logstash/
[root@node91 logstash]# ls
bin     CONTRIBUTORS  Gemfile       jdk          lib          logstash-core             modules     tools   x-pack
config  data          Gemfile.lock  JDK_VERSION  LICENSE.txt  logstash-core-plugin-api  NOTICE.TXT  vendor
  1. 調(diào)整查看配置文件
[root@node91 logstash]# cd /etc/logstash/
[root@node91 logstash]# ls
conf.d  jvm.options  log4j2.properties  logstash-sample.conf  logstash.yml  pipelines.yml  startup.options
  1. vi編輯startup.options啟動(dòng)參數(shù)配置文件
# 部分需要更改的配置
# logstash自身帶了jdk,需要把這里編輯下,否則啟動(dòng)可能會(huì)報(bào)錯(cuò)
JAVACMD=/usr/share/logstash/jdk
  1. 將mysql 驅(qū)動(dòng)jar放至/usr/share/logstash/bin/下
  • 我的路徑是/usr/share/logstash/bin/mysql-connector-java-8.0.19.jar
  1. 增加編輯數(shù)據(jù)傳輸配置
# 在/etc/logstash/文件夾下增加config文件夾,將放置鏈接mysql與es的配置文件
[root@node91 logstash]# cd /etc/logstash/
[root@node91 logstash]# mkdir config
[root@node91 logstash]# cd config
[root@node91 config]# cd config
[root@node91 config]# vi jdbc.conf
# jdbc.conf內(nèi)容,如下
input {
    jdbc {
      # 數(shù)據(jù)庫連接字符串
      jdbc_connection_string => "jdbc:mysql://192.168.3.187:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8"
      # 數(shù)據(jù)庫登錄名
      jdbc_user => "root"
      # 登錄密碼
      jdbc_password => "rootdb"
      # jdbc驅(qū)動(dòng)程序包路徑
      jdbc_driver_library => "/usr/share/logstash/bin/mysql-connector-java-8.0.19.jar"
      # 驅(qū)動(dòng)程序類名
      jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
      # 是否分頁
      jdbc_paging_enabled => "true"
      # 每頁幾條記錄
      jdbc_page_size => "10000"
      # 同步查詢語句演闭,:sql_last_value變量為上次同步時(shí)間,程序會(huì)記錄下來霹崎,如果第一次同步則為1970-1-1
      # mapping中日期類型字段我定義了格式,為了避免報(bào)錯(cuò)臭墨,我就在SQL語句中格式化為字符類型
      statement => "SELECT *  FROM test WHERE createTime>= :sql_last_value"
      # 同步頻率双炕,cron表達(dá)式,不會(huì)的可以百度一下障本;這樣是每分鐘執(zhí)行一次
      schedule => "* * * * *"
      # 時(shí)區(qū)弛槐,一定要配置懊亡,不然 :sql_last_value變量會(huì)少了8小時(shí)
      jdbc_default_timezone => "Asia/Shanghai"
      type => "jdbc"
    }
}
filter {
}
output {
      elasticsearch {
       # ES索引名稱
        index => "mysql-test01"
       # ES文檔ID,配置表的主鍵字段
        document_id => "%{id}"
    hosts => ["localhost:9200"]
      }
}
  1. 啟動(dòng)logstash服務(wù)(跟es的服務(wù)一個(gè)地址噢也是同樣的用法)
# 運(yùn)行l(wèi)ogstash服務(wù),并查看日志
systemctl start logstash.service && journalctl -f -n 22 -u logstash.service
  1. 將配置文件設(shè)置到啟動(dòng)項(xiàng)
# 編輯 logstash.service
vi /usr/lib/systemd/system/logstash.service
# ExecStart項(xiàng)前 增加啟動(dòng)配置
# 修改前
ExecStart=/usr/share/logstash/bin/logstash "--path.settings" "/etc/logstash"
# 修改后
ExecStart=/usr/share/logstash/bin/logstash -f  /etc/logstash/config/jdbc.conf  "--path.settings" "/etc/logstash"
  1. 打開瀏覽器,瀏覽kibana web頁面,操作數(shù)據(jù)
http://localhost:5601

附錄:

  1. 三套軟件下載地址
https://artifacts.elastic.co/downloads/elasticsearch
https://www.elastic.co/cn/downloads/kibana
https://www.elastic.co/cn/downloads/logstash
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乎串,一起剝皮案震驚了整個(gè)濱河市店枣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖鸯两,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闷旧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡钧唐,警方通過查閱死者的電腦和手機(jī)忙灼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钝侠,“玉大人该园,你說我怎么就攤上這事∷停” “怎么了里初?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長忽舟。 經(jīng)常有香客問我双妨,道長,這世上最難降的妖魔是什么叮阅? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任斥难,我火速辦了婚禮,結(jié)果婚禮上帘饶,老公的妹妹穿的比我還像新娘。我一直安慰自己群扶,他們只是感情好及刻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著竞阐,像睡著了一般缴饭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骆莹,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天颗搂,我揣著相機(jī)與錄音,去河邊找鬼幕垦。 笑死丢氢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的先改。 我是一名探鬼主播疚察,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼仇奶!你這毒婦竟也來了貌嫡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎岛抄,沒想到半個(gè)月后别惦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夫椭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年掸掸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片益楼。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡猾漫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出感凤,到底是詐尸還是另有隱情悯周,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布陪竿,位于F島的核電站禽翼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏族跛。R本人自食惡果不足惜闰挡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望礁哄。 院中可真熱鬧长酗,春花似錦、人聲如沸桐绒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茉继。三九已至咧叭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烁竭,已是汗流浹背菲茬。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留派撕,地道東北人婉弹。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像腥刹,于是被迫代替她去往敵國和親马胧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容