一.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 -> 无背景添加
-> 有背景添加