一、简介
1、核心组成
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
2、四大组件
Logstash: logstash server端用来搜集日志;
Elasticsearch: 存储各类日志;
Kibana: web化接口用作查寻和可视化日志;
Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server;
3、ELK工作流程
在 需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。
![work flying.png wKioL1YWGBnxpAwyAAGFWRpT6X8070.jpg]()
4、ELK的帮助手册
ELK官网:https://www.elastic.co/
ELK官网文档:https://www.elastic.co/guide/index.html
ELK中文手册:http://kibana.logstash.es/content/elasticsearch/monitor/logging.html
注释
ELK有两种安装方式
(1)集成环境:Logstash有一个集成包,里面包括了其全套的三个组件;也就是安装一个集成包。
(2)独立环境:三个组件分别单独安装、运行、各司其职。(比较常用)
二.安装配置
1.环境配置
server1:172.25.29.1 master
server2:172.25.29.2 data
server3:172.25.29.3 data
2.安装
![Screenshot from 2017-11-07 09-44-53.png eadd5c5b28ba462c23df0082e8796b37.png]()
安装java环境
![Screenshot from 2017-11-07 10-02-04.png b99c82804f65301409d1e9083dc4a4df.png]()
3.配置server1
![Screenshot from 2017-11-07 10-07-35.png 14bbb830023be24f556bc065832f8da7.png]()
![Screenshot from 2017-11-07 10-05-50.png 8723fd5de21591ef0eeb3fd0773953a4.png]()
![Screenshot from 2017-11-07 10-06-11.png 05c576cb5d79c83cf2ddd7743dfa8d5c.png]()
![Screenshot from 2017-11-07 10-06-35.png 918098c3a60656d77a1a639f80d40104.png]()
![Screenshot from 2017-11-07 10-06-54.png dcdbea9dbc5b3651ddb6fa5349bba73b.png]()
4.测试是否正常
![Screenshot from 2017-11-07 10-07-50.png 2c7203832fa9a5c731055728b6ddd213.png]()
![Screenshot from 2017-11-07 10-08-18.png 66799606294a10d0353b615696bc5ea2.png]()
三.安装head插件,web访问管理节点,配置节点server2
1.安装插件
![Screenshot from 2017-11-07 10-27-11.png 2cb1ec71f3850d532ae553a2ded79de1.png]()
![Screenshot from 2017-11-07 10-29-17.png f1ca6ab25d501c754dc1f75f323cb927.png]()
查看插件是否安装成功
![Screenshot from 2017-11-07 10-29-24.png 28c5b92d507a764754e118bcd3463920.png]()
2.网页通过访问管理节点172.25.29.1:9200/_plugin/head/
![Screenshot from 2017-11-07 10-30-39.png 2e4cce9da8955fa209078ede38bc1544.png]()
测试采集
![Screenshot from 2017-11-07 10-31-53.png 5330ba3251e7778cc355384f6ddb338c.png]()
3.增加第二台主机server2
安装配置服务,注意打开server1和server2的discovery选项,并修改正确的主机名
![Screenshot from 2017-11-07 10-34-05.png fb0d7b4420c84810e430ab6bca46f053.png]()
![Screenshot from 2017-11-07 10-32-32.png 564e78578636912ea311802167ec8eea.png]()
![Screenshot from 2017-11-07 10-35-50.png e1903fadded705349cad8f303d6395b5.png]()
![Screenshot from 2017-11-07 10-36-32.png 88aa213005bd23b652c55a7f9e5e6577.png]()
server1和server2都要修改
![Screenshot from 2017-11-07 10-36-59.png 03208b391c48e0456669adc7c78b82ab.png]()
![Screenshot from 2017-11-07 10-37-24.png 396570ade29bcb17c75023c4dd9130d9.png]()
4.访问master节点,server1和server显示正常
![Screenshot from 2017-11-07 10-37-34.png e11b5190428f6da447c005cd75313716.png]()
四.添加server3数据存储节点
1.配置server1的/etc/elasticsearch/elasticsearch.yml
将server1节点设置为master,不储存数据
安装elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
![Screenshot from 2017-11-07 11-28-31.png 46472534bbca27637ca8b132a4434ebb.png]()
2.配置server2的/etc/elasticsearch/elasticsearch.yml
将server2节点设置为只储存数据
![Screenshot from 2017-11-07 11-29-00.png 3b62ed3aed7480b22878720f8e668bd1.png]()
![Screenshot from 2017-11-07 11-30-18.png 147d4becb0c9c1903e85a188724b7674.png]()
为了安全,httpd访问关闭
![Screenshot from 2017-11-07 11-30-50.png d23e50642c3aeae5a218667b3679e20e.png]()
![Screenshot from 2017-11-07 11-31-09.png d32037f6ae25dff41f92c48b8f452d2f.png]()
![Screenshot from 2017-11-07 11-31-57.png 564305045cbb2712587ff1af61fb295b.png]()
3.配置server3的/etc/elasticsearch/elasticsearch.yml
将server3节点设置为只储存数据,关闭httpd
![Screenshot from 2017-11-07 11-32-26.png 2ba3f144e763de480655234a148532d1.png]()
![Screenshot from 2017-11-07 11-32-42.png 0facc4fa426bb9d6e44758ba6f31f5dc.png]()
4.web端master管理端显示正常
![Screenshot from 2017-11-07 11-33-12.png eeaa9f0d488b79874a28d48c3407ffa9.png]()
五.Logstash日志采集工具
1.安装工具并启动(标准输入和标准输出)
![Screenshot from 2017-11-07 11-59-06.png 553a0572c12f0a27295255c8956864b4.png]()
2.可以查看到的信息选项
![Screenshot from 2017-11-07 12-02-03.png 4df3cd8c1ad5a1bc0ea8e294c6d38753.png]()
![Screenshot from 2017-11-07 12-03-11.png 01f84f58ba88b6091224d62ca9458f99.png]()
3.将输入输出写到conf文件中
![Screenshot from 2017-11-07 14-00-22.png 89c9a099e7750b67f3a41723f1ae811e.png]()
标准输入,将输出导入到elasticsearch中
![Screenshot from 2017-11-07 14-03-20.png 132aabbfe302acf35f314d6a7e2ffafb.png]()
4.查询elasticsearch日志结果
![Screenshot from 2017-11-07 14-07-14.png 838b99862a095a8c1f6728439cf6e217.png]()
![Screenshot from 2017-11-07 14-04-56.png 06ca0824b0b7d41002a0fe5ac0ec44c1.png]()
![Screenshot from 2017-11-07 14-11-12.png 4581fd94ea03ae7c80c6d854fc2ad63a.png]()
5.以ruby语言的显示方式
![Screenshot from 2017-11-07 14-26-00.png e0ec8502d62f7e744cdfb33b51c57973.png]()
![Screenshot from 2017-11-07 14-25-51.png 64199fc6e6fc87fd353370bf84862d6d.png]()
6.以ruby语言的显示方式,并输出一份到/tmp/testfile
![Screenshot from 2017-11-07 14-22-30.png c8d996282e0cc9ef945d1fac750a460c.png]()
启动
![Screenshot from 2017-11-07 14-23-53.png ac4051e71230977c216560cea21f5cff.png]()
![Screenshot from 2017-11-07 15-35-36.png 568b9d82639e5a510416f93477af13c0.png]()
![Screenshot from 2017-11-07 14-24-35.png 94556e43c63a67a552c9dfa702776081.png]()
六.配置采集server1的日志给elasticsearch
1.在server1上 vim syslog.conf
server2采集的日志传给server1上的elasticsearch
![Screenshot from 2017-11-08 10-28-04.png e0898f46d1fb4c5447cf1b624643750e.png]()
2.在server2按配置接收日志端
![Screenshot from 2017-11-07 14-31-49.png 1fa5e7132c9cc7dcdc7f165ec7881536.png]()
3.重启服务,发送测试日志
![Screenshot from 2017-11-07 14-38-58.png c56055651efacb7d6669d1137a719a5b.png]()
4.server1启动logstash.conf文件,日志端口514打开
![Screenshot from 2017-11-07 14-38-15.png e4d874d93769a81b38c2af8e6e2fb6d4.png]()
测试:
![Screenshot from 2017-11-07 14-57-09.png 30c91f43921d092f7b82fdbc90d1fc94.png]()
![Screenshot from 2017-11-07 14-39-27.png 71bc1e8d6e79423508594d02b0614a08.png]()
七.不同格式的日志采集和输出
1.在server1上 vim syslog.conf,不同的日志传给不同的地方
![Screenshot from 2017-11-07 15-18-07.png 86621d19e0370571af03306dc6f21181.png]()
![Screenshot from 2017-11-07 15-06-34.png ec9cfe8276ae5def1948c728703ca8fb.png]()
2.查看httpd日志权限是否能够读取
![Screenshot from 2017-11-07 15-08-37.png 51068dcab8c3deb53e20b60f754297c4.png]()
3.启动
![Screenshot from 2017-11-08 20-53-29.png 112e6192e9a276b7542486c3059c90c1.png]()
![Screenshot from 2017-11-07 15-16-16.png 563e14ca1a9ca1fd5272a4cd8ac9856b.png]()
![Screenshot from 2017-11-07 15-16-27.png 215a332b914dc1b406c43b3e1477d7fa.png]()
八.设置采集elasticsearch日志
1.查看elasticsearch是否有权限读取日志
![Screenshot from 2017-11-07 15-37-30.png 98d513688e8ab17ca4a97df839436c5a.png]()
查看多段日志
![Screenshot from 2017-11-07 15-57-01.png 36582624e5bde271cd1d3e6c95086a63.png]()
2.vim demo.conf
多端输入,以beginning开始
![Screenshot from 2017-11-07 15-42-35.png c90c7b202398a6abe06c92a32cd74fca.png]()
![Screenshot from 2017-11-07 15-43-30.png 20cf52685a804ab285ae699fbd798e00.png]()
![Screenshot from 2017-11-07 15-43-37.png 9b38dd13422268d28349b9a4d6463ffe.png]()
![Screenshot from 2017-11-07 15-44-27.png 960160ec2cd946952ea84718ed053979.png]()
九.采集日志存放在redis
1.在server2安装redis
![Screenshot from 2017-11-07 16-23-07.png a8dfe6865cd0ba5307b7747cd5f93a5e.png]()
![Screenshot from 2017-11-07 16-30-22.png e5ff2a7307c7c2da1929761ff3675d71.png]()
2.配置 vim redis.conf,将采集日志存放在redis中,启动redis
![Screenshot from 2017-11-07 16-38-47.png 08abadb21cb40bd25f7be4460ca02c2b.png]()
![Screenshot from 2017-11-07 16-41-14.png 084864afbd5bfcfb003676a52369a224.png]()
查看server2 redis已经存入数据
![Screenshot from 2017-11-07 16-40-16.png 0e1f6d50f499836bc252ab9d6f42fb0c.png]()
注意:在根目录下会生成隐藏的记录文件,有时会影响的采集,需要删除
![Screenshot from 2017-11-07 16-41-28.png 8310decccd37f48647b57403caea079b.png]()
十.tcp日志的采集
![Screenshot from 2017-11-07 16-43-55.png 041ed30d9f7a5cb712b08cf6894d01eb.png]()
![Screenshot from 2017-11-07 16-44-37.png 800df8035438d431b8cd931e4730a9eb.png]()
![Screenshot from 2017-11-07 16-44-43.png 88e2c419e6561be78e780fe03b7c1343.png]()
测试:
1.写入设备
![Screenshot from 2017-11-07 16-45-20.png 764d445f186342d164bf9ac0a6de8358.png]()
![Screenshot from 2017-11-07 16-45-25.png f5df91b9f5fb8bddbf11be525cafddff.png]()
2.nc命令
![Screenshot from 2017-11-07 16-47-45.png 0cffd613d60956cae46c79a3b8499ca9.png]()
![Screenshot from 2017-11-07 16-47-49.png b6357a58a0b6dcaf4c2c7215b9244e98.png]()
十一.Kibana日志分析工具
1.kibana的安装配置
![Screenshot from 2017-11-07 16-54-09.png 7ac5cd47638a0a5095d43ddf25f8e84f.png]()
![Screenshot from 2017-11-07 16-55-45.png 2a063a5adea603ee69ab23094af557ee.png]()
![Screenshot from 2017-11-07 16-56-09.png bc514672c80dd0e1f59eccafb3f41d44.png]()
![Screenshot from 2017-11-07 16-56-52.png 9f140c73cea1409e3388ed2a51dc3b8c.png]()
![Screenshot from 2017-11-07 17-04-42.png 23ce164fbc608e9ed1db4b0997f7684c.png]()
2.添加监控项目
启动httpd日志采集
![Screenshot from 2017-11-08 10-28-18.png 40868fa66d4d9f13a397b955fdd79812.png]()
![Screenshot from 2017-11-07 17-28-27.png d562c1c4e95c157815e6a697ac70c47c.png]()
![Screenshot from 2017-11-08 11-24-51.png a847573a45ff3613fdb5190459b48f3c.png]()
![Screenshot from 2017-11-07 17-22-57.png af3748bfe2bf34f42c59e42269ad2a0b.png]()
![Screenshot from 2017-11-08 10-36-01.png ac9475318de7050222876d95bb763a26.png]()
![Screenshot from 2017-11-08 10-34-39.png 22274f4c0771348424770983daee419f.png]()
3.添加httpd日志监控,加上不同来源的分析
调用过滤变量
![Screenshot from 2017-11-08 10-31-25.png 4eae2182489bb65e4543fccb32e83aaf.png]()
![Screenshot from 2017-11-08 11-25-17.png 7f601799f7b6498ec83426e56870bb48.png]()
![Screenshot from 2017-11-08 11-25-33.png 90623537537bf5adfe9bc81e370c3876.png]()
![Screenshot from 2017-11-08 10-48-25.png 811190bef7d83d3cd7491c5cdfb0b6fa.png]()
添加到dashboard界面里,便于观察
压力测试,可以在监控图上看到哪个主机的访问的次数
![Screenshot from 2017-11-08 11-50-08.png 613c64de49ce5c34b354225c5252c1f8.png]()
左为链接次数,右为各个主机的连接次数
![Screenshot from 2017-11-08 11-13-56.png 8c0327a3c2831a113836ed6ada215cca.png]()
4.添加secure安全日志监控
![Screenshot from 2017-11-08 10-52-58.png 8b61822669ad864986509c9d2b44ce26.png]()
![Screenshot from 2017-11-08 11-45-44.png 3903494b0be43d6a95e144b8a8bcf28f.png]()
![Screenshot from 2017-11-08 11-24-47.png 0658cc299bc26948ae629df13637c43a.png]()
![Screenshot from 2017-11-08 10-54-20.png b3f98f93d02903e703a092c4f7f0bd07.png]()
![Screenshot from 2017-11-08 10-59-09.png 4b45175010874edac8c42bc0e912ee44.png]()
![Screenshot from 2017-11-08 11-43-31.png c7023530200af2ecdc6fdf413dbbdb61.png]()
添加到dashboard界面里,便于观察
设置更新频率
![Screenshot from 2017-11-08 11-53-56.png d8418461afd31b3ebe7080f60ace36d4.png]()
安全测试的是ssh连接失败的日志
![Screenshot from 2017-11-08 11-44-51.png 1b59b01d070cf5fdf184ab29a7008078.png]()
保存dashboard监控模版为dashboard1
![Screenshot from 2017-11-08 11-54-58.png 397d5874966dfb773e0a62de3530f455.png]()
本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1979775,如需转载请自行联系原作者