美文网首页
ElasticSearch-kibana-Logstash-my

ElasticSearch-kibana-Logstash-my

作者: 随风遣入夜 | 来源:发表于2022-11-10 14:20 被阅读0次

    为了解决什么问题?

    本文介绍如何将mysql里的表数据导入至ElasticSearch(以下简称es),并用kibana查询这些数据

    准备

    一台装有centos 7能够正常联网的服务器(内存至少8G)
    安装好JDK(版本大于等于8)
    下载相同版本的ElasticSearch,kibana,logstash的rpm安装包(官网都有这里就不多说了)
    提供一个测试mysql数据库(表里要有数据噢)
    将下载好的rpm包全部传到服务器/tmp/下
    mysql驱动jar

    安装ElasticSearch(以下简称es)

    1. 关闭机器selinux
    2. 执行安装命令
    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. 调整查看配置文件
    [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解析
    # 网络监听地址
    network.host: 0.0.0.0
    # 访问端口
    http.port: 9200
    # 安全配置 xpack开头的全部改成false
    xpack.* = false
    
    1. 启动es服务
    # 所有采用rpm安装的软件都会交由systemctl去管理,下面趁机说下一些systemctl服务的基本操作
    # 系统重载systemctl服务,凡是对serivice文件做了更改的必须执行下面的命令
    systemctl daemon-reload
    # 查看es服务状态
    systemctl status elasticsearch.service
    # 运行es服务,并查看日志
    systemctl start elasticsearch.service && journalctl -f -n 22 -u elasticsearch.service
    # 关闭es服务
    systemctl stop elasticsearch.service
    # 将es服务注册为开机自启服务
    systemctl enable elasticsearch.service
    # 禁用es服务为开机自启
    systemctl disabled elasticsearch.service
    # 重启es服务,并查看日志
    systemctl restart elasticsearch.service && journalctl -f -n 22 -u elasticsearch.service
    
    1. 测试es服务是否正常开启
    # 能看到  "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. 执行安装命令
    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. 调整查看配置文件
    [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 表示可远程链接
    server.host: "0.0.0.0"
    # 监听es地址
    elasticsearch.hosts: ["http://localhost:9200"]
    # 访问端口
    http.port: 9200
    # web页面显示改成中文
    i18n.locale: "zh-CN"
    
    1. 启动kibana服务(跟es的服务一个地址噢也是同样的用法)
    # 运行kibana服务,并查看日志
    systemctl start kibana.service && journalctl -f -n 22 -u kibana.service
    
    1. 打开浏览器,浏览kibana web页面
    http://localhost:5601
    

    安装logstash

    1. 执行安装命令
    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. 调整查看配置文件
    [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启动参数配置文件
    # 部分需要更改的配置
    # logstash自身带了jdk,需要把这里编辑下,否则启动可能会报错
    JAVACMD=/usr/share/logstash/jdk
    
    1. 将mysql 驱动jar放至/usr/share/logstash/bin/下
    • 我的路径是/usr/share/logstash/bin/mysql-connector-java-8.0.19.jar
    1. 增加编辑数据传输配置
    # 在/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内容,如下
    input {
        jdbc {
          # 数据库连接字符串
          jdbc_connection_string => "jdbc:mysql://192.168.3.187:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8"
          # 数据库登录名
          jdbc_user => "root"
          # 登录密码
          jdbc_password => "rootdb"
          # jdbc驱动程序包路径
          jdbc_driver_library => "/usr/share/logstash/bin/mysql-connector-java-8.0.19.jar"
          # 驱动程序类名
          jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
          # 是否分页
          jdbc_paging_enabled => "true"
          # 每页几条记录
          jdbc_page_size => "10000"
          # 同步查询语句,:sql_last_value变量为上次同步时间,程序会记录下来,如果第一次同步则为1970-1-1
          # mapping中日期类型字段我定义了格式,为了避免报错,我就在SQL语句中格式化为字符类型
          statement => "SELECT *  FROM test WHERE createTime>= :sql_last_value"
          # 同步频率,cron表达式,不会的可以百度一下;这样是每分钟执行一次
          schedule => "* * * * *"
          # 时区,一定要配置,不然 :sql_last_value变量会少了8小时
          jdbc_default_timezone => "Asia/Shanghai"
          type => "jdbc"
        }
    }
    filter {
    }
    output {
          elasticsearch {
           # ES索引名称
            index => "mysql-test01"
           # ES文档ID,配置表的主键字段
            document_id => "%{id}"
        hosts => ["localhost:9200"]
          }
    }
    
    1. 启动logstash服务(跟es的服务一个地址噢也是同样的用法)
    # 运行logstash服务,并查看日志
    systemctl start logstash.service && journalctl -f -n 22 -u logstash.service
    
    1. 将配置文件设置到启动项
    # 编辑 logstash.service
    vi /usr/lib/systemd/system/logstash.service
    # ExecStart项前 增加启动配置
    # 修改前
    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页面,操作数据
    http://localhost:5601
    

    附录:

    1. 三套软件下载地址
    https://artifacts.elastic.co/downloads/elasticsearch
    https://www.elastic.co/cn/downloads/kibana
    https://www.elastic.co/cn/downloads/logstash
    

    相关文章

      网友评论

          本文标题:ElasticSearch-kibana-Logstash-my

          本文链接:https://www.haomeiwen.com/subject/vsjatdtx.html