接下来我们进行初步的探视,利用测试环境体验下ELK Stack + Filebeat
,测试环境我们就不进行Kafka
的配置了,因为他的存在意义在于提高可靠性。
Filebeat 6.5.1
Logstash 6.5.1
Elasticsearch 6.5.1
Kibana 6.5.1
JDK 1.8.0_181
IP | 系统 | 角色 |
---|---|---|
172.18.2.100 | CentOS 7.4.1708 | Master:Logstash,Elasticsearch,Kibana |
172.18.2.101 | CentOS 7.4.1708 | Node:Filebeat |
需要打通172.18.2.100
至所有 agent 的 SSH 免密登录。
[root@ES ~]# ssh-copy-id 172.18.2.101
ELK 需要 Oracle 1.7(或者是 OpenJDK 1.7) 及以上,建议下载 Oracle 官方的 JDK1.8.0_131,我们这里下载的是官方的 rpm 包。
rpm -ivh jdk-8u181-linux-x64.rpm
ELK 官网对于每种软件提供了多种格式的安装包(zip/tar/rpm/DEB),以 Linux 系列系统为例,直接下载 RPM,安装后会直接安装成系统的 service。以后就可以使用 service 命令启停。
我们这里不安装ES集群,我们只是演示,采用单机模式进行安装。
下载软件包(172.18.2.100)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.rpm
安装
rpm -ivh elasticsearch-6.5.1.rpm
编辑配置文件/etc/elasticsearch/elasticsearch.yml
,修改如下字段内容:
cluster.name: my-application
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.18.2.100
http.port: 9200
启动ES
systemctl daemon-reload
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
验证
[root@ES ~]# curl 'http://172.18.2.100:9200'
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "eiZCJB1IS2qHgkSs4LagCQ",
"version" : {
"number" : "6.5.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "8c58350",
"build_date" : "2018-11-16T02:22:42.182257Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
可以看到,它跟其他的节点的传输端口为9300,接受HTTP请求的端口为9200。
[root@ES ~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 903/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1001/master
tcp6 0 0 172.18.2.100:9200 :::* LISTEN 11885/java
tcp6 0 0 172.18.2.100:9300 :::* LISTEN 11885/java
tcp6 0 0 :::22 :::* LISTEN 903/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1001/master
详细信息请参见官方文档。
下载安装包(172.18.2.100)
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.1.rpm
安装
rpm -ivh logstash-6.5.1.rpm
安装组件beats
一个Logstash的pipeline由3部分组成:input, filter, output。
修改文件/etc/logstash/conf.d/logstash.conf
。
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => "172.18.2.100:9200"
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
Logstash 使用该配置使用 ES 的索引,和 Filebeat 做的事情是一样的,不过拥有了额外的缓存以及强大丰富的插件库。
手动启动程序。
/usr/share/logstash/bin/logstash --path.settings /etc/logstash &>/dev/null &
我这里 systemctl 启动是有问题的,这可能和启动的脚本文件有关,也可能和数据路径/var/lib/logstash权限有关,我这里就不进行修改了,我这里直接使用命令行进行启动,指定配置文件路径,它会去加载
conf.d
目录下面的所有*.conf
配置文件。
大家也可以去配置官方的 YUM 仓库,进行yum安装,说不定就可以直接使用 systemctl 进行启动了。
查看启动是否成功。
[root@ES ~]# netstat -tlnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 903/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1001/master
tcp6 0 0 172.18.2.100:9200 :::* LISTEN 23471/java
tcp6 0 0 :::5044 :::* LISTEN 26720/java
tcp6 0 0 172.18.2.100:9300 :::* LISTEN 23471/java
tcp6 0 0 :::22 :::* LISTEN 903/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1001/master
tcp6 0 0 127.0.0.1:9600 :::* LISTEN 26720/java
具体请参见官方文档。
在node上进行Filebeat
的安装,因为Filebeat
是轻量级的,被采集端机器可以不用安装 JDK。
下载软件(172.18.2.101)
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.1-x86_64.rpm
安装软件
rpm -ivh filebeat-6.5.1-x86_64.rpm
我们的node上面有运行的tomcat服务,所以产生了一些日志。
修改配置文件/etc/filebeat/filebeat.yml
,把日志输出指向logstash,只关闭Elasticsearch output。
#=================== Filebeat inputs ===================
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/tomcat/*.txt
- /var/log/messages
#----------------------------- Logstash output --------------------------------
output.logstash:
hosts: ["172.18.2.100:5044"]
启动软件
systemctl start filebeat
systemctl enable filebeat
具体内容请参见官方文档。
Kibana 从 ES 获取数据做前端的可视化展示。 它提供了用户体验极佳的高定制化 UI,可以灵活配置出你需要的 Dashboard。 Dashboard 可以轻易的保存、链接和分享。
下载软件(172.18.2.100)
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-x86_64.rpm
安装软件
rpm -ivh kibana-6.5.1-x86_64.rpm
编辑配置文件/etc/kibana/kibana.yml
,新增如下内容。
elasticsearch.url: "http://172.18.2.100:9200"
server.host: "172.18.2.100"
启动
systemctl daemon-reload
systemctl start kibana.service
systemctl enable kibana.service
验证查看,在浏览器中访问http://172.18.2.100:5601
。
详细设定,请参见官方文档。
访问http://172.18.2.100:5601
,点击Discover,如下图。
一般来说,我们都需要访问一些日志之后,这里才会出现我们之前定义的 index。