ELK - LogStash
一、Debian安装
1.安装
apt-get install logstash
安装完成后,配置文件一般保存在/etc/Logstash目录下,其他一般保存在/usr/share/Logstash下。
2.同步配置文件
ln /etc/Logstash /usr/share/Logstash/config
3.测试运行
进入bin目录
cd /usr/share/Logstash/bin
测试运行
./logstash -e 'input { stdin { } } output { stdout {} }'
等待启动成功后,输入"helloworld",显示以下内容表示安装成功
{
"message" => "helloworld",
"@version" => "1",
"host" => {
"hostname" => "0.0.0.0"
},
"@timestamp" => 2023-12-12T09:21:43.454555553Z,
"event" => {
"original" => "helloworld"
}
}
二、同步MySQL数据到Elastic
1.配置
一般只有logstash-sample.conf(配置示例文件),需要自己新建配置文件
vim /etc/Logstash/logstash.conf
input {
beats {
port => 5044
}
jdbc {
jdbc_connection_string => "jdbc:mysql://ip:3306/dede"
jdbc_user => "root"
jdbc_password => "123456"
jdbc_driver_library => "/etc/logstash/mysql-connector-java-8.0.28.jar" //到mysql官网自行下载
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT * FROM dede_sys_enum WHERE id > :sql_last_value" // ":sql_last_value" 是 Logstash 中的一个变量,用于记录上一次同步数据时的最后一个 ID 值。last_run_metadata_path所填写文件会记录上一次同步的最大id
use_column_value => true
tracking_column => "id"
schedule => "*/1 * * * *" //频率 同crontab规则
last_run_metadata_path => "/usr/share/logstash/metadata/dede-sys-enum.txt" //手动创建空文本
add_field => { "index" => "dede-sys-enum" } //自定义,与下面的“output”-“index”关联
}
}
output {
if [index] == "dede-sys-enum" {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "dede-sys-enum-record"
user => elastic
password => elastic
}
}
}
2.运行
配置文件填写完成后,运行logstash进行同步
cd /usr/share/logstash/bin
#使用/usr/share/logstash/config/logstash.conf这个配置文件运行
./logstash -f /usr/share/logstash/config/logstash.conf
注:
如果运行后报"{ip} is not allowed to connect to this MySQL server",表示当前Logstash服务连接不上MySQL
需要先开放3306端口并开放root连接权限

浙公网安备 33010602011771号