準備
本文采用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