Linux系统是Centos7,这次安装这三个,主要是练练手,先弄一个简单的,只查看java程序打印出的日志信息,这样每次程序有错误的时候,我就不用每天跑到服务器上面看日志了。
这里我已经通过我的另外一篇文章(Windows10使用ELK入门学习)通过里面的下载链接下载好了,下载的是7.10.2版本的。
Elasticsearch这里只安装单节点的。集群以后再说。
先使用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
解压后如下:
然后去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文件夹里面。命令如下:
然后使用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:主节点
这里当我使用root账户去启动es的时候,提示不允许用root用户启动,所以需要去创建一个新用户来启动es。
创建一个启动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,如下:
启动成功后,在浏览器访问地址(http://ip地址:9200)即可,如下:
进去kibana-7.10.2-linux-x86_64文件夹里面的config文件修改里面的kibana.yml文件,如下:
启动kibana时出现如下问题:
不能用root用户去启动kibana,当用es用户去启动时候出现:
Error: Unable to write Kibana UUID file, please check the uuid.server configuration错误。
通过将kibana所在的文件给es用户组即可解决该问题
然后切换到es重新启动,发现启动成功
注意:Kibana启动的时候,Elasticsearch一定也是已经启动的
浏览器访问结果(http://ip地址:5601)如下:
Logstash可以使用root用户启动,不需要先启动Elasticsearch和Kibana,可以单独启动,如下:
启动命令如下去logstash-7.10.2目录下运行:bin/logstash -e ‘input { stdin { } } output { stdout {} }’
测试输出hello回车打印出下面的json信息
然后我们结束掉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
看到这个说明启动成功。
然后我们先在/datahjl下面创建一个logtest.log文件,使用touch来创建,这样就弄好了logstash里面日志来源信息了。
先启动Elasticsearch 在启动Kibana,在启动 Logstash,三个程序启动成功后,通过浏览器访问http://你的ip地址:5601/来打开kibana。
第一步:
第二歩:
选择这个去创建一个索引
第三歩:
点击Create index pattern按钮后,我们会来到这个页面:
之所以没有搜到是因为你的logtest.log文件目前还没有收到任何的信息,所以是搜不到索引的。我们需要往logtest.log文件里面添加信息,才能匹配出来。
第四歩:
这里只是测试玩一玩,使用echo往logtest.log添加信息,回车确认后
我们在logstash的启动端可以看到刚刚添加的信息
然后我们在去刚刚的kibana页面上去搜索索引,先将页面刷新一下,如下:
可以看到我输入my就匹配到了我们的索引名mylog,然后发现Next step也可以点击了,点击Next step按钮。
第五歩:
创建完成后,会发现我们多了这个字段:
第六歩:
我们去点击Discover去查看我们的数据,如下:
发现显示出了我们刚刚添加的数据,如下:
然后我们看到这个时间格式我们不是很喜欢,修改时间格式操作如下:
依次点击三道杠->Management->Stack Management后,然后点击它:
然后将日期格式修改如下(YYYY-MM-DD HH:mm:ss.SSS):
修改完成后发现日期是我们想要的格式:
然后在添加一条数据看看:
在当前页面刷新发现看到我们新添加的数据了。
好了,至此我想要的结果已经出现了,后期只需要将这个log日志的地址改成某个java程序执行的日志地址我就可以监控这个日志了,以后看日志就不需要再去服务器上面看日志了,直接通过kibana看日志即可。
好了,我的学习分享就到这里了,如果需要ES 使用kibana创建索引,常见的增删改查操作的话,我的另外一篇Windows10使用ELK入门学习博客有写到。