1. 程式人生 > 實用技巧 >centos7.4搭建elk服務

centos7.4搭建elk服務

使用的elk是6.4.3版本,安裝java8,可以使用yum install tomcat就會自動安裝了

1、首先下載elasticsearch-6.4.3、logstash-6.4.3、kibana-6.4.3,不要放在root目錄下

2、解壓完成後做如下修改

解壓後進入config目錄:cd elasticsearch-6.4.2/config,vim elasticsearch.yml 修改配置檔案,在最下面加入如下幾行:

 
network.host: 0.0.0.0
 
http.port: 9200
 
http.cors.enabled: true
 
http.cors.allow-origin: "
*"

3、不能使用root使用者啟動,需要建立新使用者

建立elsearch使用者組及elsearch使用者

groupadd elsearch

useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch-6.4.3資料夾及內部檔案的所屬使用者及組為elsearch:elsearch

cd切換到elasticsearch-6.4.3的父路徑下

chown -R elsearch:elsearch elasticsearch-6.4.3

切換到elsearch使用者再啟動

su elsearch

cd elasticsearch
-6.4.3/bin sh elasticsearch &

4、完成之後啟動

在bin目錄下執行./elasticsearch &

5、可能會遇到錯誤,如下解決

啟動失敗,檢查沒有通過,報錯

[2018-05-18T17:44:59,658][INFO ][o.e.b.BootstrapChecks    ] [gFOuNlS] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096
] for elasticsearch process is too low, increase to at least [65536] [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] [1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536] 編輯 /etc/security/limits.conf,追加以下內容; * soft nofile 65536 * hard nofile 65536 此檔案修改後需要重新登入使用者,才會生效 [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 編輯 /etc/sysctl.conf,追加以下內容: vm.max_map_count=655360 儲存後,執行: sysctl -p 重新啟動,成功。 bin/elasticsearch &

6、kibana啟動

按照上面的操作,可以先切回root使用者了:su root 需要輸入root密碼

然後cd kibana-6.4.3-linux-x86_64/config/ 進入kibana的配置資料夾,

vim kibana.yml 編輯配置檔案,在最後面加上如下配置就行:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
kibana.index: ".kibana"

cd命令進入bin目錄,

sh kibana & 啟動kibana

7、配置logstash

cd logstash-6.4.2/bin/進入bin目錄

新建檔案vim logstash1.conf ,寫入內容(監聽tomcat的日誌):

input {
    file {
        path => "/usr/share/tomcat/logs/*.log"
        start_position => beginning
    }
}
filter {
 
}
output {
    elasticsearch {
    hosts => "localhost:9200"
    }
 
}

啟動logstash:sh logstash -f logstash1.conf &

如果提示--path.data的問題,則需要指定path.data的路徑,隨便找個路徑就行,

我的是這樣啟動:sh logstash -f logstash1.conf --path.data=/home/elk/logstash-6.4.3/logs &

完了可以看到kibana上面有logstash推送過去的日誌了

配合mysql儲存

wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.49.tar.gz-O /home/liyong/mysql-connector.tar.gz

可以把解壓後的mysql-connector-java-5.1.46-bin.jar複製到bin目錄,方便啟動

在bin目錄新建配置檔案 vim mysql-logstash.cnf ,寫入:

input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.46-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://ip:3306/db_name"
    jdbc_user => "jdbc_user"
    jdbc_password => "jdbc_password"
    schedule => "* * * * *"
    statement => "SELECT * FROM table WHERE 時間欄位 >= :sql_last_value"
    use_column_value => true
    tracking_column_type => "timestamp"
    tracking_column => "時間欄位"
    last_run_metadata_path => "syncpoint_table"
  }
}
 
 
output {
  elasticsearch {
    hosts => "localhost:9200"
    index => "索引名稱"
    document_id => "%{主鍵欄位}"
  }
}

需要先把logstash停了,在重啟

netstat -ntlp 命令檢視埠為9600的程序

重新執行即可
sh /usr/elk/logstash-6.4.3/bin/logstash -f /usr/elk/logstash-6.4.3/bin/mysql-logstash.cnf --path.data=/usr/elk/logstash-6.4.3/logs &