centos7 yum方式安裝最新版ELK Elasticsearch7+Kibana7+logstash7+導入mysql數據源

準備

本文采用yum安裝,並且採用國內鏡像源安裝,大大提高安裝速度。

JDK必須安裝jdk8,官方下載鏈接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Elasticsearch7.x 清華大學開源鏡像站:https://mirror.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/

開始安裝

JAVA環境安裝

1. 解壓jdk文件
tar -zxvf jdk-8u171-linux-x64.tar.gz 
2.新建安裝目錄,複製文件到安裝目錄
mkdir /usr/java
mv /var/www/jdk1.8.0_171/* /usr/java/
3.配置jdk環境變量
vim /etc/profile

末尾添加:

JAVA_HOME=/usr/java
JRE_HOME=/usr/java/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

讓修改生效:

source /etc/profile

檢查jdk

java -version

在這裏插入圖片描述
jdk配置完成!

Elasticsearch安裝

yum安裝方式Elasticsearch

1.導入Elasticsearch GPG KEY
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
2.添加elasticsearch的yum repo文件,使用清華的yum源鏡像

默認安裝最新版本,如需要指定版本,請將版本號改爲指定版本號

cd /etc/yum.repos.d
vi elasticsearch7.repo

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://mirror.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
3.安裝
yum install -y elasticsearch
4.配置elasticsearch

4.1 編輯vim /etc/elasticsearch/elasticsearch.yml ,注意冒號後面有個空格。

vim /etc/elasticsearch/elasticsearch.yml 

單機安裝請取消註釋:node.name: node-1,否則無法正常啓動。
在這裏插入圖片描述
4.2修改網絡和端口,取消註釋master節點,單機只保留一個node
在這裏插入圖片描述
4.3按需修改vim /usr/elasticsearch/config/jvm.options內存設置

vim /etc/elasticsearch/config/jvm.options

== 根據實際情況修改佔用內存,默認都是1G,這裏測試機是2G修改爲512m,經測試,單機1G內存,設置512兆啓動會佔用700m+然後在安裝kibana後,基本上無法運行了,運行了一會就掛了報內存不足。 內存設置超出物理內存,也會無法啓動,啓動報錯。==
在這裏插入圖片描述
4.4修改/etc/sysctl.conf
末尾添加:vm.max_map_count=655360

vim /etc/sysctl.conf

在這裏插入圖片描述
執行sysctl -p 讓其生效

sysctl -p

4.5修改/etc/security/limits.conf

vim /etc/security/limits.conf

末尾添加:

*               soft    nofile          65536
*               hard    nofile          65536
*               soft    nproc           4096
*               hard    nproc           4096

在這裏插入圖片描述
4.6 啓動,開機啓動

systemctl start elasticsearch		#啓動
systemctl status elasticsearch 		#查看
systemctl enable elasticsearch		#開機啓動
systemctl stop elasticsearch		#停止

4.7 配置完成:
瀏覽器訪問測試。ip:9200
出現此頁面,則一切正常
在這裏插入圖片描述

安裝Kibana

安裝ES時添加清華yum源中已經包含了kibana,下面直接使用yum安裝即可。

1.yum安裝kibana
yum install -y kibana

使用yum安裝的kibana,默認安裝的主目錄在/usr/share/kibana中。kibana配置文件的位置爲/etc/kibana/kibana.yml。

2.配置Kibana界面

修改配置文件

vim /etc/kibana/kibana.yml

修改端口,訪問ip,elasticsearch服務器ip
在這裏插入圖片描述
修改爲中文:
在這裏插入圖片描述
配置完成啓動:

systemctl start kibana		#啓動
systemctl enable kibana		#開機啓動
systemctl status kibana		#查看
systemctl stop kibana		#停止

訪問ip:5601,即可看到安裝成功
在這裏插入圖片描述

安裝Logstash

安裝ES時添加清華yum源中已經包含了Logstash,下面直接使用yum安裝即可。

1.yum安裝Logstash
yum install -y logstash

在啓動前還需要創建或修改文件/etc/sysconfig/logstash在其中加入環境變量JAVA_HOME=/usr/java
否則啓動會提示failed (Result: start-limit)錯誤,具體原因在/var/log/messages中可以查看到:

failed (Result: start-limit)
logstash: could not find java; set JAVA_HOME or ensure java is in PATH

在這裏插入圖片描述

指定logstash環境變量

JAVA_HOME=/usr/java
2.設置Logstash導入mysql數據源

默認yum安裝的Logstash的各種配置文件在/etc/logstash下,默認安裝目錄在/usr/share/logstash目錄下

/etc/logstash/
├── conf.d
├── jvm.options
├── log4j2.properties
├── logstash-sample.conf
├── logstash.yml
├── pipelines.yml
└── startup.options
conf.d 配置文件存放目錄將讀取/etc/logstash/conf.d目錄下所有的conf文件
jvm.options 運行內存大小配置,默認1G

2.1 安裝logstash-input-jdbc插件:

cd /usr/share/logstash
./logstash-plugin install logstash-input-jdbc

2.2 下載jdbc驅動mysql-connector-java.jar:
鏈接:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
解壓後:

mysql-connector-java-5.1.48-bin.jar  
mysql-connector-java-5.1.48.jar

新建config目錄,將上兩個jar文件放置在此目錄

mkdir /etc/logstash/config

2.2 配置鏈接數據庫文件:
在/etc/logstash/conf.d/目錄下新建jdbc.conf文件:

vim /etc/logstash/conf.d/jdbc.conf
#輸入部分
input {
  stdin {}
  jdbc {
   #jdbc驅動文件路徑
    jdbc_driver_library => "/etc/logstash/config/mysql-connector-java-5.1.48.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://ip:3306/test"
    jdbc_user => "admin"
    jdbc_password => "admin"
    # 設置監聽間隔  各字段含義(分、時、天、月、年),全部爲*默認含義爲每分鐘更新一次
    schedule => "* * * * *"
    # 分頁
    jdbc_paging_enabled => "true"
    # 分頁大小
    jdbc_page_size => "5000"
    #時區
    jdbc_default_timezone =>"Asia/Shanghai"
    # sql語句執行文件,路徑,也可直接使用 statement => 'select * from t_employee'
    #statement_filepath => "/etc/logstash/config/jdbc.sql"
    #這裏直接寫執行語句:sql_last_value表示執行上次保存的id
    statement => "select * from test  where id > :sql_last_value"
    # elasticsearch索引類型名
    type => "type_name"
    #保持大小寫
    lowercase_column_names => "false"
    #是否記錄上次執行結果, 如果爲真,將會把上次執行到的 tracking_column 字段的值記錄下來,保存到 last_run_metadata_path 指定的文件中
    record_last_run => true
    # 是否需要記錄某個column 的值,如果record_last_run爲真,可以自定義我們需要 track 的 column 名稱,此時該參數就要爲 true. 否則默認 track 的是 id 的值.
    use_column_value => true
    tracking_column => "id"
    #遞增字段的類型,numeric 表示數值類型, timestamp 表示時間戳類型
    tracking_column_type => "numeric"
    #記錄上次執行結果保存的文件路徑
    last_run_metadata_path => "/etc/logstash/rundata/last_id"
    #是否清除 last_run_metadata_path 的記錄,如果爲真那麼每次都相當於從頭開始查詢所有的數據庫記錄
    clean_run => false
  }
# 過濾部分(不是必須項)
filter {
    #@timestapm修改爲test表中start_time字段時間,默認@timestapm爲當期導入的時間,結合實際使用情況修改
    mutate {
       add_field => {"temp_ts" => "%{start_time}"}
    }
    date {
      match => ["temp_ts","ISO8601"]
      remove_field => ["temp_ts"]
    }
}
# 輸出部分
output {
    elasticsearch {
        # elasticsearch索引名
        index => "test_index"
        # 使用input中的type作爲elasticsearch索引下的類型名
        document_type => "%{type}"   # <- use the type from each input
        # elasticsearch的ip和端口號
        hosts => "localhost:9200"
        # 同步mysql中數據id作爲elasticsearch中文檔id
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
}
    

2.3 啓動:

systemctl start logstash		#啓動
systemctl enable logstash		#開機啓動
systemctl status logstash		#查看
systemctl stop logstash		#停止

查看運行結果:

tail -f /var/log/messages 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章