Ansible集群服务部署案例

案例描述

本案例共讲述了多个节点部署Elk集群日志分析系统,分别在三个节点使用ansible部署Kibana、Logstash以及Elasticsearch服务。

案例准备

1. 规划节点

IP

主机名

节点

192.168.100.25

ansible

Ansible节点

192.168.100.35

node1

Elasticsearch/Kibana

192.168.100.45

node2

Elasticsearch/Logstash

192.168.100.55

node1

Elasticsearch

2. 基准准备

登录物理OpenStack平台,使用CentOS7.9镜像创建四台云主机,云主机类型使用1VCPU/2GB内存/20GB硬盘。

案例实施

1. ELK部署

1.1 配置主机映射
1.1 .1 修改主机名

[root@ansible ~]# systemctl set-hostnamectl ansible

[root@ansible ~]# bash

1.1.2 修改ansible主机映射

[root@ansible ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.100.25 ansible

192.168.100.35 node1

192.168.100.45 node2

192.168.100.55 node3

1.1.3 配置免密访问

虚拟机root用户密码为000000

[root@ansible ~]# ssh-keygen

[root@ansible ~]# ssh-copy-id node1

[root@ansible ~]# ssh-copy-id node2

[root@ansible ~]# ssh-copy-id node3

vi /etc/ssh/sshd_config

PubkeyAuthentication yes

#AuthorizedKeysFile .ssh/authorized_keys

sudo systemctl restart sshd

1.1.4 复制ansible域名解析文件

将ansible节点的域名解析文件复制给安装Elasticsearch集群服务的三个节点

[root@ansible ~]# scp /etc/hosts node1:/etc/

[root@ansible ~]# scp /etc/hosts node2:/etc/

[root@ansible ~]# scp /etc/hosts node3:/etc/

1.1.5 关闭防火墙

[root@redis ~]# systemctl stop firewalld

[root@redis ~]# setenforce 0

1.2 软件包上传及Yum源配置
1.2.1 上传软件包

将提供的Elasticsearch、Kibana以及Logstash软件包上传至ansible节点/root目录下,并将相应服务的软件包拷贝至不同节点

[root@ansible ~]# ls

elasticsearch-6.0.0.rpm  kibana-6.0.0-x86_64.rpm  logstash-6.0.0.rpm

1.2.2 将软件包拷贝到三个节点

将Elasticsearch软件包拷贝至三个节点,将Kibana软件包拷贝至node1节点,将Logstash软件包拷贝至node2节点

[root@ansible ~]# scp elasticsearch-6.0.0.rpm node1:/root/

[root@ansible ~]# scp elasticsearch-6.0.0.rpm node2:/root/

[root@ansible ~]# scp elasticsearch-6.0.0.rpm node3:/root/

[root@ansible ~]# scp kibana-6.0.0-x86_64.rpm node1:/root/

[root@ansible ~]# scp logstash-6.0.0.rpm node2:/root/

1.2.3 配置本地Yum源

将软件包ansible.tar.gz上传至ansible节点配置本地Yum源,并安装ansible

[root@ansible ~]# ls

ansible.tar.gz  elasticsearch-6.0.0.rpm  kibana-6.0.0-x86_64.rpm  logstash-6.0.0.rpm

[root@ansible ~]# tar -zxvf ansible.tar.gz -C /opt/

[root@ansible ~]# mv /etc/yum.repos.d/* /media/

[root@ansible ~]# vi /etc/yum.repos.d/local.repo

[root@ansible ~]# yum -y install ansible

1.3 配置ansible主机映射
1.3.1 创建示例目录,并配置ansible主机映射

[root@ansible ~]# mkdir example

[root@ansible ~]# cd example

[root@ansible example]# vi /etc/ansible/hosts

1.3.2 安装java

使用CentOS-7-x86_64-DVD-2009.iso镜像文件作为安装库,将镜像挂载至/opt/centos,编写Yum源文件,安装vsftpd服务,用于给远程主机安装Java

[root@redis example]# mkdir /opt/centos

[root@ansible example]# mount /root/CentOS-7-x86_64-DVD-2009.iso /opt/centos/

[root@ansible example]# vi /etc/yum.repos.d/local.repo

[root@ansible example]# yum install -y vsftpd

[root@ansible example]# vi /etc/vsftpd/vsftpd.conf

1.3.3 安装Elasticsearch服务并编写node1节点配置文件

[root@ansible example]# rpm -ivh /root/elasticsearch-6.0.0.rpm

[root@ansible example]# cp -rf /etc/elasticsearch/elasticsearch.yml elk1.yml

[root@ansible example]# cat elk1.yml | grep -Ev "^$|^#"

1.3.4 编写node2节点配置文件

[root@ansible example]# cp elk1.yml elk2.yml

[root@ansible example]# cat elk2.yml | grep -Ev "^$|^#"

1.3.5 编写node3节点配置文件

[root@ansible example]# cp elk1.yml elk3.yml

[root@ansible example]# cat elk3.yml | grep -Ev "^$|^#"

1.3.6 安装kibana获取配置文件

安装kibana服务并编写配置文件

[root@ansible example]# rpm -ivh /root/kibana-6.0.0-x86_64.rpm

[root@ansible example]# cp -rf /etc/kibana/kibana.yml .

[root@ansible example]# cat kibana.yml |grep -v ^#

1.3.7 安装logstash获取配置文件

安装logstash服务并获取配置文件

 yum install java-1.8.0-openjdk-devel

[root@ansible example]# rpm -ivh /root/logstash-6.0.0.rpm

[root@ansible example]# cp -rf /etc/logstash/logstash.yml .

[root@ansible example]# vi logstash.yml

http.host: "192.168.100.45"

新建日志输出文件

[root@ansible example]# vi syslog.conf

1.3.8 编写剧本文件

编写Playbook剧本文件

[root@ansible example]# vi cscc_install.yaml

- hosts: all

  remote_user: root

  tasks:

    - name: rm repo

      shell: rm -rf /etc/yum.repos.d/*

    - name: copy repo

      copy: src=ftp.repo dest=/etc/yum.repos.d/

    - name: install java

      shell: yum -y install java-1.8.0-*

    - name: install elk

      shell: rpm -ivh elasticsearch-6.0.0.rpm

- hosts: node1

  remote_user: root

  tasks:

    - name: copy config

      copy: src=elk1.yml dest=/etc/elasticsearch/elasticsearch.yml

    - name: daemon-reload

      shell: systemctl daemon-reload

    - name: start elk

      shell: systemctl start elasticsearch && systemctl enable elasticsearch

    - name: install kibana

      shell: rpm -ivh kibana-6.0.0-x86_64.rpm

    - name: copy config

      template: src=kibana.yml dest=/etc/kibana/kibana.yml

    - name: start kibana

      shell: systemctl start kibana && systemctl enable kibana

- hosts: node2

  remote_user: root

  tasks:

    - name: copy config

      copy: src=elk2.yml dest=/etc/elasticsearch/elasticsearch.yml

    - name: daemon-reload

      shell: systemctl daemon-reload

    - name: start elk

      shell: systemctl start elasticsearch && systemctl enable elasticsearch

    - name: install logstash

      shell: rpm -ivh logstash-6.0.0.rpm

    - name: copy config

      copy: src=logstash.yml dest=/etc/logstash/logstash.yml

    - name: copy config

      copy: src=syslog.conf dest=/etc/logstash/conf.d/syslog.conf

- hosts: node3

  remote_user: root

  tasks:

    - name: copy config

      copy: src=elk3.yml dest=/etc/elasticsearch/elasticsearch.yml

    - name: daemon-reload

      shell: systemctl daemon-reload

    - name: start elk

      shell: systemctl start elasticsearch && systemctl enable elasticsearch

执行PlayBook完成ELK集群的部署

[root@ansible example]# ansible-playbook cscc_install.yaml

执行结果如下图

2. 浏览器访问

浏览器访问node1节点5601端口,http://192.168.100.35:5601/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/435588.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用低代码快速搭建电商小程序之商品列表页

目标: 搭建商城的一个商品列表页面(先做静态页) 开发环境: 访问白码低代码平台:https://www.bnocode.com/ 白码的新自定义页功能(使用vue框架) 前期准备: 需要先准备商品数据表…

[网络]NAT、代理服务、内网穿透、内网打洞

目录 一、NAT 1.1 NAT 技术背景 1.2 NAT IP 转换过程 1.3 NAPT(Network Address Port Translation) 1.地址转换表 2. NAPT(网络地址端口转换Network Address Port Translation) 3. NAT技术的缺陷 二、代理服务器 2.1 正向…

济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理

近日,由中国开源软件推进联盟PG分会 & 齐鲁软件园联合发起的“PostgreSQL技术峰会济南站”在齐鲁开源社举办。瀚高股份IvorySQL作为合作伙伴受邀参加此次活动。 瀚高股份IvorySQL技术工程师 向逍 带来「IvorySQL中的Oracle XML函数兼容」的议题分享。在演讲中&a…

EasyCVR视频汇聚平台:解锁视频监控核心功能,打造高效安全监管体系

随着科技的飞速发展,视频监控技术已成为现代社会安全、企业管理、智慧城市构建等领域不可或缺的一部分。EasyCVR视频汇聚平台作为一款高性能的视频综合管理平台,凭借其强大的视频处理、汇聚与融合能力,在构建智慧安防/视频监控系统中展现出了…

后端Java-SpringBoot整合MyBatisPlus步骤(超详细)

1.新建项目。 2.点击完上一步的next之后,选择pom.xml文件中的依赖。 3.点击pom文件进行项目初始化。 按照下面的俩步骤刷新一下maven ,让文件生效 4.新建一个application.yml文件 5. 新建一个数据库mp,在数据库中新建一张user表 6.连接数据…

pdf文档翻译成英文很简单?搞定复杂的外语文献文档就靠它

转眼间又是一年国庆,怎么样,大一新生们适应得还好吗? 没事,刚到陌生的校园环境中,分分钟都在想家,还没适应集体宿舍生活很正常的...... 什么?已经有同学在着手准备写论文了?而且需要…

Facebook对现代社交互动的影响

自2004年成立以来,Facebook已经成为全球最大的社交媒体平台之一,改变了人们的交流方式和社交互动模式。作为一个数字平台,Facebook不仅为用户提供了分享生活点滴的空间,也深刻影响了现代社交互动的各个方面。本文将探讨Facebook如…

git使用“保姆级”教程4——版本回退及分支讲解

一、版本回退 1、历史回退(版本回退)——命令行git reset --hard 版本编号 注意:当前命令会让工作区的内容发生改变,可以理解成历史区(master分支)直接回到工作区比如:从版本4回到版本3,则工作区只会显示版本3的代码内容 1.1、指…

【Postgresql】安装新手教程

在以下postgresql官网下载软件 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads下载完成后安装,找个记事本记录下安装过程中填写的数据库管理原的password和port 在所有程序目录中打开pgadmin 输入刚才的数据库管理员密码 自动跳转到以下…

腾讯二面:40亿QQ号, 1G内存,怎么去重?

面试这种场合,大家都懂,面试官总喜欢出点“奇奇怪怪”的题目,问你点“看似不可能”的问题——比如: 40亿个QQ号要去重,内存还只能给你1GB。 就像老板让你用两块钱预算搞个全公司团建,还得拍成《向往的生活》…

速通数据结构与算法第七站 排序

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 3 速通数据结构与算法第三站 单链表 http://t.csdnimg.cn/cDpcC 4 速通…

1. 如何在服务器上租GPU跑实验 (以AutoDL为例) - 深度学习·科研实践·从0到1

目录 前言 1. 在AutoDL上注册账号 2. 在算力市场选择GPU 3. 创建实例 4. 控制台-容器实例界面(核心) 4.1 无卡模式(常用) 5. 帮助文档 前言 好记性不如烂笔头,本专栏将详细记录下本人学习深度学习工程实践&…

【Python】YOLO牛刀小试:快速实现视频物体检测

YOLO牛刀小试:快速实现视频物体检测 在深度学习的众多应用中,物体检测是一个热门且重要的领域。YOLO(You Only Look Once)系列模型以其快速和高效的特点,成为了物体检测的首选之一。本文将介绍如何使用YOLOv8模型进行…

【Git原理与使用】Git初识基本操作

Git初识&&基本操作 1.初识Git2.Git安装3.Git基本操作3.1创建Git本地仓库3.2配置Git3.3认识工作区、暂存区、版本库3.4添加文件3.5修改文件3.6版本回退3.7撤销修改3.8删除文件 点赞👍👍收藏🌟🌟关注💖&#x1f…

基于单片机8路数字电压表电压采集系统

**单片机设计介绍,基于单片机8路数字电压表电压采集系统 文章目录 前言概要功能设计设计思路 软件设计效果图 程序设计程序文章目录 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技…

数据集-目标检测系列-鼠检测数据集 mouse >> DataBall

数据集-目标检测系列-鼠检测数据集 mouse >> DataBall 数据集-目标检测系列-老鼠检测数据集 mouse 数据量:6k 想要进一步了解,请联系。 DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。…

Redis 基础数据改造

优质博文:IT-BLOG-CN 一、服务背景 基础数据查询服务:提供航司、机场、票台、城市等基础数据信息。 痛点一:因为基础数据不属于频繁更新的数据,所以每个应用都有自己和缓存,当基础数据更新后,各个应用缓存…

用友U8+CRM leadconversion.php SQL注入复现

0x01 产品描述: 用友U8-CRM是企业利用信息技术,是一项商业策略,它通过依据市场细分组织企业资源、培养以客户为中心的经营行为、执行以客户为中心的业务流程等手段来优化企业的客户满意度和获利能力。 0x02 漏洞描述: 用友 U8 CR…

指定PDF或图片多个识别区域,识别区域文字,并导出到Excel文件中

常见场景 用户有大量图片/PDF文件,期望能将图片/PDF中的多个区域中的文字批量识别出来,并导入到Excel文件中。期望工具可以批量处理、离线识别(保证数据安全性)。手工操作麻烦。具体场景:用户有工程现场照片&#xff…

【学习笔记】基于 Wasserstein距离的分布鲁棒优化

衡量不同分布间距离 在构建模糊集的方式上,除了利用矩信息之外,另一种思路是衡量真实分布与经验分布之间的距离。在这种情况下,我们以经验分布为中心,将与经验分布不超过某一距离的所有分布纳入模糊集中。于是,如何定…