ELK之elasticsearch +logstash+ kibana (一)服务搭建及测试

     通过查看网上的资料和文档,来把这块整理下。

     elasticsearch 一个简单且又复杂的搜索引擎,索引,片,文档等操作元素。在集群环境下的搜索比较能发挥作用。

     logstash (logstash-input-jdbc)用来实时同步数据库表数据到elasticsearch上

     kibana  提供一个可视化监控管理及分析测试elasticsearch数据数据的工具。

     上面搭建完并测试通过后,然后就 Java编写 elasticsearch客户端的代码 (后续补充)

一, 服务器环境

  • CentOS 7 (64-bit)  VMware 虚机上 ( IP : 172.16.28.248)
  • JDK1.8 (Elasticsearch 的最低要求)   
  • oracle   (IP: 172.16.28.243 )

       JDK 安装 命令 :yum install java-1.8.0-openjdk* -y

二,Elastic搭建

      1. 安装包下载及解压

         官网下载 elasticsearch 包最新版本 elasticsearch-6.6.1.tar.gz  https://www.elastic.co/cn/downloads/elasticsearch

         创建目录  data/elastic

   # 将 elasticsearch-6.6.1.tar.gz 放到 data/elastic ,解压
   tar zxvf elasticsearch-6.6.1.tar.gz

       2. 修改配置文件 elasticsearch.yml    

       将解压后的目录/data/elastic/elasticsearch-6.6.1  下建文件夹 data(存储数据)和logs (存储日志)。

       修改 /data/elastic/elasticsearch-6.6.1 config/elasticsearch.yml

  # 集群名称(本测试仅仅真对一个节点,非集群环境)  
cluster.name: elastic_test 

# 节点名称
node.name: node
-1 # 配置存储数据目录 path.data: /data/elastic/data # 配置日志目录 path.logs: /data/elastic/logs # 绑定地址 ,这里配置本服务器的地址,也可以配置 0.0.0.0 network.host: 172.16.28.248

# 释放 elasticsearch 默认端口 9200 http.port: 9200
.... 后面的 集群节点 以及 主节点数 的配置 这里都没有释放开进行配置。不测试集群环境
以及 其他属性 比如 http.max_content_length 配置索引文件的大小 等等用到时 进行设置

        3. 创建elastic用户,用 elastic用户启动elasticsearch

  # 用户组
  groupadd elasticgp

  # 用户名
  useradd -g elasticgp elastic

  # 给用户设置密码
  passwd elastic

  # 授权
  chgrp -R elasticgp elastic/
  chown -R elastic elastic/

        4.启动elasticsearch 前的环境配置 

                  1> 修改文件 /etc/security/limits.conf

       elastic soft nofile 65535
       elastic hard nofile 65537

 

                  2> 修改/etc/sysctl.conf     

       vm.max_map_count=262144  (修改完,为了确保修改的立即生效 再执行下 sudo sysctl -p )            

                 3> 修改elastic的初始内存,在/data/elastic/elasticsearch-6.3.2/config目录下  jvm.options

       -Xms512M
       -Xmx512M

                 4> 开放端口  

       # 永久开放9200端口   ---- elastic http访问的默认端口
       firewall-cmd --permanent --zone=public --add-port=9200/tcp
# 永久开放9300端口
---- elastic 集群下 多节点之前通信的端口 firewall-cmd --permanent --zone=public --add-port=9300/tcp
#重新加载防火墙配置,使开放端口生效 firewall
-cmd --reload

        5.启动 elasticsearch

      # 切换到elastic用户
      su elastic

      # 切换到程序目录下
      cd /data/elastic/elasticsearch-6.3.2

      # 后台启动程序
      ./bin/elasticsearch -d

        6. 测试查看   http://172.16.28.248:9200/

                    

三,logstash搭建

          1.  下载解压 logstash

              官网下载 logstash-6.6.1.tar.gz(与elasticsearch 版本一致) https://www.elastic.co/cn/downloads/logstash 

    # 将 logstash-6.6.1.tar.gz 放到 data/elastic ,解压
    tar zxvf logstash-6.6.1.tar.gz

 

          2. 安装logstash-input-jdbc

             在logstash 安装目录   /data/elastic/logstash-6.6.1 下 执行

     ./bin/logstash-plugin install logstash-input-jdbc

 

         3. 安装 elasticsearch-jdbc

            下载   http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.4.1/elasticsearch-jdbc-2.3.4.1-dist.zip   

    # 将 elasticsearch-jdbc-2.3.4.1-dist.zip 放到 data/elastic ,解压
    unzip elasticsearch-jdbc-2.3.4.1-dist.zip

 

         4. 将你oracle安装目录下的ojdbc6.jar拷贝到elasticsearch-jdbc-2.3.4.1的lib目录下

              本测试是oracle环境,服务器找到oracle的安装目录下ojdbc6.jar,然后进行复制转移到elasticsearch-jdbc-2.3.4.1的lib目录下

         5.  在  logstash-6.6.1/bin 目录下新建jdbc_oracle.conf文件,该文件用来配置 同步oracle表数据到elasticsearch

               配置一个简单同步一个表的数据  ( BAF_ORG_USER表的数据  为例子)

input{
      stdin{

      }
      jdbc{
            jdbc_connection_string => "jdbc:oracle:thin:@172.16.28.243:1521:orcl"
            jdbc_user => "bds"
            jdbc_password => "bds"
            jdbc_driver_library => "/data/elastic/elasticsearch-jdbc-2.3.4.1/lib/ojdbc6.jar"
            jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
            record_last_run => "true"
            use_column_value => "false"
            tracking_column => "userid"
            last_run_metadata_path => "/home/oracle/es/info"
            clean_run => "false"

            jdbc_paging_enabled => "true"
            jdbc_page_size => "50000"
            statement => "SELECT * from BAF_ORG_USER"
            schedule => "* * * * *"
            type => "tstype"
      }
}

output{
     elasticsearch{
            hosts => "172.16.28.248:9200"
            index => "tsuser"
            document_id => "%{userid}"
--------- 这里面还可以 自定义 mapping 模板 ,对索引相关的定义 。这个定义对搜索的调整很重要,
如果没有这个自定义就是默认配置了

manage_template => true
         template_overwrite => true
         template_name => "test"
         template => "../config/es_template.json" ---模板文件
} }

 

           6. 启动 logstash

    # 切换到  logstash-6.6.1/bin 目录下 执行命令
    ./logstash -f jdbc_oracle.conf

 

 

 三,kibana搭建

            1. 下载解压kibana  

             官网下载最新  kibana-6.6.1-linux-x86_64.tar.gz     https://www.elastic.co/downloads/kibana          

   # 将 kibana-6.6.1-linux-x86_64.tar.gz 放到 data/elastic ,解压
   tar zxvf kibana-6.6.1-linux-x86_64.tar.gz

 

           2. 配置 kibana.yml

    # 修改/data/elastic/kibana-6.6.1-linux-x86_64/config/kibana.yml,设置公开访问和绑定的端口:
    server.port: 5601
    server.host: "0.0.0.0"

 

          3. 把5601 端口 放开   (保险操作)

   firewall-cmd --permanent --zone=public --add-port=5601/tcp
   firewall-cmd --reload

 

          4. 启动kibana       

    # 在/data/elastic/kibana-6.6.1-linux-x86_64/bin  执行命令
    ./kibana &

         5.测试  http://172.16.28.248:5601

         

           

              查看 自己业务oracle 库 用户表的数据 是否同步到 elastic 

 

 

 

 

 全面搭建成功后,你可以通过kibana的DevTools (如上图) 来编写测试 更复杂的搜索查询等

 

posted on 2019-03-06 09:21  天外来客cheng  阅读(512)  评论(0编辑  收藏  举报

导航