ELK的搭建--非集群
1、ELK日志系统介绍
1、ELK分别是Elasticsearch、Logstash、Kibana三个开源框架缩写。
Elasticsearch:接收搜集的海量结构化日志数据,并提供给kibana查询分析
Logstash:用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中
Kibana:对elasticsearch提供的数据进行分析展示
2、ELK经典应用
如图:
Logstash部署至服务主机,对各个服务的日志进行采集、过滤、推送。
Elasticsearch存储Logstash传送的结构化数据,提供给Kibana。
Kibana提供用户UIweb页面进行,数据展示和分析形成图表等。
2、ELK搭建(非集群)
介绍ELK非集群的搭建,主要分为一下几个方面:ELK资源下载,新建elk用户,elasticsearch配置启动,kibana配置启动,logstash配置启动,elk日志收集验证
2.1、ELK资源下载
ELK资源需要保持版本一致,本文使用的是6.3.0
Elasticsearch elasticsearch-6.3.0.tar.
Kibana kibana-6.3.0.tar.
Logstash logstash-6.3.0.tar.
2.2、新建ELK用户
启动elk,需要新建用户,不能在root下启动
1.新建用户elk
useradd elk
2.给elk赋权
修改文件去掉头部#
vi /etc/sudoers
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
3.然后修改用户,使其属于root组
usermod -g root elk
4切换用户elk
su elk
2.3、Elasticsearch配置启动
1.解压
tar -zxvf elasticsearch-6.3.0.tar.gz
2.修改配置文件
vi /root/elk/elasticsearch-6.3.0/config/elasticsearch.yml
底部增加(注意空格)
network.host: 0.0.0.0
http.port: 9200
3.启动elasticsearch
后台启动
/root/elk/elasticsearch-6.3.0/bin/elasticsearch -d
查看日志
tail -100f /root/elk/elasticsearch-6.3.0/logs/elasticsearch.log
发现报错如下
4.解决报错:
[1]: max number of threads [1024] for user [elk] is too low, increase to at least [4096]
切换到root用户,进入limits.d目录下修改配置文件。
#vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
- soft nproc 1024
修改为 - soft nproc 2048
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
切换到root用户修改配置sysctl.conf
#vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
#sysctl -p
[3]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
修改elasticsearch.yml 底部增加两行参数
vi /root/elk/elasticsearch-6.3.0/config/elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
5.启动elasticsearch
/root/elk/elasticsearch-6.3.0/bin/elasticsearch -d
访问9200端口
2.4、Kibana配置启动
1.解压
tar -zxvf kibana-6.3.0-linux-x86_64.tar.gz
2.修改配置文件
vi /root/elk/kibana-6.3.0-linux-x86_64/config/kibana.yml
底部增加
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
3.启动
nohup /root/elk/kibana-6.3.0-linux-x86_64/bin/kibana &
4.验证
访问5601端口,发现初始化的kibana页面
2.4、Logstash配置启动
1.解压
tar -zxvf logstash-6.3.0.tar.gz
2.配置文件
新建配置文件logback-es.conf
添加
input {
tcp {
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "ecom"
}
stdout { codec => rubydebug}
}
修改配置文件
vi /root/elk/logstash-6.3.0/config/logstash.yml
底部添加
http.host: "0.0.0.0"
http.port: 9600
3.启动
nohup /root/elk/logstash-6.3.0/bin/logstash -f /root/elk/logstash-6.3.0/config/logback-es.conf &
查询日志
tail -100f /root/elk/logstash-6.3.0/logs/logstash-plain.log
4.验证
访问9600 端口
2.5、Elk日志收集验证
1.添加logstash的pom依赖
<logstash-logback.version>6.3</logstash-logback.version>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash-logback.version}</version>
</dependency>
2.配置logback.xml
logstash监听地址配在/root/elk/logstash-6.3.0/config/logback-es.conf 中,需保持一致
<!-- logstash配置 -->
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.**.**:4560</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="logstash"/>
</root>
3.简单的接口打印日志
log.info("测试elk日志打印, 时间{}", System.currentTimeMillis());
4.验证
kibana创建index,index为logback-es.conf中的output.index
发现页面搜索“测试”,即日志内容
至此非集群的ELK搭建完毕
文章参考Mars’Ares的ELK搭建.