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..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::ba::::2f: root@lst02
The key's randomart image is:
+--[ RSA ]----+
| |
| |
| 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.
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.
pipeline_workers=
pipeline_batch_size=
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. [kafka_zookeeper]
192.168.10.75 [kafka_zookeeper:vars]
zookeeper_version=3.4. ############################### filebeat
[filebeat]
192.168.10.73
192.168.10.74
192.168.10.75 [filebeat:vars]
filebeat_version=7.2.
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.
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.
pipeline_workers=
pipeline_batch_size= ############################### filebeat
[filebeat]
192.168.10.73
192.168.10.74
192.168.10.75 [filebeat:vars]
filebeat_version=7.2.
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部署

基于 Ansible 的 ELK 部署说明的更多相关文章

  1. 【云计算】基于Ansible的自动部署平台化思路

    目标: 1.自动化—支持命令行.webui.api调用 2.支持基础命令.脚本.复杂任务编排.满足生产环境各类模块自动化部署需求 3.满足生产环境(开发.测试.线上)性能.可靠性.安全性要求 4.流程 ...

  2. [自动化]基于kolla-ceph的自动化部署ceph集群

    kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...

  3. [自动化]基于kolla的自动化部署ceph集群

    kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...

  4. 基于Ansible实现Apache Doris快速部署运维指南

    Doris Ansible 使用指南 Apache Doris 介绍 Apache Doris是一个现代化的MPP分析型数据库产品.仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析.Apac ...

  5. 分布式实时日志分析解决方案ELK部署架构

    一.概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats.Logstash.Elasticsearch.Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决 ...

  6. [系统开发] 基于Ansible的产品上线系统

    前言: 应部门急需,开发了一套基于Ansible Playbook的产品上线系统.由于时间很紧,UI直接套用了之前开发的一套perl cgi模板,后续计划用 django 重新编写. 个人感觉该系统的 ...

  7. [转]基于AWS的自动化部署实践

    作者 徐桂林 发布于 2014年1月22日 -------------------------------------------------------------------- 1. 背景 在过去 ...

  8. 基于AWS的自动化部署实践

    过年前,我给InfoQ写了篇文章详细介绍我们团队在过去4年基于AWS的自动化部署实践.文章包括了:为什么选择AWS.AWS上自动化部署的优势和挑战.我们的解决方案,以及和AWS DevOps方案(Op ...

  9. 基于centos6.5安装部署mongdb3.6

    注意:不同的版本的centos,mongdb安装方式不同,请注意版本号!! 基于centos6.5安装部署mongdb3.6 方式有多种,本文介绍使用wget命令来下载获取mongdb,具体命令如下 ...

随机推荐

  1. #20175201张驰 实验三 敏捷开发与XP实践

    实验步骤 (一)敏捷开发与XP 一.敏捷开发与XP实践-1 ①实验要求: 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse ...

  2. webstorm tools window

    webstorm左侧的文件列表不见了, 通过菜单,view-->tools window-->project window就可以找到

  3. React-Native 之 GD (十八)监听 TabBarItem 点击与传值实现 点击 Item 进行刷新功能

    监听 TabBarItem 点击与传值实现 点击 Item 进行刷新功能 原版 APP 中当我们点击 首页和海淘 2个 Item 时,会马上获取最新数据个数然后进行更新,这边来实现一下这个功能. 1. ...

  4. Linux驱动开发4——并发和竞态

    Linux系统处于一个高并发的运行环境,不管是系统调用还是中断都要求可重入,但是有一些系统资源处于临界区,因此,必须保证临界区资源访问的原子性. 对于临界区资源被占用时,发起访问的进程,有三种处理方法 ...

  5. Docker报错:“WARNING: IPv4 forwarding is disabled. Networking will not work.”解决。

    问题阐述 一次停电之后,服务器停机,然后ip莫名被占用,修改新的ip之后,ssh能够连接上去,但是web服务访问不了,数据库访问不了,除了22端口,其它服务端口都不能telnet. 防火前.IPtab ...

  6. SpringBoot系列:四、SpringBoot集成JPA

    首先要明白的是JPA不是产品,它是一个规范. Jpa (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范.它为 Java 开发人员提供了一种对象/关联映射工具来 ...

  7. 《图解设计模式》读书笔记7-2 Mediator模式

    目录 Mediator模式简介 示例程序 示例程序类图 代码 Mediator模式角色和类图 角色 模式类图 思路拓展 简单化 角色复用 Mediator模式简介 Mediator模式即中介者模式,可 ...

  8. 【ABAP系列】SAP ABAP解析XML的示例程序

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP解析XML的示例 ...

  9. 阅读笔记09-Java程序员必备的Intellij插件

    1. .ignore 生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写 地址:plugins.jetbrains.com/plugin/7495--ignore 2. l ...

  10. TCP通信 - 服务器开启多线程与read()导致服务器阻塞问题

    TCP通信的文件上传案例 本地流:客户端和服务器和本地硬盘进行读写,需要使用自己创建的字节流 网络流:客户端和服务器之间读写,必须使用Socket中提供的字节流对象 客户端工作:读取本地文件,上传到服 ...