ELK搭建和使用

这两天使用公司的一台cent os把ELK搭建了起来,做个记录。

1.在官网down各种安装包-elasticSearch, logstash, kibna

https://www.elastic.co/downloads

 

2.解压并安装各种组件

2-1.elasticSearch

安装目录为:/home/elasticsearch/elasticsearch-6.3.1

启动命令如下:

/home/elasticsearch/elasticsearch-6.3.1/bin/elasticsearch

成功启动后的截图:

ELK搭建和使用_第1张图片

可通过浏览器访问(http://172.17.250.39:9200/)

ELK搭建和使用_第2张图片

 

2-2.安装elasticSearch-Head,包括nodejs,grunt等

参考了这篇文章:

https://blog.csdn.net/mjlfto/article/details/79772848

安装路径:/home/elasticsearch-head/elasticsearch-head/

当然在安装head之前,需要先安装nodejs,grunt等,可能还需要安装wdgt,git等软件。

具体的信息可以参考下上面这个链接

启动命令:npm run start

成功启动后的截图:

ELK搭建和使用_第3张图片

可通过浏览器访问(http://172.17.250.39:9100/)

ELK搭建和使用_第4张图片

 

2-3.安装logStash

参考了这篇帖:https://blog.csdn.net/wyqlxy/article/details/52604965

其中还要设置LOGSTASH的profile环境参数,并使用source命令让其生效

启动命令:/home/logstash/logstash-6.3.2/bin/logstash -f /home/logstash/logstash-6.3.2/mysql.conf --config.reload.automatic

关键点在于这里的mysql.conf文件,里面配置了mysql的驱动jar包,数据库连接地址信息及同步的sql脚本。

内容如下:

input {
    stdin {
    }
    jdbc {
      # mysql 数据库链接,shop为数据库名
      jdbc_connection_string => "jdbc:mysql://172.17.250.24:3306/expense_dev"
      # 用户名和密码
      jdbc_user => "expensedev"
      jdbc_password => "xndev#2017"
      # 驱动
      jdbc_driver_library => "/home/logstash/jar/mysql-connector-java-5.1.38.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 执行的sql 文件路径+名称
      #statement_filepath => "/home/logstash/sql/log.sql"
      statement => "select * from expense_dev.syslog"
      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"
    }
}

filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
    elasticsearch {
        # ES的IP地址及端口
        hosts => ["172.17.250.39:9200"]
        # 索引名称
        index => "ls-index-20180803"
        # 需要关联的数据库中有有一个id字段,对应类型中的id
        #document_id => "%{id}"
    }
    stdout {
        # JSON格式输出
        codec => json_lines
    }
}

 

这样logStash成功启动后,会自动去运行设置的sql脚本,并把获取的DB数据导入到elasticSearch。

ELK搭建和使用_第5张图片

我这里脚本select出来的DB数据都是以json格式存储的。

可以看到上面的mysql.conf里设置的默认的elasticSearch的索引名称是index => "ls-index-20180803",

所以logStash启动后,可以在es-head的前端页面看到以该名称创建的索引和数据.

ELK搭建和使用_第6张图片

 

2-4.Kibna

es-head使用起来毕竟不是太方便,推荐的是kibna。

其实本人对ELK并不算特别了解,对Kibna的使用也算不上太熟练。不过既然推荐的是这个,那肯定也要试试的。

安装目录/home/kibana/kibana-6.3.2-linux-x86_64

启动命令:/home/kibana/kibana-6.3.2-linux-x86_64/bin/kibana

ELK搭建和使用_第7张图片

kibna是使用浏览器访问使用的,有很多的功能,本人目前了解的有限,后面会去官网一点点看。

http://172.17.250.39:5601/app/kibana#/home?_g=()

ELK搭建和使用_第8张图片

经过差不多2个小时的摸索和尝试,大概的使用方法如下:

2-4-1.左侧的Management菜单进去,然后点击Index Patterns来新建索引(对应ES的索引)

ELK搭建和使用_第9张图片

ELK搭建和使用_第10张图片在Index pattern输入框里输入的所以名称必须能like ES里的索引名称,否则匹配不到

ELK搭建和使用_第11张图片

ELK搭建和使用_第12张图片

ELK搭建和使用_第13张图片

Kibna的索引名称的最后面的*,表示匹配ES索引名称,类似sql里的like的功能吧。

 

2-4-2.左侧的Discover菜单进去,就能够看到启动logStash之后,从DB里同步到ES的数据了。

ELK搭建和使用_第14张图片

 

 

3.使用Kibna进行数据查询

比如通过业务上的单据编号来查询接口的调用日志(这个也是在本人目前维护的一个系统中经常用到的)

ELK搭建和使用_第15张图片

formNbr  := 后面的关键字,如果加了*号,则表示模糊查询.

查询出来的结果:

 

ELK搭建和使用_第16张图片

 

另外,查询结构列表的左侧的灰色菜单里,可以选择要显示的field是否显示(Selected Fields)

ELK搭建和使用_第17张图片

 

Kibna功能强大,其他的功能目前还不算太熟悉,后面再接着继续学习。

最后把这两天搭建ELK过程中,参考的资料和信息贴进来,以供后面参考.

####################### all
https://www.cnblogs.com/lixuwu/p/6116513.html
https://blog.csdn.net/yunanseo/article/details/48675899

####################### es
/home/elasticsearch/elasticsearch-6.3.1/bin/elasticsearch

curl -X GET http://172.17.250.39:9200


####################### es head
https://blog.csdn.net/mjlfto/article/details/79772848
cd /home/elasticsearch-head/elasticsearch-head/
npm run start

安装node
node -v

grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动
cd /home/elasticsearch-head
npm install -g grunt-cli  //执行后会生成node_modules文件夹

运行head,在elasticsearch-head-master目录下
npm install(安装下载下来的包)
grunt server


####################### logstash
https://blog.csdn.net/wyqlxy/article/details/52604965

/home/logstash/logstash-6.3.2/bin/logstash -f /home/logstash/logstash-6.3.2/mysql.conf --config.reload.automatic

yum localinstall logstash-1.5.4-1.noarch.rpm
# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz

./logstash -e ""
./logstash -e "input {stdin{}} output {stdout{}}"

export LOGSTASH_HOME=/home/logstash/logstash-6.3.2
export PATH=:$PATH:$LOGSTASH_HOME/bin


####################### kibna
/home/kibana/kibana-6.3.2-linux-x86_64/bin/kibana

你可能感兴趣的:(ELK搭建和使用)