Linux安装Elasticsearch + Logstash + Kibana查看日志信息

  • 简介
  • 安装Elasticsearch
  • 安装Kibana
  • 安装 Logstash
  • 通过操作Kibana查看数据


简介

Linux系统是Centos7,这次安装这三个,主要是练练手,先弄一个简单的,只查看java程序打印出的日志信息,这样每次程序有错误的时候,我就不用每天跑到服务器上面看日志了。

安装Elasticsearch

这里我已经通过我的另外一篇文章(Windows10使用ELK入门学习)通过里面的下载链接下载好了,下载的是7.10.2版本的。

Elasticsearch这里只安装单节点的。集群以后再说。

es查询语句日志打印 elasticsearch日志查看_elk


先使用tar命令将三个后缀为.gz包解压出来先,命令如下:

解压elasticsearch:tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz

解压kibana:tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz

解压logstash:tar -zxvf logstash-7.10.2-linux-x86_64.tar.gz解压后如下:

es查询语句日志打印 elasticsearch日志查看_kibana_02


然后去elasticsearch-7.10.2文件里面的plugins里面去创建一个analysis-ik文件夹来放elasticsearch-analysis-ik-7.10.2.zip解压后的中文分词器文件。

使用mkdir analysis-ik即可。

创建完成后将elasticsearch-analysis-ik-7.10.2.zip拷贝一份到analysis-ik文件夹里面。命令如下:

es查询语句日志打印 elasticsearch日志查看_java_03


然后使用unzip去解压该文件,解压完成后,然后在使用rm命令删除掉这个.zip文件

解压zip文件命令:unzip elasticsearch-analysis-ik-7.10.2.zip

删除zip文件命令:rm -rf elasticsearch-analysis-ik-7.10.2.zip然后去elasticsearch-7.10.2文件里面的config文件夹里面修改elasticsearch.yml里面的配置,在末尾直接追加如下代码即可:

cluster.name:集群名称

node.name:节点名称

network.host:0.0.0.0 #允许所有ip可以连接该elasticsearch

http.port:9200 #指的是es访问端口

cluster.initial_master_node:主节点

es查询语句日志打印 elasticsearch日志查看_java_04


这里当我使用root账户去启动es的时候,提示不允许用root用户启动,所以需要去创建一个新用户来启动es。

es查询语句日志打印 elasticsearch日志查看_java_05


创建一个启动es的用户,命令如下:

useradd es #添加es用户

passwd es #为es用户设置密码,如:qwer1234等

如果你觉得这个用户名不好,可以使用删除用户命令,删除了重新添加:
userdel -r es #删除es用户

用户创建完成后,将es所在的文件夹组改成es用户所属,命令如下:
chown -R es:es /datahjl/java/elk/elasticsearch-7.10.2

然后使用su es切换到es用户去启动elasticsearch,如下:

es查询语句日志打印 elasticsearch日志查看_es查询语句日志打印_06


启动成功后,在浏览器访问地址(http://ip地址:9200)即可,如下:

es查询语句日志打印 elasticsearch日志查看_es查询语句日志打印_07

安装Kibana

进去kibana-7.10.2-linux-x86_64文件夹里面的config文件修改里面的kibana.yml文件,如下:

es查询语句日志打印 elasticsearch日志查看_elasticsearch_08


启动kibana时出现如下问题:

es查询语句日志打印 elasticsearch日志查看_java_09


不能用root用户去启动kibana,当用es用户去启动时候出现:

Error: Unable to write Kibana UUID file, please check the uuid.server configuration错误。

通过将kibana所在的文件给es用户组即可解决该问题

es查询语句日志打印 elasticsearch日志查看_kibana_10


然后切换到es重新启动,发现启动成功

注意:Kibana启动的时候,Elasticsearch一定也是已经启动的

es查询语句日志打印 elasticsearch日志查看_elk_11


浏览器访问结果(http://ip地址:5601)如下:

es查询语句日志打印 elasticsearch日志查看_es查询语句日志打印_12

安装 Logstash

Logstash可以使用root用户启动,不需要先启动Elasticsearch和Kibana,可以单独启动,如下:

启动命令如下去logstash-7.10.2目录下运行:bin/logstash -e ‘input { stdin { } } output { stdout {} }’

测试输出hello回车打印出下面的json信息

es查询语句日志打印 elasticsearch日志查看_elk_13


然后我们结束掉logstash,在logstash-7.10.2文件夹里面使用touch命令新建一个logstash.conf文件,然后在里面添加如下内容:

#日志来源地址
input {
   file {
      path => "/datahjl/logtest.log"
      start_position => "beginning"
   }
}

#过滤器,这里消息日志里面如果有| 就分割消息,这里我注释掉了
#filter {
#   mutate {
#      split => {"message"=>"|"}
#   }
#}

#将日志信息输出到es
output {
   elasticsearch {
      #如果是集群的话,在里面以英文逗号分开来添加多个
      hosts => ["192.168.10.243:9200"]
      #自定义索引名,通过这个索引在kibana里面搜索并创建查看信息
      index => "mylog"
      #以json形式输出数据
      codec => json
   }
   stdout {
      codec => rubydebug
   }
}

因为你新写了一个配置文件,所以启动Logstash的时候,需要去指定这个文件。启动如下:

启动logstash命令如下:bin/logstash -f ./logstash.conf

es查询语句日志打印 elasticsearch日志查看_elasticsearch_14


看到这个说明启动成功。

通过操作Kibana查看数据

然后我们先在/datahjl下面创建一个logtest.log文件,使用touch来创建,这样就弄好了logstash里面日志来源信息了。

先启动Elasticsearch 在启动Kibana,在启动 Logstash,三个程序启动成功后,通过浏览器访问http://你的ip地址:5601/来打开kibana。

第一步:

es查询语句日志打印 elasticsearch日志查看_java_15


第二歩:

选择这个去创建一个索引

es查询语句日志打印 elasticsearch日志查看_kibana_16


第三歩:

点击Create index pattern按钮后,我们会来到这个页面:

es查询语句日志打印 elasticsearch日志查看_kibana_17


之所以没有搜到是因为你的logtest.log文件目前还没有收到任何的信息,所以是搜不到索引的。我们需要往logtest.log文件里面添加信息,才能匹配出来。

第四歩:

这里只是测试玩一玩,使用echo往logtest.log添加信息,回车确认后

es查询语句日志打印 elasticsearch日志查看_java_18


我们在logstash的启动端可以看到刚刚添加的信息

es查询语句日志打印 elasticsearch日志查看_kibana_19


然后我们在去刚刚的kibana页面上去搜索索引,先将页面刷新一下,如下:

可以看到我输入my就匹配到了我们的索引名mylog,然后发现Next step也可以点击了,点击Next step按钮。

es查询语句日志打印 elasticsearch日志查看_java_20


第五歩:

es查询语句日志打印 elasticsearch日志查看_es查询语句日志打印_21


创建完成后,会发现我们多了这个字段:

es查询语句日志打印 elasticsearch日志查看_elk_22


第六歩:

我们去点击Discover去查看我们的数据,如下:

es查询语句日志打印 elasticsearch日志查看_es查询语句日志打印_23


发现显示出了我们刚刚添加的数据,如下:

es查询语句日志打印 elasticsearch日志查看_elasticsearch_24


es查询语句日志打印 elasticsearch日志查看_elasticsearch_25


然后我们看到这个时间格式我们不是很喜欢,修改时间格式操作如下:

依次点击三道杠->Management->Stack Management后,然后点击它:

es查询语句日志打印 elasticsearch日志查看_kibana_26


然后将日期格式修改如下(YYYY-MM-DD HH:mm:ss.SSS):

es查询语句日志打印 elasticsearch日志查看_kibana_27


修改完成后发现日期是我们想要的格式:

es查询语句日志打印 elasticsearch日志查看_es查询语句日志打印_28


然后在添加一条数据看看:

es查询语句日志打印 elasticsearch日志查看_elasticsearch_29


es查询语句日志打印 elasticsearch日志查看_java_30


在当前页面刷新发现看到我们新添加的数据了。

es查询语句日志打印 elasticsearch日志查看_es查询语句日志打印_31


好了,至此我想要的结果已经出现了,后期只需要将这个log日志的地址改成某个java程序执行的日志地址我就可以监控这个日志了,以后看日志就不需要再去服务器上面看日志了,直接通过kibana看日志即可。