部署ELK日志采集系统
优采云 发布时间: 2020-08-08 23:33ELK日志采集
ELK是Elasticsearch,Logstash和Kibana的缩写. 这三个是核心程序包,但不是全部.
Elasticsearch是一个实时的全文本搜索和分析引擎,它提供了采集,分析和存储数据的三种功能. 它是一组开放的REST和JAVA API结构,可提供有效的搜索功能和可扩展的分布式系统. 它建立在Apache Lucene搜索引擎库的顶部.
Logstash是用于采集,分析和过滤日志的工具. 它支持几乎所有类型的日志,包括系统日志,错误日志和自定义应用程序日志. 它可以从许多来源接收日志,包括系统日志,消息传递(例如RabbitMQ)和JMX,并且可以通过多种方式输出数据,包括电子邮件,Websocket和Elasticsearch.
Kibana是基于Web的图形界面,用于搜索,分析和可视化Elasticsearch指标中存储的日志数据. 它利用Elasticsearch的REST界面检索数据,不仅允许用户创建自己的自定义仪表板数据视图,而且还允许他们以特殊方式查询和过滤数据.
1,准备环境1.1,配置Java环境
转到官方网站下载jdk1.8以上的软件包,然后配置java环境以确保该环境正常使用. 跳过此处的安装过程. 如果您听不懂,请自己百度.
[root@vm96-yw-65-test-3060 application]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
1.2. 下载ELK软件包
转到官方网站下载Elasticsearch,Logstash和Kibana. 因为它是一个测试环境,所以我下载了最新版本v6.4.0,并在下载后将其解压缩.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.tar.gz
2,配置2.1,修改系统配置
elasticsearch对最大系统连接数有要求,因此您需要修改系统连接数.
echo '
* hard nofile 65536
* soft nofile 65536
* soft nproc 65536
* hard nproc 65536
' >>/etc/security/limits.conf
echo 'vm.max_map_count = 262144' >> /etc/sysctl.conf
vim /etc/security/limits.d/90-nproc.conf
# 第一行最后一个数,修改为4096,如果是则不用修改
# limits.d下面的文件可能不是90-nproc.conf,可能是其他数字开头的文件。
* soft nproc 4096
root soft nproc unlimited
2.2,elasticSearch配置
这实际上是ELK的核心. 启动时必须注意. 从5.0版开始,ElasticSearch的安全级别已得到改进,并且不允许以root帐户开头,因此我们需要添加一个用户,因此还需要创建一个elsearch帐户.
groupadd es #新建es组
useradd es -g es -p elasticsearch #新建一个es用户
chown -R es:es /usr/elasticsearch-6.4.0/ #指定elasticsearch-6.4.0目录下的文件所属elsearch组
修改配置文件
vim /application/elasticsearch-6.4.0/config/elasticsearch.yml
······
path.data: /application/elasticsearch-6.4.0/data
path.logs: /application/elasticsearch-6.4.0/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
······
开始
su es ## 切换到普通用户
cd /application/elasticsearch-6.4.0/
./bin/elasticsearch -d ## -d 后台运行
2.3,logstash配置
解压缩后,转到config目录并创建一个新的logstash.conf配置,并添加以下内容.
[root@vm96-yw-65-test-3060 config]# pwd
/application/logstash-6.4.0/config
[root@vm96-yw-65-test-3060 config]# vim logstash.conf
input {
file {
type => "log"
path => "/logs/*.log" ##创建一个/logs目录用于之后的测试
start_position => "beginning"
}
}
output {
stdout {
codec => rubydebug { }
}
elasticsearch { ##输出到es
hosts => "localhost:9200"
index => "log-%{+YYYY.MM.dd}"
}
}
logstash所做的事情分三个阶段执行: 输入输入-“处理过滤器(不必要)-”输出输出,这是我们需要配置的三个部分,因为它是一个测试,因此没有过滤器添加了过滤器和过滤器,仅配置输入和输出. 一个文件可以有多个输入. 过滤器非常有用,但它也更麻烦. 这需要大量的实验. 对nginx和Apache等服务的日志分析需要使用此模块进行过滤和分析.
[root@vm96-yw-65-test-3060 config]# nohup ../bin/logstash -f logstash.conf &
# 使用nohup,启动后台运行,如需关闭使用kill -9,建议多开窗口,启动ELK三个服务,可以观看控制窗口的报错信息
2.4,kibana配置
它的配置也非常简单,您需要在kibana.yml文件中指定要读取的elasticSearch地址以及可以从Internet访问的绑定地址.
[root@vm96-yw-65-test-3060 config]# vim /application/kinbana-6.4.0/config/kibana.yml
······
elasticsearch.url: "http://localhost:9200"
server.host: 0.0.0.0
······
开始
[root@vm96-yw-65-test-3060 config]# nohup ../bin/kibana &
# 使用nohup,启动后台运行,如需关闭使用kill -9
2.5,测试
编写测试日志
vim /logs/test.log
Hello,World!!!
开始记录日志
[root@vm96-yw-65-test-3060 config]# nohup ../bin/logstash -f logstash.conf &
在浏览器中输入: : 5601 /,您可以打开kibana页面.
单击管理=>索引模式以创建索引. 如果ES从logstash接收日志数据,则页面将显示可以创建的索引,否则将显示无法创建索引. 请亲自检查日志文件分析错误.
创建索引后,单击左侧的“发现”以查看对刚创建的日志的分析.