兰州新站seo,互动网站开发,网站开发学什么数据库,宁波seo做排名学习目标
能够部署kibana并连接elasticsearch集群能够通过kibana查看elasticsearch索引信息知道用filebeat收集日志相对于logstash的优点能够安装filebeat能够使用filebeat收集日志并传输给logstash kibana
kibana介绍
Kibana是一个开源的可视化平台,可以为ElasticSearch集群…学习目标
能够部署kibana并连接elasticsearch集群能够通过kibana查看elasticsearch索引信息知道用filebeat收集日志相对于logstash的优点能够安装filebeat能够使用filebeat收集日志并传输给logstash kibana
kibana介绍
Kibana是一个开源的可视化平台,可以为ElasticSearch集群的管理提供友好的Web界面,帮助汇总,分析和搜索重要的日志数据。
文档路径: Set up | Kibana Guide [8.11] | Elastic kibana部署
第1步: 在kibana服务器(我这里是VM1)上安装kibana
[rootvm1 ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.2-x86_64.rpm
[rootvm1 ~]# rpm -ivh kibana-6.5.2-x86_64.rpm
第2步: 配置kibana
[rootvm1 ~]# cat /etc/kibana/kibana.yml |grep -v # |grep -v ^$
server.port: 5601 端口
server.host: 0.0.0.0 监听所有,允许所有人能访问
elasticsearch.url: http://10.1.1.12:9200 ES集群的路径
logging.dest: /var/log/kibana.log 我这里加了kibana日志,方便排错与调试
日志要自己建立,并修改owner和group属性
[rootvm1 ~]# touch /var/log/kibana.log
[rootvm1 ~]# chown kibana.kibana /var/log/kibana.log
第3步: 启动kibana服务
[rootvm1 ~]# systemctl start kibana
[rootvm1 ~]# systemctl enable kibana
[rootvm1 ~]# lsof -i:5601
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 10420 kibana 11u IPv4 111974 0t0 TCP *:esmagent (LISTEN)
第4步: 通过浏览器访问 http://kibana服务器IP:5601 kibana汉化
https://github.com/anbai-inc/Kibana_Hanization/
[rootvm1 ~]# wget https://github.com/anbai-inc/Kibana_Hanization/archive/master.zip
[rootvm1 ~]# unzip Kibana_Hanization-master.zip -d /usr/local
[rootvm1 ~]# cd /usr/local/Kibana_Hanization-master/
这里要注意:1,要安装python; 2,rpm版的kibana安装目录为/usr/share/kibana/
[rootvm1 Kibana_Hanization-master]# python main.py /usr/share/kibana/
汉化完后需要重启
[rootvm1 Kibana_Hanization-master]# systemctl stop kibana
[rootvm1 Kibana_Hanization-master]# systemctl start kibana
再次通过浏览器访问 http://kibana服务器IP:5601 通过kibana查看集群信息 通过kibana查看logstash收集的日志索引 最后点发现查看 通过kibana做可视化图形 filebeat
因为logstash消耗内存等资源太高,如果在要采集的服务上都安装logstash,这样对应用服务器的压力增加。所以我们要用轻量级的采集工具才更高效,更省资源。 beats是轻量级的日志收集处理工具Beats占用资源少 Packetbeat 网络数据收集网络流量数据 Metricbeat 指标 收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据 Filebeat 文件收集日志文件数据 Winlogbeat windows事件日志收集 Windows 事件日志数据 Auditbeat审计数据 收集审计日志 Heartbeat运行时间监控 收集系统运行时的数据
我们这里主要是收集日志信息, 所以只讨论filebeat。
filebeat可以直接将采集的日志数据传输给ES集群EFK), 也可以给logstash(5044端口接收)。 filebeat收集日志直接传输给ES集群
第1步: 下载并安装filebeat(再开一台虚拟机vm4模拟filebeat, 内存1G就够了, 安装filebeat)
[rootvm4 ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.2-x86_64.rpm
[rootvm4 ~]# rpm -ivh filebeat-6.5.2-x86_64.rpm
第2步: 配置filebeat收集日志
[rootvm4 ~]# cat /etc/filebeat/filebeat.yml |grep -v # |grep -v ^$
filebeat.inputs:
- type: logenabled: true 改为truepaths:- /var/log/*.log 收集的日志路径
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false
setup.template.settings:index.number_of_shards: 3
setup.kibana:
output.elasticsearch: 输出给es集群hosts: [10.1.1.12:9200] es集群节点ip
processors:- add_host_metadata: ~- add_cloud_metadata: ~
第3步: 启动服务
[rootvm4 ~]# systemctl start filebeat
[rootvm4 ~]# systemctl enable filebeat
第4步: 验证
在es-head和kibana上验证(验证过程省略, 参考前面的笔记) 练习:可以尝试使用两台filebeat收集日志然后在kibana用筛选器进行筛选过滤查看。(可先把logstash那台关闭logstash进行安装filebeat测试) filebeat传输给logstash
第1步: 在logstash上要重新配置开放5044端口给filebeat连接并重启logstash服务
[rootvm3 ~]# vim /etc/logstash/conf.d/test.conf
input {beats {port 5044}
}
output {elasticsearch {hosts [10.1.1.12:9200]index filebeat2-%{YYYY.MM.dd}}stdout { 再加一个标准输出到屏幕,方便实验环境调试}
}
[rootvm3 ~]# cd /usr/share/logstash/bin/
如果前面有使用后台跑过logstash实例的请kill掉先
[rootvm3 bin]# pkill java
[rootvm3 bin]# ./logstash --path.settings /etc/logstash/ -r -f /etc/logstash/conf.d/test.conf
第2步: 配置filebeat收集日志
[rootvm4 ~]# cat /etc/filebeat/filebeat.yml |grep -v # |grep -v ^$
filebeat.inputs:
- type: logenabled: true 改为truepaths:- /var/log/*.log 收集的日志路径
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false
setup.template.settings:index.number_of_shards: 3
setup.kibana:
output.logstash: 这两句非常重要,表示日志输出给logstashhosts: [10.1.1.13:5044] IP为logstash服务器的IP;端口5044对应logstash上的配置
processors:- add_host_metadata: ~- add_cloud_metadata: ~
第3步: 启动服务
[rootvm4 ~]# systemctl stop filebeat
[rootvm4 ~]# systemctl start filebeat
第5步: 去ES-head上验证
第6步:在kibana创建索引模式(过程省略参考上面的笔记操作),然后点发现验证 filebeat收集nginx日志
1, 在filebeat这台服务器上安装nginx,启动服务。并使用浏览器访问刷新一下模拟产生一些相应的日志(强调: 我们在这里是模拟的实验环境一定要搞清楚实际情况下是把filebeat安装到nginx服务器上去收集日志)
[rootvm4 ~]# yum install epel-release -y
[rootvm4 ~]# yum install nginx -y
[rootvm4 ~]# systemctl restart nginx
[rootvm4 ~]# systemctl enable nginx
2, 修改filebeat配置文件,并重启服务
[rootvm4 ~]# cat /etc/filebeat/filebeat.yml |grep -v # |grep -v ^$
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/*.log- /var/log/nginx/access.log 只在这里加了一句nginx日志路径(按需求自定义即可)
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false
setup.template.settings:index.number_of_shards: 3
setup.kibana:
output.logstash:hosts: [10.1.1.13:5044]
processors:- add_host_metadata: ~- add_cloud_metadata: ~[rootvm4 ~]# systemctl stop filebeat
[rootvm4 ~]# systemctl start filebeat
3, 验证(在kibana或es-head上查询) 练习: 尝试收集httpd,mysql日志 实验中易产生的问题总结: filebeat配置里没有把output.elasticsearch改成output.logstash filebeat在收集/var/log/*.log日志时需要对日志进行数据的改变或增加才会传。当/var/log/yum.log增加了日志数据会传输但不会触发配置里的其它日志传输。(每个日志的传输是独立的) filebeat收集的日志没有定义索引名称, 我这个实验是在logstash里定义的。(此例我定义的索引名叫filebeat2-%{YYYY.MM.dd}) es-head受资源限制可能会关闭了你在浏览器上验证可能因为缓存问题看不到变化的结果。 区分索引名和索引模式(index pattern)名 filebeat日志简单过滤
[rootvm4 ~]# grep -Ev #|^$ /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/yum.log- /var/log/nginx/access.loginclude_lines: [Installed] 表示收集的日志里有Installed关键字才会收集
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false
setup.template.settings:index.number_of_shards: 3
setup.kibana:
output.logstash:hosts: [10.1.1.13:5044]
processors:- add_host_metadata: ~- add_cloud_metadata: ~[rootvm4 ~]# systemctl restart filebeat测试方法:
通过yum install和yum remove 产生日志,检验结果
结果为: yum install安装可以收集,yum remove卸载的不能收集
其它参数可以自行测试 exclude_lines exclude_files