物联网系统运维——Ansible自动化管理实践,Ansible部署及组件介绍,Ansible的安装(重点实验),zabbix安装(重点实验),创建本地源,搭建LAMP开启mysql的远程访问权限

一.Ansible介绍

1.Ansible简介

Ansible是一款基于Python开发的自动化运维的开源工具,主要是实现批量系统配置、批量程序部署、批量运行命令、批量执行任务等诸多功能。

2.Ansible优点

1.轻量级,无需在客户端安装agent ,更新时,只需在操作机_上进行一-次更新即可
2批量任务执行可以写成脚本,而且不用分发到远程就可以执行
3.使用python编写,维护更简单, ruby语法过于复杂
4.支持sudo

3.Ansible基本架构

二.Ansible部署及组件介绍

1.Ansible安装环境准备

Ansible控制主机系统可以是各种类UNIX操作系统,如Red Hat、Debian、 CentOS、OS X、BSD等 各种版本, Windows环境系统当前还不能作为控制主机。Ansible所在的控制主机需要的组件包括
Python 2.6或以上、paramiko模块、 PyYAML、 Jinja2、 httplib2.

2.安装Ansible

yum方式安装
Apt ( Ubuntu )安装方式pip方式安装

3.配置运行环境

1.配置Ansible环境。需要安装Python 2.4或以上版本。使用环境变量方式来配置,设置ansible.cfg配置 参数。 

2.使用公钥认证。Ansible 1.2.1之后的版本都默认启用公钥认证,采用SSH方式连接。
3.配置Linux主机SSH无密码访问。通过证书签名达到SSH无密码访问。使用ssh-keygen与ssh-copy-id来实现 快速证书的生成及公钥下发,其中ssh-keygen生产-对密钥 ,使用ssh-copy-id来下发生成的公钥。
4.测试Ansible

4.Ansible部署及组件介绍

三.Zabbix简介

Zabbix是一个企业级的、开源的、分布式的监控套件。Zabbix可以监控网络和服务的监控状况。

1.Zabbix特性

1.数据收集2.灵活的阀值定义
3.高级告警配置4.实时绘图 5.网络拓扑(network maps)
6.历史数据存储7.配置简单
8.模板使用9.网络自动发现 10.快速的web接口11.Zabbix API
12.权限系统 13.全特性、agent 易扩展14.具备应对复杂环境情况

2.zabbix架构及组件

Zabbix Server :负责接收agent发送的报告信息的核心组件,所有配置, 统计数据及操作数据均由其组织进行, C语言编写;
Database Storage :专用于存储所有配置信息以及由zabbix收集的数据; 

Web GUI : zabbix的web接口,通常与Server运行在同一台主机上,通常 被称为frontend , PHP语言开发;
Proxy可选组件,常用于分布监控环境中,代理Server收集部分被监控端的 监控数据并统一 发往Server端;
Agent :部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端。

3.Zabbix部署实验

1.Zabbix服务端安装

1.创建、导入zabbix数据库 2.添加zabbix用户 3.安装依赖包4.安装zabbix 5.添加zabbix服务对应的端口6.修改zabbix配置文件 7.添加开机启动脚本8.修改zabbix开机启动脚本中的zabbix安装目 录
9.配置web站点10.修改php配置文件参数11.安装web界面

2.Zabbix自动化监控案列

Zabbix监控Linux主机设置

1.在被监控的Linux主机,配置防火墙,开启10050、10051的TCP和UDP端口2.关闭SELINUX
3.下载Zabbix客户端4.安装Zabbix 5.添加zabbix服务对应的端口 6.修改Zabbix配置文件
7.添加开机启动脚本8 .测试Zabbix客户端与Zabbix服务端通信是否正常9.添加对Linux主机的监控

四.实验ansible的安装(重点)

1.环境准备

#系统采用CentOS7

#三台机子

#IP不限,自行决定,本测试使用:

#192.168.85.100  #(主控机)

删除的时候要找到原始文件

192.168.85.101 #(受授机)

192.168.85.102 #(受授机)

系统采用CentOS7

若没有wget命令,则先执行:yum -y install wget

#安装yum源

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

2.安装 Ansible

(1)安装 Ansible

yum install -y ansible

(2)验证ansible

ansible --version

#若ssh不通,则把防火墙和selinux都关闭

systemctl disable firewalld

#查看selinux状态

getenforce

(3)免密登录

ssh-keygen -t rsa  

回车 * 3

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.234.101 #(受授机)

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.234.102 #(受授机)

#设置成功后可以用测试下

ssh 192.168.234.101  

#退出

exit

 

(4)配置环境

export ANSIBLE_SUDO_USER=root

inventory=/etc/ansible/hosts/

library=/usr/share/my_modules/

forks=5

sudo_user=root

remote_port=22

host_key_checking=False

timeout=60

log_path=/var/log/ansible.log

(5)配置可控制机器

cp /etc/ansible/hosts /etc/ansible/hosts.backup

rm -rf /etc/ansible/hosts

vim /etc/ansible/hosts

##########复制这个,把受控的机器ip复制到这里##########

192.168.234.101

192.168.234.102

[webservers]

192.168.234.101

192.168.234.102

#############################

测试ping

ansible 192.168.234.101 -m ping

 

ansible webservers -m ping

ansible all -m ping

测试被控主机执行命令

cd $HOME

vi inventory.cfg

##########复制这个,受控机器IP##########

[webservers]

192.168.234.101

192.168.234.102

#############################

#测试连接情况

ansible webservers -m shell -a '/bin/echo hello ansible!' -i inventory.cfg

用ansible的command模块实现同样的结果

ansible webservers -m command -a '/bin/echo hello ansible!' -i inventory.cfg

测试利用ansible playbook在宿主机上创建文件

cd $HOME

vi touch.yml

##########复制这个,注意缩进!!!##########

---

- hosts: webservers

  tasks:

   - name: "make dir"

     command: mkdir /home/wutest

   - name: "creat file"

     command: touch /home/wutest/test.cfg

#############################

ansible-playbook touch.yml

测试完成!

###########################

五.zabbix安装(重点)

1.关闭防火墙和SELinux

(1)永久关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

(2)永久关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

2.设置节点主机名

hostnamectl set-hostname zabbix_server

3.设置本地源(离线安装需要)

(1)上传soft目录到目标主机/home下

(2)解压yum_repo.tar.gz到/yum目录

mkdir /yum

tar zxvf /home/soft/yum_repo.tar.gz -C /yum

(3)使用自定义yum,创建yum客户端配置文件

#备份

cp -r  /etc/yum.repos.d/  /etc/yum.repos.d.backup/

4.创建本地源

echo '[local-repo]

name = local repo for test

baseurl = file:///yum/repo/

enabled = 1

gpgcheck =0'>/etc/yum.repos.d/local-repo.repo

# 测试yum源是否可用

yum clean all

yum makecache

5.搭建LAMP

(1)安装软件

yum install -y httpd php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

安装psmisc用于执行killall

yum -y install psmisc

(2)安装后检查应用版本

rpm -qa httpd php

(3)编辑httpd

vim /etc/httpd/conf/httpd.conf

##########################################

ServerName www.huatec.com:80   

DirectoryIndex index.html index.php

####################################

(4)编辑配置PHP,中国时区

vim /etc/php.ini

###########################

date.timezone = PRC

############################

启动httpd服务并加入开机自启动

systemctl start httpd

systemctl enable httpd

#验证安装成功

#电脑端用浏览器输入ip,能正常访问

(需要保证没有安装过MYSQL)

6.使用yum安装mysql

yum -y install mysql-community-server

7.配置mysql

(1)首先启动MySQL

systemctl enable mysqld.service

systemctl start  mysqld.service

(2)查看默认密码

grep "password" /var/log/mysqld.log

Qd7&jC1f)wMb

(3)使用默认密码登录mysql

(上面显示的密码)

mysql -uroot -p

(4)重新设置一个好记的密码

(仅在实验环境使用简单密码)

set global validate_password_policy=LOW;

set global validate_password_length=6;

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

8.开启mysql的远程访问权限

grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

#刷新权限

flush privileges;

#创建zabbix数据库

CREATE DATABASE zabbix character set utf8 collate utf8_bin;     

GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';

flush privileges;

查看是否创建成功

select user,host from mysql.user;

#退出mysql

exit

#7.安装zabbix

#安装依赖包+组件

yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch  javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*

yum install php-bcmath php-mbstring -y

yum install zabbix-server-mysql zabbix-web-mysql -y  

创建表(需要改成自己的IP地址)

zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql -uzabbix -p'zabbix' -h 192.168.234.100 zabbix

查看是否创建成功

mysql -uroot -p123456

use zabbix;

show tables;

#修改配置文件

vim /etc/zabbix/zabbix_server.conf

#########################################

DBPassword=zabbix

StartDiscoverers=50

UnavailableDelay=360

StartTrappers=100

#########################################

#修改时区

vim /etc/httpd/conf.d/zabbix.conf

########################################

php_value date.timezone Asia/Shanghai

#######################################

#启动zabbix服务并加入开机自启动

systemctl enable zabbix-server

systemctl start zabbix-server

#重启httpd

systemctl restart httpd

#浏览器访问 http://ip/zabbix

#只需要在数据库的地方填正确的用户名和密码,其他的都选 next,直到配置完成(用户名密码都是zabbix)

#使用 U:Admin P:zabbix 登录

#修改为中文

rm -rf /usr/share/zabbix/assets/fonts/*

cp /home/soft/graphfont.ttf /usr/share/zabbix/assets/fonts/graphfont.ttf

#网页点右上角的小人,语言选中文

#查看zabbix运行日志信息

tail -f /var/log/zabbix/zabbix_server.log

如果显示

则做如下操作:

########################

vi  /etc/my.cnf

#增加或者修改

max_connections=1000

#重启数据库

systemctl restart  mysqld.service

新增最大连接数命令没去掉分号

#重启zabbix-server

systemctl restart zabbix-server

#重启httpd

systemctl restart httpd

##############################

Zabbix常见报错解决方案见:

https://cloud.tencent.com/developer/article/1489206?areaId=106001

#至此,zabbix-server安装完成

#安装zabbix-agent客户端

yum install zabbix-agent -y

#安装psmisc用于执行killall

yum install -y psmisc

#修改配置文件

vim /etc/zabbix/zabbix_agentd.conf

#############################

Server=192.168.234.100   #(zabbix_server所在IP)

ServerActive=192.168.234.100 #(zabbix_server所在IP)

##############################

#启动客户端,开机启动客户端

systemctl start zabbix-agent.service      

systemctl enable zabbix-agent.service

#查看启动日志

vim /var/log/zabbix/zabbix_agentd.log

 

#日志未报错为正常启动

##############################

#问题 : Zabbix agent on Zabbix server is unreachable for 5 minutes

#解决:

#在页面选择 配置-> 主机 -> Zabbix server

#修改 IP地址 为 192.168.85.105 #(zabbix_server所在IP)

#重启zabbix-agent

systemctl restart zabbix-agent.service

########################################

#验证

#测试CPU满载

chmod 777 /home/soft/testCPU.sh

/home/soft/testCPU.sh

#查看 监测->图形->CPU Load ,观察变化(持续2,3分钟)

#查看 监测->问题,点击重设,看是否报警

#测试内存占满

chmod 777 /home/soft/testMenery.sh

/home/soft/testMenery.sh

#查看 监测->图形->Menory usage ,观察变化(持续2,3分钟)

#查看 监测->问题,点击重设,看是否报警

#新增被监控主机

#安装zabbix-agent客户端

yum install zabbix-agent -y

#安装psmisc用于执行killall

yum install -y psmisc

#修改配置文件

vim /etc/zabbix/zabbix_agentd.conf

#############################

Server=10.0.0.14   #(zabbix_server所在IP)

ServerActive=10.0.0.14 #(zabbix_server所在IP)

##############################

#启动客户端,开机启动客户端

systemctl start zabbix-agent.service      

systemctl enable zabbix-agent.service

#查看启动日志

vim /var/log/zabbix/zabbix_agentd.log

#日志未报错为正常启动

#页面选 配置->主机->创建主机,填写容易识别的主机名,正确的客户机IP, 群组选Zabbix servers

->在大大的主机下面选模板->选择 ->Template OS Linux -> 无背景添加

-> 有背景添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杪商柒

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值