Ansible 部署ELK集群服务

这篇具有很好参考价值的文章主要介绍了Ansible 部署ELK集群服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用赛项提供的 OpenStack私有云平台,创建三台 CentOS7.9 系统的云主机分别命名为 elk-1、elk-2 和 elk-3,Ansible主机可以使用上一题的环境。要求 Ansible 节点编写剧本,执行 Ansible 剧本可以在这三个节点部署 ELK 集群服务 (在/root/目录下创建 install_elk 目录作为 ansible 工作目录,部署的入口文件命名为 install_elk.yaml) 。具体要求为三个节点均安装 Elasticsearach 服务并配置为Elasticsearch 集群; kinana安装在第一个节点; Logstash 安装在第二个节点。 (需要用到的软件包在HTTP 服务下) 完成后提交 ansible 节点的用户名、密码和 IP 地址到答题框。 (考试系统会连接到ansible 节点,执行 ansible 脚本,准备好环境,以便考试系统访问)

地址规划:

ansible部署elkjiqun,Cloud Computing,ansible,elk,elasticsearch,云计算

  1. 基础准备
#域名解析(all node)
cat >> /etc/hosts <<EOF
10.18.4.46 ansible
10.18.4.201 elk-1
10.18.4.202 elk-2
10.18.4.203 elk-3
EOF
#####centos7.9 node#####
hostnamectl set-hostname elk-1
hostnamectl set-hostname elk-2
hostnamectl set-hostnaem elk-3
#####Ansible node#####
mkidr /root/install_elk
touch /root/install_elk/install_elk.yaml
mkdir -p
/root/install_elk/roles/{ela,kib,log}/{files,handlers,tasks,templates,vars}
#在ansible节点与三台节点建立免密钥通信
ssh-keygen
ssh-copy-id elk-1
ssh-copy-id elk-2
ssh-copy-id elk-3
#ansible主机清单
cat >> /etc/ansible/hosts <<EOF
[ela]
elk-1 node_name=elk-1
elk-2 node_name=elk-2
elk-3 node_name=elk-3
[kib]
elk-1
[log]
elk-2

2 主入口文件

cat > /root/install_elk/install_elk.yaml <<EOF
---
 1. hosts: ela
gather_facts: no
remote_user: root
roles;
 2. ela
 3. hosts: kib
gather_facts: no
remote_user: root
roles:
 4. k'i'b
 5. hosts: log
gather_facts; no
remote_user: root
roles:
 6. log
EOF
  1. 部署ela集群
cat > /root/install_elk/roles/ela/tasks/main.yaml <<EOF
 1. name: 安装Java环境
unarchive:
src: jdk-8u144-linux-x64.tar.gz
dest: /opt
list_files: yes
 2. name: 添加Java环境变量
shell: echo 'export JAVA_HOST=/opt/jdk1.8.0_144' >> /etc/profile && echo
'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
 3. name: 生效环境变量
shell: source /etc/profile
 4. name: 创建用户
user:
name: ela
 5. name: 传输本地软件包到远程主机并且解压到指定目录
unarchive:
src: elasticsearch-7.17.0-linux-x86_64.tar.gz
dest: /opt
owner: ela
group: ela
list_files: yes
register: ret
 6. name: 创建软链接
file:
src: /opt/{{ ret.files.0 | regex_replace('/.*') }}
dest: /opt/elasticsearch
state: link
 7. name: 传输配置文件
template:
src: elasticsearch.j2
dest: /opt/elasticsearch/config/elasticsearch.yml
owner: ela
group: ela
 8. name: 传输系统配置文件
copy:
src: limits.conf
dest: /etc/security/limits.conf
 9. name: 传输系统配置文件
copy:
src: sysctl.conf
dest: /etc/sysctl.conf
 10. name: 加载 /etc/sysctl.conf文件,使内核参数生效
shell: sysctl -p
 11. name: 启动服务
# 使用ela用户执行此命令
become: yes
become_user: ela
command:
# argv 是一个列表,存放了需要执行的命令及其参数
# 一行一个
argv:
 12. nohup
 13. /opt/elasticsearch/bin/elasticsearch
 14. -d
EOF
  1. elasticsearch的主配置文件模板
cat > /root/install_elk/roles/ela/templates/elasticsearch.j2 <<EOF
cluster.name: elk
node.name: {{ node_name }}
node.data: true
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts:
- 10.18.4.201
- 10.18.4.202
- 10.18.4.203
cluster.initial_master_nodes: ["elk-1","elk-2","elk-3"]
EOF

5.系统文件句柄数配置文件

cat > /root/install_elk/roles/ela/files/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096
EOF

6.系统的内核配置文件

cat > /root/install_elk/roles/ela/files/sysctl.conf <<EOF
vm.max_map_count=655360
EOF

7.部署kibana

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.18.4.201:9200"]
i18n.locale: "zh-CN"
pid.file: /run/kibana/kibana.pid
logging.dest: /var/log/kibana/kibana.log

8.kibana 程序进程管理模板文件

[Unit]
Description=Kibana
Documentation=https://www.elastic.co
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=ela
Group=ela
ExecStart=/opt/kibana/bin/kibana
ExecStop=/bin/pkill -F "/run/kibana/kibana.pid"
Restart=on-failure
RestartSec=3
StartLimitBurst=3
StartLimitInterval=60
WorkingDirectory=/opt/kibana
StandardOutput=journal
StandardError=inherit
[Install]
WantedBy=multi-user.target

9.部署Logstash
/root/install_elk/roles/log/tasks/main.yaml 入口文件

- name: 创建日志目录
file:
path: /var/log/logstash
state: directory
- name: 服务日志目录权限
shell: chown -R ela:ela /var/log/logstash
- name: 传输本地软件包到远程主机并且解压到指定目录
unarchive:
src: logstash-7.17.0-linux-x86_64.tar.gz
dest: /opt
list_files: yes
- name: 创建软链接
file:
src: /opt/{{ ret.files.0 | xegex_replace('/.*' }}
dest: /opt/logstash
state: link
- name: 传输配置文件
template:
src: logstash.yml
dest: /opt/logstash/config/logstash.yml
- name: 传输管道配置文件
copy:
src: logstash.conf
dest: /opt/logstash/config/logstash-sample.conf
- name: 传输系统服务文件
template:
src: logstash.service.j2
dest: /etc/systemd/system/logstash.service
- name: 启动 logstash
systemd:
name: logstash
state: started
daemon_reload: yes
- name: restart logstash
systemd:
name: logstash
state: restarted
daemon_reload: yes
#- name: 启动服务
# become: yes
# become_user: ela
# shell: sh /opt/logstash/bin/logstash -f /opt/logstash/config/logstashsample.conf
EOF

10.Logstash 程序主配置文件

cat > /root/install_elk/roles/log/templates/logstash.yml <<EOF
http.host: "0.0.0.0"
path.logs: /var/log/logstash/
EOF

11.Logstash 程序管道配置文件

cat > /root/install_elk/roles/log/files/logstash.conf <<EOF
#将本地的/var/log/yum.log内日志标准输入
input {
file {
path => "/var/log/yum.log"
type => "yum_log"
start_postion => "beginning"
}
}
#标准输出到elasticsearch中
output {
elasticsearch {
hosts => ["10.18.4.201:9200","10.18.4.202:9200","10.18.4.203:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
EOF

12.Logstash 程序进程管理模板文章来源地址https://www.toymoban.com/news/detail-529538.html

cat > /root/install_elk/roles/log/templates/logstash.service.j2 <<EOF

到了这里,关于Ansible 部署ELK集群服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ansible部署zookeeper和kafka集群

    节点 IP ansible 192.168.200.75 node1 192.168.200.76 node2 192.168.200.77 node3 192.168.200.78 基础环境配置就不过多赘述了 主机名、主机解析、免密访问、ansible下载、配置ansible主机、防火墙、selinux、配置centos2009镜像、配置ftp远程。均已配置 在ansible节点的/root目录下创建example目录,作为Ansib

    2024年02月09日
    浏览(34)
  • 【Ambari】Ansible自动化部署大数据集群

    目录 一.版本说明和介绍信息 1.1 大数据组件版本 1.2 Apache Components 1.3 Databases支持版本 二.安装包上传和说明 三.服务器基础环境配置 3.1global配置修改 3.2主机名映射配置 3.3免密用户名密码配置 3.4 ansible安装 四. 安装Ambari-server 4.1 安装ambari-server 4.2 检查REPO源 五、HDP 安装

    2024年04月15日
    浏览(54)
  • Ansible Playbook快速部署一主多从MySQL集群

    部署目标: 1、快速部署一套一主两从的mysql集群 2、部署过程中支持交互式定义安装目录及监听端口号 部署清单目录结构: 主机清单: 定义了需要部署mysql的主机组、IP及设定mysql主机角色 声明变量: 声明变量的好处在于用户可以按需改这一个文件,而不需要挨个儿修改部

    2024年02月13日
    浏览(26)
  • 基于ansible的自动化二进制模式部署高可用Kubernetes集群

    【说明】 本文档详细描述了在openEuler 22.03 LTS上通过ansible以二进制模式自动化部署高可用Kubernetes集群(适用k8s v1.26版本)。 本文档参考了小陈运维的ansible剧本,并进行了适当改造,使之适用于openEuler 22.03 LTS,并改用nginx实现高可用;仅采用containerd作为容器运行时;采用ca

    2024年02月08日
    浏览(80)
  • a24.ansible 生产实战案例 -- 基于kubeadm安装kubernetes v1.20 -- 集群部署(一)

    源码下载地址:https://github.com/raymond999999/kubernetes-ansible 角色 机器名 机器配置 ip地址 安装软件 ansible ansible-server.example.local 2C2G 172.31.3.100 ansible master1 k8s-master01.example.local 2C4G 172.31.3.101 chrony-client、docker、kubeadm 、kubelet、kubectl master2 k8s-master02.example.local 2C4G 172.31.3.102 chrony-clien

    2024年02月11日
    浏览(40)
  • 云计算赛项-私有云Ansible服务部署

    使用OpenStack私有云平台,创建 4台系统为centos7.9的云主机,其中一台作为 Ansible的母机并命名为 ansible,另外三台云主机命名为 node1、node2、node3;使用这一台母机,编写 Ansible脚本(在/root目录下创建 example目录作为 Ansible工作目录,部署的入口文件命名为 cscc_install.yaml ) , 对

    2024年02月15日
    浏览(27)
  • OpenStack Kolla-Ansible部署Octavia负载均衡服务

    书接上回 OpenStack Kolla-Ansible部署Swift文件存储 对接Ceph RadosGW,Proxmox 本章我们继续来完成OpenStack示例配置组件之Container Optimized中的Octavia负载均衡服务,OpenStack Kolla-Ansible部署Octavia负载均衡服务     Octavia 以服务的形式提供负载均衡。本指南涵盖了为 Amphora 驱动程序配置 Octa

    2024年02月06日
    浏览(27)
  • 使用ansible-app2k8s管理和部署服务到 kubernetes

    #1 介绍 使用 ansible 管理和部署服务到 kubernetes 适用于项目容器化,多套 k8s 环境的管理,可结合 CICD 工具做 DevOps 来自于项目实践,已部署多套 k8s 环境 自建 k8s 阿里云 ACK 腾讯云 TEK 华为云 CCE AWS EKS 微软云 AKS #2 主要功能 镜像构建并推送到镜像仓库 环境初始化(创建 namespace、储

    2024年02月10日
    浏览(45)
  • Ansible环境搭建,CentOS 系列操作系统搭建Ansible集群环境

    Ansible是一种自动化工具,基于Python写的,原理什么的就不过多再说了,详情参考:https://www.itwk.cc/post/403.html https://blog.csdn.net/qq_34185638/article/details/131079320?spm=1001.2014.3001.5502 HOSTNAME IP OS master.example.com 10.5.5.132 CentOS Stream 8 Mini Install node1.example.com 10.5.5.133 CentOS Stream 8 Mini Install n

    2024年02月14日
    浏览(82)
  • ansible(1)-- 部署ansible连接被控端

    目录 一、部署ansible 1.1 安装 1.2 测试连接 192.168.136.55 ansible 192.168.136.56 被控端 zabbix-s只是主机名,不用在意,更好该主机也安装了zabbix,不好更改。 下载阿里云epel源   被控端192.168.136.56生成的文件 ansible 自动安装,无需经过密码确认,ubantun、centos: 生产中使用ssh-copy-id复制

    2024年02月12日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包