Linux的企业-ELK日志分析

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

一、简介

1、核心组成

ELKElasticsearchLogstashKibana三部分组件组成;

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 来结合自定义搜索进行页面展示。

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.安装

eadd5c5b28ba462c23df0082e8796b37.png

安装java环境

b99c82804f65301409d1e9083dc4a4df.png


3.配置server1

14bbb830023be24f556bc065832f8da7.png

8723fd5de21591ef0eeb3fd0773953a4.png

05c576cb5d79c83cf2ddd7743dfa8d5c.png

918098c3a60656d77a1a639f80d40104.png

dcdbea9dbc5b3651ddb6fa5349bba73b.png


4.测试是否正常

2c7203832fa9a5c731055728b6ddd213.png

66799606294a10d0353b615696bc5ea2.png

三.安装head插件,web访问管理节点,配置节点server2

1.安装插件

2cb1ec71f3850d532ae553a2ded79de1.png

f1ca6ab25d501c754dc1f75f323cb927.png


查看插件是否安装成功

28c5b92d507a764754e118bcd3463920.png


2.网页通过访问管理节点172.25.29.1:9200/_plugin/head/

2e4cce9da8955fa209078ede38bc1544.png

测试采集

5330ba3251e7778cc355384f6ddb338c.png


3.增加第二台主机server2

安装配置服务,注意打开server1和server2的discovery选项,并修改正确的主机名

fb0d7b4420c84810e430ab6bca46f053.png

564e78578636912ea311802167ec8eea.png

e1903fadded705349cad8f303d6395b5.png

88aa213005bd23b652c55a7f9e5e6577.png


server1和server2都要修改

03208b391c48e0456669adc7c78b82ab.png

396570ade29bcb17c75023c4dd9130d9.png


4.访问master节点,server1和server显示正常

e11b5190428f6da447c005cd75313716.png



四.添加server3数据存储节点

1.配置server1的/etc/elasticsearch/elasticsearch.yml

将server1节点设置为master,不储存数据

安装elasticsearch  

vim /etc/elasticsearch/elasticsearch.yml


46472534bbca27637ca8b132a4434ebb.png


2.配置server2的/etc/elasticsearch/elasticsearch.yml

将server2节点设置为只储存数据

3b62ed3aed7480b22878720f8e668bd1.png

147d4becb0c9c1903e85a188724b7674.png

为了安全,httpd访问关闭

d23e50642c3aeae5a218667b3679e20e.png

d32037f6ae25dff41f92c48b8f452d2f.png

564305045cbb2712587ff1af61fb295b.png


3.配置server3的/etc/elasticsearch/elasticsearch.yml

将server3节点设置为只储存数据,关闭httpd

2ba3f144e763de480655234a148532d1.png

0facc4fa426bb9d6e44758ba6f31f5dc.png


4.web端master管理端显示正常

eeaa9f0d488b79874a28d48c3407ffa9.png


五.Logstash日志采集工具

1.安装工具并启动(标准输入和标准输出)

553a0572c12f0a27295255c8956864b4.png


2.可以查看到的信息选项

4df3cd8c1ad5a1bc0ea8e294c6d38753.png

01f84f58ba88b6091224d62ca9458f99.png


3.将输入输出写到conf文件中

89c9a099e7750b67f3a41723f1ae811e.png


标准输入,将输出导入到elasticsearch中

132aabbfe302acf35f314d6a7e2ffafb.png


4.查询elasticsearch日志结果

838b99862a095a8c1f6728439cf6e217.png

06ca0824b0b7d41002a0fe5ac0ec44c1.png


4581fd94ea03ae7c80c6d854fc2ad63a.png


5.以ruby语言的显示方式

e0ec8502d62f7e744cdfb33b51c57973.png

64199fc6e6fc87fd353370bf84862d6d.png


6.以ruby语言的显示方式,并输出一份到/tmp/testfile

c8d996282e0cc9ef945d1fac750a460c.png


启动

ac4051e71230977c216560cea21f5cff.png

568b9d82639e5a510416f93477af13c0.png

94556e43c63a67a552c9dfa702776081.png



六.配置采集server1的日志elasticsearch

1.在server1上 vim syslog.conf

server2采集的日志传给server1上的elasticsearch

e0898f46d1fb4c5447cf1b624643750e.png

2.在server2按配置接收日志端

1fa5e7132c9cc7dcdc7f165ec7881536.png


3.重启服务,发送测试日志

c56055651efacb7d6669d1137a719a5b.png


4.server1启动logstash.conf文件,日志端口514打开

e4d874d93769a81b38c2af8e6e2fb6d4.png

测试:

30c91f43921d092f7b82fdbc90d1fc94.png

71bc1e8d6e79423508594d02b0614a08.png




七.不同格式的日志采集和输出

1.在server1上 vim syslog.conf,不同的日志传给不同的地方

86621d19e0370571af03306dc6f21181.png

ec9cfe8276ae5def1948c728703ca8fb.png


2.查看httpd日志权限是否能够读取

51068dcab8c3deb53e20b60f754297c4.png


3.启动

112e6192e9a276b7542486c3059c90c1.png

563e14ca1a9ca1fd5272a4cd8ac9856b.png

215a332b914dc1b406c43b3e1477d7fa.png



八.设置采集elasticsearch日志

1.查看elasticsearch是否有权限读取日志

98d513688e8ab17ca4a97df839436c5a.png


查看多段日志

36582624e5bde271cd1d3e6c95086a63.png


2.vim demo.conf

多端输入,以beginning开始

c90c7b202398a6abe06c92a32cd74fca.png

20cf52685a804ab285ae699fbd798e00.png

9b38dd13422268d28349b9a4d6463ffe.png

960160ec2cd946952ea84718ed053979.png


九.采集日志存放在redis

1.在server2安装redis

a8dfe6865cd0ba5307b7747cd5f93a5e.png

e5ff2a7307c7c2da1929761ff3675d71.png


2.配置 vim redis.conf,将采集日志存放在redis中,启动redis

08abadb21cb40bd25f7be4460ca02c2b.png


084864afbd5bfcfb003676a52369a224.png

查看server2 redis已经存入数据

0e1f6d50f499836bc252ab9d6f42fb0c.png


注意:在根目录下会生成隐藏的记录文件,有时会影响的采集,需要删除

8310decccd37f48647b57403caea079b.png


十.tcp日志的采集

041ed30d9f7a5cb712b08cf6894d01eb.png

800df8035438d431b8cd931e4730a9eb.png

88e2c419e6561be78e780fe03b7c1343.png


测试:

1.写入设备

764d445f186342d164bf9ac0a6de8358.png

f5df91b9f5fb8bddbf11be525cafddff.png

2.nc命令

0cffd613d60956cae46c79a3b8499ca9.png

b6357a58a0b6dcaf4c2c7215b9244e98.png


十一.Kibana日志分析工具

1.kibana的安装配置

7ac5cd47638a0a5095d43ddf25f8e84f.png

2a063a5adea603ee69ab23094af557ee.png

bc514672c80dd0e1f59eccafb3f41d44.png

9f140c73cea1409e3388ed2a51dc3b8c.png

23ce164fbc608e9ed1db4b0997f7684c.png


2.添加监控项目

启动httpd日志采集

40868fa66d4d9f13a397b955fdd79812.png

d562c1c4e95c157815e6a697ac70c47c.png


a847573a45ff3613fdb5190459b48f3c.png

af3748bfe2bf34f42c59e42269ad2a0b.png

ac9475318de7050222876d95bb763a26.png


22274f4c0771348424770983daee419f.png




3.添加httpd日志监控,加上不同来源的分析

调用过滤变量

4eae2182489bb65e4543fccb32e83aaf.png

7f601799f7b6498ec83426e56870bb48.png

90623537537bf5adfe9bc81e370c3876.png


811190bef7d83d3cd7491c5cdfb0b6fa.png

添加到dashboard界面里,便于观察

压力测试,可以在监控图上看到哪个主机的访问的次数

613c64de49ce5c34b354225c5252c1f8.png

左为链接次数,右为各个主机的连接次数

8c0327a3c2831a113836ed6ada215cca.png


4.添加secure安全日志监控

8b61822669ad864986509c9d2b44ce26.png

3903494b0be43d6a95e144b8a8bcf28f.png

0658cc299bc26948ae629df13637c43a.png

b3f98f93d02903e703a092c4f7f0bd07.png

4b45175010874edac8c42bc0e912ee44.png

c7023530200af2ecdc6fdf413dbbdb61.png

添加到dashboard界面里,便于观察

设置更新频率

d8418461afd31b3ebe7080f60ace36d4.png


安全测试的是ssh连接失败的日志

1b59b01d070cf5fdf184ab29a7008078.png



保存dashboard监控模版为dashboard1

397d5874966dfb773e0a62de3530f455.png






      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1979775,如需转载请自行联系原作者






相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
7天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
21 7
|
14天前
|
存储 监控 安全
|
30天前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
42 3
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
55 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
38 0
|
3月前
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
3月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
3天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
19 3
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
16 2