继上篇,继续对kibana进行部署实现!
一、ELK Kibana 部署(在 Node1 节点上操作)
1.1 安装 Kibana
#上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录
cd /opt
rpm -ivh kibana-5.5.1-x86_64.rpm
1.2 设置 Kibana 的主配置文件
vim /etc/kibana/kibana.yml
--2--取消注释,Kiabana 服务的默认监听端口为5601
server.port: 5601
--7--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
--21--取消注释,设置和 Elasticsearch 建立连接的地址和端口
elasticsearch.url: "http://192.168.10.13:9200"
--30--取消注释,设置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"
1.3 启动 Kibana 服务
systemctl start kibana.service
systemctl enable kibana.service
netstat -natp | grep 5601
1.4 验证 Kibana
浏览器访问 http://192.168.10.13:5601
第一次登录需要添加一个 Elasticsearch 索引:
Index name or pattern
//输入:system-* #在索引名中输入之前配置的 Output 前缀“system”
单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
数据展示可以分类显示,在“Available Fields”中的“host”,然后单击 “add”按钮,可以看到按照“host”筛选后的结果
1.5 将 Apache 服务器的日志(访问的、错误的)添加到 Elasticsearch 并通过 Kibana 显示
建议手打!否则报错!
vim /etc/logstash/conf.d/apache_log.conf
input {
file{
path => "/etc/httpd/logs/access_log"
type => "access"
start_position => "beginning"
}
file{
path => "/etc/httpd/logs/error_log"
type => "error"
start_position => "beginning"
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["192.168.10.13:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
}
}
if [type] == "error" {
elasticsearch {
hosts => ["192.168.10.13:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
}
}
}
cd /etc/logstash/conf.d/
/usr/share/logstash/bin/logstash -f apache_log.conf
1.6 验证浏览器访问 http://192.168.10.13:5601 创建索引
先输入logstash服务器的IP地址
然后回到es上查看,会出现apache_error和apache_access,即表示Apache 服务器的日志(访问的、错误的)添加成功!
浏览器访问 http://192.168.10.13:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引, 在索引名中输入之前配置的 Output 前缀 apache_access-*,并单击“Create”按钮。在用相同的方法添加 apache_error-*索引。
选择“Discover”选项卡,在中间下拉列表中选择刚添加的 apache_access-* 、apache_error-* 索引, 可以查看相应的图表及日志信息。
至此elk部署完成!
二、Filebeat+ELK 理论+部署(结合)
2.1 Filebeat简介
Filebeat是一款轻量级的日志收集工具,可以在非JAVA环境下运行。
因此,Filebeat常被用在非JAVAf的服务器上用于替代Logstash,收集日志信息。
实际上,Filebeat几乎可以起到与Logstash相同的作用,可以将数据转发到Logstash、Redis或者是Elasticsearch中进行直接处理。
2.2 使用Filebeat的原因
因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存
(这就是为什么logstash启动特别慢的原因)。
而filebeat只需要10M左右的内存资源。
常用的ELK日志采集方案中,大部分的做法就是将所有节点的日志内容通过filebeat发送到logstash,lostash根据配置文件进行过滤,然后将过滤之后的文件传输到elasticsearch中,最后通过kibana展示。
2.3 Filebeat结合logstash的好处
Filebeat结合logstash中,Filebeat负责收集日志,logstash负责过滤
1、通过logstash,具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻Elasticsearch持续写入数据的压力。
2、从其它数据源(例如数据库,s3对象存储或消息传递队列)中提取
3、将数据发送到多个目的地,例如S3,HDFS(hadoop分部署文件系统)或写入文件
4、使用数据流逻辑组成更复杂的处理管道。
2.4 部署Filebeat+ELK
实验环境:
节点名 | IP地址 | 所提供的服务 |
Node1节点 | 192.168.10.13 | Elasticsearch 、Kibana |
Node2节点 | 192.168.10.14 | Elasticsearch |
Apache节点 | 192.168.10.15 | Logstash 、Apache |
Filebeat节点 | 192.168.10.16 | Filebeat |
//在 Filebeat节:点上操作
1.安装 Filebeat
#上传软件包filebeat-6.6.1-x86_64.rpm 到/opt目录
rpm -ivh filebeat-6.6.1-x86_64.rpm
mv /etc/filebeat /usr/local/filebeat
2.设置 filebeat 的主配置文件(建议手打!否则报错!)
cd /usr/local/filebeat
vim filebeat.yml
filebeat.prospectors:
- type: log #指定 log 类型,从日志文件中读取消息
enabled: true
paths:
- /var/log/messages #指定监控的日志文件
- /var/log/*.log
fields: #可以使用 fields 配置选项设置一些参数字段添加到 output 中
service_name: filebeat
log_type: log
service_id: 192.168.10.16
--------------Elasticsearch output-------------------
(全部注释掉)
----------------Logstash output---------------------
output.logstash:
hosts: ["192.168.10.15:5044"] #指定 logstash 的 IP 和端口
#启动 filebeat
./filebeat -e -c filebeat.yml //systemctl start filebeat
4.在 Logstash 节点上新建一个 Logstash 配置文件
cd /etc/logstash/conf.d
vim fb_logstash.conf
input {
beats {
port => "5044"
}
}
output {
elasticsearch {
hosts => ["192.168.10.13:9200"]
index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
#启动 logstash
logstash -f logstash.conf
5.浏览器访问 http://192.168.10.13:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。