基于 Ansible 的 ELK 部署说明

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
注册配置 MSE Nacos/ZooKeeper,118元/月
日志服务 SLS,月写入数据量 50GB 1个月
简介: ELK-Ansible使用手册ELK-Ansible 是基于 Ansible 的 Playbooks 研发的 ELK集群部署工具。本文将介绍如何使用 ELK-Ansible 快速部署 ELK 集群。

ELK-Ansible使用手册

ELK-Ansible 是基于 Ansible 的 Playbooks 研发的 ELK集群部署工具。
本文将介绍如何使用 ELK-Ansible 快速部署 ELK 集群。

一、准备工作

1. 目标机器若干(至少一台),配置如下:

  • 系统版本 CentOS7
  • 节点之间请确保网络互通(关闭防火墙)

2. 一台中控机,配置如下:

  • 系统版本 CentOS7
  • 互联网访问(下载安装包)
  • 机器之间内网互通

3. ELK角色名词介绍:

Elasticsearch 存储数据并提供分析查询能力,支持集群
Logstash 解析日志,由一行文本日志解析到结构数据(JSON字典)
Filebeat 监控日志文件,收集行数据
Kibana 前端展示界面
Kafka(可选) 缓存filebeat到logstash过程中的数据, 防止logstash处理不过来造成数据丢失

4. 给机器分配角色 & 场景选择

  • 根据实际情况分配服务器和角色,

    • 日志的大小来判断es节点数量(1,3,5...)
    • 日志产生速度快,请多配置几台logstash
    • 每台要收集日志的服务器上都要配置filebeat
  • 场景一,带kafka方案

    • hosts文件的kafka角色下有服务器即可
  • 场景二,不带kafka方案

    • hosts文件的kafka角色组下不要配置任何机器

二、中控机配置 & 部署程序安装

1. 中控机依赖包安装

# yum -y install epel-release git curl sshpass ansible vim wget

2. 下载ELK-Ansible程序

安装包下载地址 https://urc-elk.oss-cn-shanghai.aliyuncs.com/release/elk-ansible.tar.gz

cd /opt
wget https://urc-elk.oss-cn-shanghai.aliyuncs.com/release/elk-ansible.tar.gz
tar -zxvf elk-ansible-0.0.1.tgz
cd elk-ansible

三、目标服务器配置

1. 登录中控机器,生成中控机器的ssh密钥

$ ssh-keygen -t rsa                                                                            在中控机生成公密钥文件
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  
Enter passphrase (empty for no passphrase):  
Enter same passphrase again:  
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4e:f8:b6:c4:1f:c3:1d:2a:b1:10:ba:65:39:74:2f:08 root@lst02
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|    E o .        |
|     + * .       |
|    . O S . .    |
|     + B = o .   |
|    .   O = .    |
|       o + o     |
|        . .      |
+-----------------+

2. 在中控机中,将目标机器加到ansible-elk的hosts文件中, 并做初始化

  • 文件位置 /opt/elk-ansible/hosts
  • 修改hosts,将目标机器添加到【all_nodes】下
[all_nodes]
192.168.79.201
  • 运行以下命令,免密配置完成
$ ansible-playbook -k playbooks/init_node.yml

四、配置HOST配置文件

1. hosts配置文件路径

/opt/elk-ansible/hosts

2. host配置文件名词解析:

参数 含义
[all_nodes] 参数下放置所有的服务器列表,可以配置登陆方式,默认通过sshkey免密登陆,还可以指定用户/密码/端口
[all_nodes:vars] 参数下放置全局的变量
install_root_path 代表程序安装目录
[elasticsearch] 参数下放置需要安装es的节点,会搭建出这些节点组陈过的ES集群
[elasticsearch:vars] 参数下放置es节点部署时需要的配置变量
data_path 表示ES数据存放目录
cluster_name 表示ES集权的名称
[filebeat] 参数下放置需要安装filebeat的服务器列表,用户收集日志
[filebeat:vars] 下存放安装过程的配置变量
kafka_topic 如果有kafka,对应kafka的主题名称
filebeat_log_path 收集日志的路径
[logstash] 存放对应角色主机列表,配置使用默认
[kafka] 存放对应角色主机列表,配置使用默认
[kafka_zookeeper] 存放对应角色主机列表,配置使用默认
[kibana] 存放对应角色主机列表,配置使用默认

五、两种部署场景

1、包含kafka的使用场景

各服务器角色分工

服务器 对应角色
192.168.10.72 ansible控制机
192.168.10.73  elasticsearch、logstash、filebeat
192.168.10.74 elasticsearch、logstash、filebeat
192.168.10.75 elasticsearch、logstash、kafka、filebeat、kibana

具体hosts配置文件样例:    

[all_nodes]
192.168.10.73        # 通过sshkey免密登陆
192.168.10.74
192.168.10.75

[all_nodes:vars]
install_root_path=/usr/local

############################### ElasticSearch
[elasticsearch]
192.168.10.73
192.168.10.74
192.168.10.75

[elasticsearch:vars]
elasticsearch_version=7.2.0
data_path=/var/lib/elasticsearch
cluster_name=ELKCluster

############################### Logstash
[logstash]
192.168.10.73
192.168.10.74
192.168.10.75

[logstash:vars]
logstash_version=7.2.0
pipeline_workers=5
pipeline_batch_size=10
kafka_group_id=logstash_kafka                       # 作为kafka的消费者的group-id
kafka_topic=elk-pipeline-topic                      # kafka中的对应的topic


############################### Kafka
[kafka]                                                                                            # 不配置任何机器,即不带kafka场景
192.168.10.75

[kafka:vars]
kafka_version=2.12-2.2.0

[kafka_zookeeper]
192.168.10.75

[kafka_zookeeper:vars]
zookeeper_version=3.4.13


############################### filebeat
[filebeat]
192.168.10.73
192.168.10.74
192.168.10.75

[filebeat:vars]
filebeat_version=7.2.0
kafka_topic=elk-pipeline-topic                      # kafka中的对应的topic
filebeat_log_path=/var/log/*.log                    # 监视的日志


############################### kibana
[kibana]
192.168.10.75

[kibana:vars]
kibana_version=7.2.0

2、不包含kafka的使用场景

各机器的角色分配

服务器 对应角色
192.168.10.72 ansible控制机
192.168.10.73  elasticsearch、logstash、filebeat
192.168.10.74 elasticsearch、logstash、filebeat
192.168.10.75 elasticsearch、logstash、filebeat、kibana

具体hosts配置文件样例:

[all_nodes]
192.168.10.73        # 通过sshkey免密登陆
192.168.10.74
192.168.10.75

[all_nodes:vars]
install_root_path=/usr/local

############################### ElasticSearch
[elasticsearch]
192.168.10.73
192.168.10.74
192.168.10.75

[elasticsearch:vars]
elasticsearch_version=7.2.0
data_path=/var/lib/elasticsearch
cluster_name=ELKCluster

############################### Logstash
[logstash]
192.168.10.73
192.168.10.74
192.168.10.75

[logstash:vars]
logstash_version=7.2.0
pipeline_workers=5
pipeline_batch_size=10


############################### filebeat
[filebeat]
192.168.10.73
192.168.10.74
192.168.10.75

[filebeat:vars]
filebeat_version=7.2.0
filebeat_log_path=/var/log/*.log                    # 监视的日志


############################### kibana
[kibana]
192.168.10.75

[kibana:vars]
kibana_version=7.2.0

六、执行部署安装

$cd /opt/elk-ansible
$bash deploy.sh               运行 bash deploy.sh部署
相关文章
|
7月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
184 0
|
Web App开发 监控 NoSQL
ELK日志分析系统部署文档 1
ELK日志分析系统部署文档
154 0
ansible的环境部署及简单使用
ansible的环境部署及简单使用
200 0
|
存储 NoSQL Redis
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
550 0
|
5月前
|
存储 数据安全/隐私保护 Docker
Kolla-ansible部署openStack
Kolla-ansible部署openStack
461 11
|
4月前
|
存储 应用服务中间件 nginx
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
165 0
部署ELK+filebeat收集nginx日志
|
4月前
|
运维 安全 测试技术
自动化运维的利剑:Ansible在企业级部署中的应用与挑战
本文深入探讨了Ansible,这一领先的IT自动化工具,如何在企业级部署中扮演关键角色。我们将通过实际案例分析,揭示Ansible在简化配置管理、加速应用部署和提高运维效率方面的优势。同时,文章也将不回避Ansible实施过程中可能遇到的技术挑战与限制,并提供针对性的解决策略。阅读本文后,您将获得一个全面的视角,理解Ansible在现代企业运维中不可或缺的地位,以及如何克服其面临的主要问题。
87 1
|
4月前
|
存储 监控 Ubuntu
一键搞定:用脚本轻松部署ELK,让日志分析变得简单又高效
【8月更文挑战第13天】ELK栈由Elasticsearch、Logstash和Kibana组成,用于日志存储、解析及展示,是大数据领域广泛采用的日志解决方案。鉴于其安装配置复杂,本文提供了一个适用于Ubuntu 16.04的ELK自动安装Shell脚本示例。脚本首先确保Java环境安装,接着添加Elastic.co的APT仓库并安装ELK组件,最后启动所有服务。通过自动化流程,简化部署工作,减少人为错误,提升效率。实际应用中还需根据具体需求调整配置和服务设置。
94 0
管理工具ansible的部署
管理工具ansible的部署
101 0
管理工具ansible的部署
|
运维 负载均衡 关系型数据库
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
182 0