原创作者:运维工程师 谢晋
ELK+Filebeat+Redis部署应用指导书(一)
概述
为本公司ELK相关实施工作的顺利实施,公司数据库部门特制定一系列规范手册以指导软件的实施部署。本文即为其中之一。
此文档用于指导在Centos 7.x(本文档以7.7为示范,7.8以上包括7.8不适用)平台上安装ELK日志分析平台收集Nginx日志。安装可以分成3个主要步骤:配置环境,安装ELK6.5.4、安装Redis6.0.4和安装后收集Nginx配置操作。
ElasticStack平台简介
ELK是三个开源软件的缩写,分别为:Elasticsearch 、 Logstash以及Kibana , 它们都是开源软件。不过现在还新增了一个Beats,它是一个轻量级的日志收集处理工具(Agent),Beats占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具,目前由于原本的ELK Stack成员中加入了 Beats 工具所以已改名为Elastic Stack。
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
大型系统通常都是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。
一个完整的集中式日志系统,需要包含以下几个主要特点:
收集-能够采集多种来源的日志数据
传输-能够稳定的把日志数据传输到中央系统
存储-如何存储日志数据
分析-可以支持 UI 分析
警告-能够提供错误报告,监控机制
而ELK则提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。是目前主流的一种日志系统。
ElasticStack体系架构
Elasticsearch:是一个基于 Lucene 的、支持全文索引的分布式存储和索引引擎,主要负责将日志索引并存储起来,方便业务方检索查询。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash:是一个日志收集、过滤、转发的中间件,主要负责将各条业务线的各类日志统一收集、过滤后,转发给 Elasticsearch 进行下一步处理。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana:是一个可视化工具,也是一个开源和免费的,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
Beats:包含6种工具:
1、Filebeat:日志文件(收集文件数据)
2、Packetbeat:网络数据(收集网络流量数据)
3、Metricbeat:指标(收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
4、Winlogbeat: windows事件日志(收集 Windows 事件日志数据)
5、Heartbeat:运行时间监控 (收集系统运行时的数据)
6、Auditbeat:审计数据 (收集审计日志)
系统运行环境
系统硬件环境:
3台64位物理机服务器或者虚拟机服务器。
系统软件环境
操作系统 | Centos 7.7 |
---|---|
主机名 | elk |
专用 IP 地址 | 10.11.11.30 |
Elasticsearch版本 | 6.5.4 |
Logstash版本 | 6.5.4 |
Kibana版本 | 6.5.4 |
文件系统 | 本地文件系统 |
操作系统 | Centos 7.7 |
---|---|
主机名 | nginx |
专用 IP 地址 | 10.11.11.31 |
Nginx版本 | 1.18.0 |
Filebeat版本 | 6.5.4 |
文件系统 | 本地文件系统 |
操作系统 | Centos 7.7 |
---|---|
主机名 | redis |
专用 IP 地址 | 10.11.11.32 |
Redis版本 | 6.0.4 |
文件系统 | 本地文件系统 |
安装前准备
配置网络环境
根据信息规划表的要求配置操作系统的主机名、IP地址、hosts文件。
本段下列配置为三台系统都要配置
- 配置hosts文件
# cat /etc/hosts
10.11.11.30 elk
# cat /etc/hosts
10.11.11.31 nginx
# cat /etc/hosts
10.11.11.32 redis
- 配置防火墙和selinux
关闭系统的iptables服务,以及selinux防火墙,以确保oracle对外提供服务端口(默认1521)不被阻塞,请注意,确认以上两项服务的关闭是必须的选项。
检查iptables服务是否运行:
# systemctl status firewalld
# getenforce
如果返回的结果不是disabled,请运行以下命令,然后重启机器:
# setenforce 0
# systemctl stop firewalld
# systemctl disable firewalld
# sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 配置网络yum源(使用163yum源)
进入yum源配置目录下:
# cd /etc/yum.repos.d/
使用weget命令下载yum源配置文件
# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
下载后需要修改文件里的版本号,否则无法使用yum源:
# vi CentOS7-Base-163.repo
编辑文件,把文件里面的$releasever全部替换为版本号:7,然后保存。
替换:
:%s/$releasever/7/g
保存:
:wq
刷新重载yum源配置:
# yum clean all
使用list选项验证,正常显示软件包即成功。
#yum list
如上准备工作就完成了可以开始不是ELK应用了。