Ansible集群服务部署案例

news2024/11/18 13:47:33

案例描述

本案例共讲述了多个节点部署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.coloradmin.cn/o/2169439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shell用文件管理备份文件路径

从文件中读取文件路径 while IFS read -r s; do:这行代码启动一个 while 循环,逐行读取 001.sh 文件的内容。 IFS:将内部字段分隔符(IFS)设置为空,确保读取整行而不被默认的空格和换行符分隔。这样可以保…

知识管理数据库

知识管理数据库,可以分为几类: 灵感库、卡片库、作品库。 灵感库,通常是素材,想法。 片库,是完整的,成段落的文字。 作品库,是文章、专栏,或者书籍。 这三者的关系,好比…

java通过webhook给飞书发送群消息

现在使用飞书的人越来越多了,飞书有一个最大的好处,可以使用webhook简便的发送群消息。而在工作中,也经常会因为一些运维方面的工作,需要给飞书发送群消息,来实时提醒相关负责人,及时处理工作。 一、先看一下效果吧&a…

【计算机网络】网络层详解

文章目录 一、引言二、IP 基础知识1、IP 地址2、路由3、IP报文4、IP报文的分片与重组 三、IP 属于面向无连接型四、IP协议相关技术1、DNS2、ICMP3、NAT技术4、DHCP 一、引言 TCP/IP的心脏是网络层。这一层主要由 IP 和 ICMP 两个协议组成。网络层的主要作用是“实现终端节点之…

Visual Studio Code下载安装及汉化

官网:https://code.visualstudio.com/ 按照指示一步步操作即可: 汉化:

Stable Diffusion零基础学习

Stable Diffusion学习笔记TOP12 _插件篇之ControlNet功能篇 ControlNet目前支持的10多种预处理器,根据数据检测种类可分为两种类型: 1、功能型:拥有着不同的能力 2、构图型:控制着SD扩散图形的构图规则 Seg语义分割&#xff1a…

2025年第十届智能信息技术国际会议 (ICIIT 2025)即将召开!

第10届智能信息技术国际会议(ICIIT 2025)将于2025年2月20日至23日在越南河内举行。ICIIT系列会议将每年举行,为智能信息技术及相关领域提供互动论坛,除了越南的研究人员外,会议小组还欢迎来自世界各地的有兴趣与该地区…

SpringBoot框架快速入门

1、起步依赖 1.概述 在入门案例中,我们引入了web依赖和test依赖,这两个依赖是SpringBoot中的starter依赖,starter依赖也被称为起步依赖 SpringBoot 在配置上相比Spring要简单许多,其核心在于spring-boot-starter,在使…

Django Web开发基础介绍

概述 Django 是后端Python的 Web 开发框架,主要任务是处理与服务器和数据库相关的事务,模板渲染动态生成网页内容只是其中一部分。 Django 内置了的模板引擎,可以将 HTML 页面与 Python 代码进行分离。模板引擎提供了丰富的模板标签和过滤器…

???Ansible-使用roles

文章目录 一、Ansible的内置的或官方推荐创建的目录及文件介绍roles目录解释1、roles/自定义角色名目录下2、roles/自定义角色名目录/tasks目录下3、roles/自定义角色名目录/handlers目录下4、roles/自定义角色名目录/templates目录下5、roles/自定义项目名目录/files目录下6、…

vscode【实用插件】Notes 便捷做笔记

安装 在 vscode 插件市场的搜索 Notes点 安装 安装成功后,vscode 左侧栏会出现 使用 初次使用 需先选择一个本地目录 重启 vscode 后,得到 切换笔记目录 新建笔记 快捷键为 Alt N 默认会创建 .md 文件 配合插件 Markdown Preview Enhanced 预览 .md…

一文讲清CSS基础之浮动float原理

文章目录 前言1、演示基础代码2、块级元素和行级元素都可以开启浮动,开启后不会独占一行3、块级元素独占一行,如果上方有行级元素则空出行级元素的高度4、开启浮动后元素会脱离文档流,浮动流宽高由内容撑开5、浮动元素的宽高也可以设定6、行内…

华为GaussDB数据库(单机版)在ARM环境下的安装指南

一、软件版本 机器配置:8核16G,CPU: Huawei Kunpeng 920 2.9GHz操作系统:EulerOS 2.8 64bit with ARM数据库版本:GaussDB Kernel 505.1.0 build 44f4fa53 二、部署流程 2.1 新建用户 ① 以omm用户为例,添加一个omm用…

使用C#,MSSQL开发的钢结构加工系统

很久以前的项目,上位机使用C#开发。数据库使用mssql。控制系统选用了三菱PLC,上位机和PLC之间走ModbusTCP通讯协议。 主要功能:读取加工文件(csv格式),导入到数据库,并根据机床刀具规则&#x…

Python | Leetcode Python题解之第438题找到字符串中所有字母异位词

题目: 题解&#xff1a; class Solution:def findAnagrams(self, s: str, p: str) -> List[int]:s_len, p_len len(s), len(p)if s_len < p_len:return []ans []count [0] * 26for i in range(p_len):count[ord(s[i]) - 97] 1count[ord(p[i]) - 97] - 1differ [c !…

Unity 热更新(HybridCLR+Addressable)-创建Addressable资源

三、创建Addressable资源 创建三个文件夹&#xff0c;放Addressable资源&#xff0c;里面对应放程序集&#xff0c;预制体以及场景 拖拽到Addressable Groups对应组中 其中文件名太长&#xff0c;带着路径&#xff0c;可以简化名字 创建一个脚本&#xff0c;对于这个脚本进行一…

在实时语音交互上超过GPT-4o,端到端语音模型Mini-Omni部署

Mini-Omni是清华大学开源的多模态大型语言模型&#xff0c;具备实时语音输入和流式音频输出的能力。 Mini-Omni模型能够一边听、一边说&#xff0c;一边思考&#xff0c;类似于ChatGPT的语言对话模式。 Mini-Omni模型的主要特点是能够直接通过音频模态进行推理&#xff0c;并…

python全栈学习记录(十六)模块与包

模块与包 文章目录 模块与包一、模块1.模块的导入方式2.模块的循环导入问题3.搜索路径与优先级 二、包1.包的使用2.绝对导入与相对导入 三、一般工程的开发目录规范 一、模块 模块是一系列功能的集合体&#xff0c;常见的模块形式&#xff08;自定义模块、第三方模块、内置模块…

重头开始嵌入式第四十三天(硬件 ARM架构 汇编语言)

目录 ARM架构补充 一&#xff0c;程序状态寄存器 二&#xff0c;处理器工作模式 三&#xff0c;异常处理 四&#xff0c;指令流水线 汇编语言 一&#xff0c;什么是汇编 二&#xff0c;汇编怎么编 三&#xff0c;ARM汇编指令集 四&#xff0c;数据处理指令 五&#…

DC00019基于java swing+sqlserver超市商品信息管理系统java项目GUI商品信息管理系统

1、项目功能演示 DC00019基于java swingsqlserver超市商品信息管理系统java项目GUI商品信息管理系统 2、项目功能描述 基于java swingsqlserver超市管理系统功能 1、系统登录 2、员工管理&#xff1a;添加员工、查询员工、所有员工 3、部门管理&#xff1a;添加部门、查询部门…