Linux安装Elasticsearch + Logstash + Kibana查看日志信息
简介
Linux系统是Centos7,这次安装这三个,主要是练练手,先弄一个简单的,只查看java程序打印出的日志信息,这样每次程序有错误的时候,我就不用每天跑到服务器上面看日志了。
安装Elasticsearch
这里我已经通过我的另外一篇文章(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
进去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
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 看到这个说明启动成功。
通过操作Kibana查看数据
然后我们先在/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入门学习博客有写到。
|