何为自动化运维
公司的网络发展是从小到大一步一步发展而来,随着业务的发展,需要上线的服务越来越多,公司的服务器也随之越来越多,公司的主机管理也从之前手动单个管理转向机器的自动化管理.
所谓的自动化管理就是实现管理的专业化、标准化和流程化,简单的说,IT运维自动化是指基于流程化的框架,将事件与IT流程相关联,一旦被监控系统发生性能超标或宕机,会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制。自动化工作平台还可帮助IT运维人员完成日常的重复性工作(如备份、杀毒等),提高IT运维效率。同时,IT运维的自动化还要求能够预测故障、在故障发生前能够报警,让IT运维人员把故障消除在发生前,将所产生损失减到最低。
运维自动化工具
监控自动化,是指对重要的IT设备实施主动式监控,如路由器、交换机、防火墙等;
配置变更检测自动化,是指IT设备配置参数一旦发生变化,将触发变更流程转给相关技术人员进行确认,通过自动检测协助IT运维人员发现和维护配置。
维护事件提醒自动化,是指通过对IT设备和应用活动的时时监控,当发生异常事件时系统自动启动报警和响应机制,第一事件通知相关责任人。
系统健康检测自动化,是指定期自动地对IT设备硬件和应用系统进行健康巡检,配合IT运维团队实施对系统的健康检查和监控。
维护报告生成自动化,是指定期自动的对系统做日志的收集分析,记录系统运行状况,并通过阶段性的监控、分析和总结,定时提供IT运维的可用性、性能、系统资源利用状况分析报告。
一:zabbix
zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,,AIX,Free BSD,Open BSD,OS X等平台上。
二:zabbix试验拓扑图
zabbix的server端与agent端的通信
1)server端向agent采集数据
2)agent向server报告数据
3)server请求agent修改配置文件
4)server通过UDP协议的161端口跟agent通信
5)agent通过UDP协议的162端口跟server端通信.
zabbix组件
zabbix-server
zabbix-database
zabbix-web
zabbix-agent
zabbix-proxy
逻辑组件
主机组 ; 主机 ; item(监控项) ; graphs(监控图形) ; application(应用) ; trigger(触发器) ; event(事件); actions(执行)
三:zabbix安装配置
1)zabbix server所需要的组件
zabbix-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm (监控自己所需要的包组)
2)对于zabbix web端而言需要安装的组件有
yum -y installzabbix-web-2.4.0-1.el6.noarch.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
自动解决依赖关系
3)要使zabbix的server端显示在监视器上需要LAMP平台
四:启动zabbix前的配置操作
1)启动之前先重新启动一下HTTP服务.使其重新加载一下zabbix.conf配置文件.
2)安装mysql并创建用户并授权
CREATE DATABASE zabbix; mysql> GRANT ALL on zabbix.* TO 'zbxuser'@'172.16.%.%' IDENTIFIED BY '123'; GRANT ALL on zabbix.* TO 'zbxuser'@'node5' IDENTIFIED BY '123'; (给本机用户进行授权) mysql> FLUSH PRIVILEGES; (刷新授权)
3)导入Mysql数据文件(数据库初始化)
cd /usr/share/doc/zabbix-server-mysql-2.4.0/create mysql zabbix < schema.sql (依次导入) mysql zabbix < images.sql mysql zabbix < data.sql
4)编辑zabbix的主配置文件
vim /etc/zabbix/zabbix_server.conf DBHost=172.16.16.5(数据库地址) DBName=zabbix(数据库名字) DBUser=zbxuser(数据库用户名) DBPassword=123(数据库用户密码) DBSocket=/tmp/mysql.sock(当为本机数据库时启用为/tmp/mysql.sock)
5)在打开zabbix安装界面之前需要修改php时区
vim /etc/php.ini date.timezone = Asia/Chongqing
6)重启http使其配置文件生效.
7)打开安装配置界面导入数据库信息
8)登录管理员账号密码
passwd的密码是zabbix
9)进入管理员界面
三:安装zabbix agent
1)安装agent
yum -y install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm
2)配置zabbix agent的配置文件
vim /etc/zabbix/zabbix_agentd.conf
修改server,server段内填写zabbix server服务端的IP地址
修改serveractive
修改主机,此处的hostname要跟后面添加主机里的hostname一样
Hostname=node5
3)启动 zabbix-agent
service zabbix-agentd start
4)在zabbix-server端添加zabbix-agent主机
上图中的host name 规范填写方式是要和agent配置文件里的hostname保持一致.
选择监控模板
根据模板里select出来的选项选择正确的监控模板,点击ADD添加最后添加成功
5)查看监控数据
选择查看界面
选择查看选项
四:配置监控主机选项
1)配置agent端item
监控项item是zabbix服务器用于监控一个特定对象上的一个特定指标,并负责针对其收集相关监控数据.
每一个Item都有相应的类型.每一个item都有一个专用的key.每个key在全局都要保持唯一.
可以通过zabbix的官方文档查看item所有的key
获取一个key的方法
zabbix_get -s 172.16.16.1 -k 'system.uname'
在host主机监控项里选择Item项.
进如item项后选择右上角处的create item项进入item配置项
此处我们配置监控key为system.cpu.inter
配置item监控选项,这里我们配置cpu的中断次数,先通过cpuiter中断采样判断我们采样数据的趋势
根据采样的数据我们判断采样数据是递增的,所以采用单位时间内数值的变化量做为采样展示.
updata interval :采样时间间隔(采样频率)
new flexible interval interval :自己制定监控时间.
history storage period : 历史存放数据的天数
trend storage period :出现最大变化的数据,如最高值,最低值.及历史趋势的值.
OK 我们的item定义好了
2)定义Graphs
选择graphs后进入graphs选择右上角处的create graphs
进入配置界面勾选配置选项
第三步:会出现那些item需要监控,勾取即可,这里我们只定义了cpuinter,此处可以勾选多个选项在同一个图形界面里展示.
查看一下定义监控的结果
3)定义triggers
triggers主要是用来定义监控的合理阈值,定义该阀值的主要目的是为了为监控的选项提供报警.当监控的值超过了我们定义的阈值,就会触发报警机制.
triggers的阀值定义是根据触发器的表达式来定义的.触发器的表达式高度灵活,可以创建出非常复杂的测试条件
报警级别定义:
Not classified :不正确的
Information:有信息报告
Warning:警告
Average:
查看我们的触发是否出现
图中的那条虚线即为我们定义的报警线.
4)定义acction
定义邮件服务
因为这里连接不了互联网,采用本地邮件服务.localhost.发送邮件服务已经定义好了,下面来定义发送邮件的用户
定义发送邮件用户的名字
定义发送时间的级别
定义事件名字
定义报警条目
定定义报警方式
定义完毕后,ADD添加后,进行权限修改,不然收不到邮件
查看下报警时间是否已经成功执行
图中的Actions 里的OK 信息已经告诉我们时间执行成功.即邮件已经发送,来看下邮件信息.
说明已经成功收到邮件信息.