基于Ansible+Python开发运维巡检工具

开发目的

1.为了减少线上业务系统隐患,通过定期运维巡检,洞察网络、软件、业务状态是否正常,及时发现系统/业务安全隐患,对异常状态进行及时修复,以保证线上业务正常运行。
2.通过定期对线上业务进行主动巡检,识别并发现服务状态异常,并引导相关应急与排障动作。巡检工具通过使用Ansible自动检查每台机器的状态,并最终生成巡检报告。

工具架构图:
在这里插入图片描述

准备工作

1.创建巡检账号

如果不能使用root账号进行操作,可参考此步骤,如果有root账号,则忽略此步骤
在系统中创建一个巡检专用账号

# 创建账号,并设置账号密码
# useradd test && passwd test
# 输入并确认密码后创建成功

2.授予sudo权限

切换到root用户下,运行visudo命令
# visudo
# 找到包含一下内容的一行:
root  ALL=(ALL)   ALL
给test添加sudo权限
在”root ALL=(ALL) ALL”这一行下面,再加入一行,保存退出

test账号授权

3.账号测试

切换到普通用户
# su - test
# cd ~
# sudo mkdir test
使用sudo命令执行mkdir test,那么test目录是以root用户来创建的。
[test@VM-0-44-tlinux ~]$ ll
总用量 4
drwxr-xr-x 2 root root 4096 93 10:47 test

使用非root账号巡检说明:
执行巡检命令时,添加--become
# ansible-playbook -i hosts main.yml --become

4.下载巡检工具

上传至K8S集群 第一台Master节点软件程序目录下

巡检内容

在这里插入图片描述

巡检工具使用

解压缩包
# tar zxvf Automation_inspector.tar.gz

进入到巡检工具目录
# cd Automation_inspector/
# tree -L 2
.
├── ansible.cfg
├── file
│   ├── bzip2-1.0.6-13.el7.x86_64.rpm
│   ├── bzip2-devel-1.0.6-13.el7.x86_64.rpm
│   ├── bzip2-libs-1.0.6-13.el7.x86_64.rpm
│   ├── cpp-4.8.5-44.el7.x86_64.rpm
│   ├── gcc-4.8.5-44.el7.x86_64.rpm
│   ├── glibc-2.17-317.el7.x86_64.rpm
│   ├── glibc-common-2.17-317.el7.x86_64.rpm
│   ├── glibc-devel-2.17-317.el7.x86_64.rpm
│   ├── glibc-headers-2.17-317.el7.x86_64.rpm
│   ├── glibc-utils-2.17-317.el7.x86_64.rpm
│   ├── libffi-3.0.13-19.el7.x86_64.rpm
│   ├── libffi-devel-3.0.13-19.el7.x86_64.rpm
│   ├── libmpc-1.0.1-3.el7.x86_64.rpm
│   ├── mysql-community-client-5.7.23-1.el7.x86_64.rpm
│   ├── mysql-community-common-5.7.23-1.el7.x86_64.rpm
│   ├── mysql-community-libs-5.7.23-1.el7.x86_64.rpm
│   ├── Python-3.6.13.tgz
│   ├── zlib-1.2.7-18.el7.x86_64.rpm
│   └── zlib-devel-1.2.7-18.el7.x86_64.rpm
├── group_vars
│   └── all
├── hosts
├── main.yml
├── playbooks
│   ├── ceph_cluster.yml
│   ├── check_data_disk.yml
│   ├── compute.yml
│   ├── elasticsearch.yml
│   ├── etcd_client.yml
│   ├── harbor.yml
│   ├── kfk_client.yml
│   ├── mysql_client.yml
│   ├── platform.yml
│   ├── redis_client.yml
│   ├── k8s.yml
│   └── zookeeper_client.yml
├── README.md
└── roles
    ├── ceph_cluster
    ├── compute
    ├── data_disk
    ├── elasticsearch
    ├── etcd_client
    ├── gpu
    ├── harbor
    ├── kfk_client
    ├── mysql_client
    ├── platform
    ├── redis_client
    ├── k8s
    └── zookeeper_client

配置hosts文件,根据实际情况进行修改
# vim Automation_inspector/hosts
[all]
master ansible_host=xxxxxx
node_con02 ansible_host=xxxxxxx
node_con03 ansible_host=xxxxxx
#node_con04 ansible_host=
#node_con05 ansible_host=
#node_con06 ansible_host=
ceph_01 ansible_host=xxxxxx
ceph_02 ansible_host=xxxxxx
ceph_03 ansible_host=xxxxxx

[all:vars]
ansible_ssh_pass=xxxxxx
ansible_ssh_port=xxxx
ansible_ssh_user=xxxx

[component]
master
node_con02
node_con03

[ceph]
ceph_01
ceph_02
ceph_03

[gpu]
#node_con04 ansible_host=
#node_con05 ansible_host=
#node_con06 ansible_host=


执行所有巡检项
# ansible-playbook -i hosts main.yml

支持跳过部分巡检项,例如,不检查mysql
# ansible-playbook -i hosts main.yml --skip-tags=mysql

支持只巡检某部分巡检项,例如,只检查mysql
# ansible-playbook -i hosts main.yml --tags=mysql

巡检项支持多选,例如,同时检查mysql和redis
# ansible-playbook -i hosts main.yml --tags=mysql,redis

跳过巡检项支持多选,例如没有部署ceph和gpu,不检查ceph和gpu
# ansible-playbook -i hosts main.yml --skip-tags=ceph,gpu

支持的tag及其对应的检查项:
—— elasticsearch:elasticsearch组件
—— etcd: etcd组件
—— kafka: kafka组件
—— mysql:mysql组件
—— redis:redis组件
—— ceph:ceph组件
—— node:集群节点主机系统状态和docker、k8s组件
—— data_disk:检查主机磁盘空间使用情况
—— gpu:检查GPU节点的驱动和内存使用情况
—— k8s: 检查k8s平台

查看巡检报告

巡检结果文件输出在/data/ti-infra/log/inspector/

最新的report<日期>.txt文件即巡检详细结果,report_summary<日期>.txt文件即巡检summary结果。report_<日期>.tar.gz压缩包文件即上述报告的tar包,便于从服务器导出,查看巡检效果

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
自动化运维系统是一种通过自动化技术来管理和维护IT基础设施的系统。基于ansible的自动化运维系统设计与实现主要包括以下几个方面。 首先,需要进行系统架构设计。在设计阶段,需要考虑到使用ansible作为核心工具,搭建一个分布式的自动化运维系统。可以考虑采用主控节点和多个受控节点的架构,主控节点负责管理和调度各个受控节点执行任务。 其次,需要进行ansible环境的搭建和配置。为了保证系统的可靠性和高效性,需要在系统中搭建ansible的工作环境,并对ansible进行相关配置,以满足系统的自动化运维需求。 接着,需要设计系统的任务调度和执行机制。自动化运维系统通常需要定时执行一些常规任务,比如系统巡检、日志清理等。通过ansible的任务调度功能,可以对这些任务进行定时执行和监控。 最后,需要设计系统的监控与报警机制。在自动化运维系统运行过程中,需要对系统运行状态进行实时监控,并及时发现和处理异常情况。通过ansible的监控与报警机制,可以对系统进行全面监控,并在出现问题时及时进行报警和处理。 综上所述,基于ansible的自动化运维系统设计与实现需要考虑到系统架构、ansible环境的搭建和配置、任务调度和执行机制以及监控与报警机制等方面,以构建一个高效可靠的自动化运维系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻花之梦~~

谢谢老板的支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值