基于 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..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 部署说明的更多相关文章
- 【云计算】基于Ansible的自动部署平台化思路
目标: 1.自动化—支持命令行.webui.api调用 2.支持基础命令.脚本.复杂任务编排.满足生产环境各类模块自动化部署需求 3.满足生产环境(开发.测试.线上)性能.可靠性.安全性要求 4.流程 ...
- [自动化]基于kolla-ceph的自动化部署ceph集群
kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...
- [自动化]基于kolla的自动化部署ceph集群
kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...
- 基于Ansible实现Apache Doris快速部署运维指南
Doris Ansible 使用指南 Apache Doris 介绍 Apache Doris是一个现代化的MPP分析型数据库产品.仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析.Apac ...
- 分布式实时日志分析解决方案ELK部署架构
一.概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats.Logstash.Elasticsearch.Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决 ...
- [系统开发] 基于Ansible的产品上线系统
前言: 应部门急需,开发了一套基于Ansible Playbook的产品上线系统.由于时间很紧,UI直接套用了之前开发的一套perl cgi模板,后续计划用 django 重新编写. 个人感觉该系统的 ...
- [转]基于AWS的自动化部署实践
作者 徐桂林 发布于 2014年1月22日 -------------------------------------------------------------------- 1. 背景 在过去 ...
- 基于AWS的自动化部署实践
过年前,我给InfoQ写了篇文章详细介绍我们团队在过去4年基于AWS的自动化部署实践.文章包括了:为什么选择AWS.AWS上自动化部署的优势和挑战.我们的解决方案,以及和AWS DevOps方案(Op ...
- 基于centos6.5安装部署mongdb3.6
注意:不同的版本的centos,mongdb安装方式不同,请注意版本号!! 基于centos6.5安装部署mongdb3.6 方式有多种,本文介绍使用wget命令来下载获取mongdb,具体命令如下 ...
随机推荐
- Windows下使用python3 + selenium实现网页自动填表功能
本文由博主(SunboyL)原创,转载请注明出处:https://www.cnblogs.com/SunboyL/p/11563345.html 因为工作原因,需要将xls文件的数据录入到网上.因为数 ...
- duliu题之狼抓兔子题解
拖了将近5天的正解和AC.........emmmmm........... 事实告诉我们这种毒瘤题一定要建双向边(用了不知道多少个小时质疑建边的人欲哭无泪) 心态爆炸的传送 题了个面 这是个求最小割 ...
- LeetCode 10——正则表达式匹配
1. 题目 2. 解答 在 回溯算法 中我们介绍了一种递归的思路来求解这个问题. 此外,这个问题也可以用动态规划的思路来解决.我们定义状态 \(P[i][j]\) 为子串 \(s[0, i)\) 和 ...
- 【tensorflow使用笔记二】:tensorflow中input_data.py代码有问题的解决方法
由于input_data网页打不开,因此从博客找到代码copy: https://blog.csdn.net/weixin_43159628/article/details/83241345 将代码放 ...
- 使用Chrome逆向分析JS实战---分析google网站翻译器原文存放位置
剧透:就是使用了一下Chrome DevTools的Memory功能,通过已知的JS变量的值查找JS内存中变量的引用 一:不分析一下现有的网页翻译方法么? 总所周知,(As is well known ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_9_字节输入流读取字节数据
硬盘读取到内存 read值会读一个字节 a.txt里面a变成整数就是97 读取到末尾,返回-1 再读一次还是-1 读取的代码是重复的.可以使用循环去读取.while循环. 转行成char类型的 ...
- python实现excel转换成pdf
1.安装 需要安装pywin32包,以实现对Office文件的操作,可以批量转换为pdf文件.支持 doc, docx, ppt, pptx, xls, xlsx 等格式. pip install p ...
- C#实现京东登录密码加密POST
1.京东登录登录密码 function getEntryptPwd(pwd) { var pubKey = $('#pubKey').val(); if (!pwd || !pubKey || !Sy ...
- 关于this在不同使用情况表示的含义
1. addEventListener 函数中的this 指向的是出发事件的事件源 obj.addEventListener('click',function(){ console.log(thi ...
- FileSystemObject详解
FSO是FileSystemObject 或 Scripting.FileSystemObject 的缩写,为 IIS 内置组件,用于操作磁盘.文件夹或文本文件.FSO 的对象.方法和属性非常的多,这 ...