如果你是一位系统运维工程师,公司有几台服务器需要管理,那么你可能要问:我为什么要学习自动化运维,为什么要学zabbix,没有这些工具我一样做的很好。没错,但是如果你手头上的服务器不是几台,而是几十台、几百台、甚至几千台,试想,如果你要对所有服务器打个补丁或者删除一个文件,那你不可能一台台手工去做,不但效率低而且容易犯错,这个时候自动化运维工具将发挥重要作用。
对于监控软件本人曾经使用过cacti、nagios、zabbix,三款监控工具各有特点,但个人还是更喜欢zabbix,Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix由两部分构成,zabbix server与zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器进行监视,数据收集等功能,zabbix server可以跨平台部署在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等操作系统上。zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集,并可以在收到server的指令后运行本地脚本进行自我修复。同样zabbix agent也是可以跨平台部署。
Zabbix自2012年发布正式版2.0.2以来,因其具有安装配置简单、功能丰富、人机交互界面友好等特点一直受到世界广大运维人员的喜欢,在2018年12月推出了4.0版本。本文结合实际工作环境和经验,主要介绍下Zabbix3.0版本在centos7环境下的安装、部署,其他版本或者操作系统大同小异,在此不做全面介绍。
2.1、下载安装rpm包,也可以使用yum方式,zabbix在centos7上支持。
rpm -vhi http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-
release-3.0-1.el7.noarch.rpm
2.2、安装zabbix-server-mysql和zabbix-web-mysql,也可以使用yum方式安装。
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-
server-mysql-3.4.2-1.el7.x86_64.rpm
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-
web-mysql-3.4.2-1.el7.noarch.rpm
2.3、创建zabbix数据库,创建zabbix账号
mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
mysql> flush privileges;
2.4、导入默认的zabbix数据库信息
zcat /usr/share/doc/zabbix-server-mysql-3.0.12/create.sql.gz | mysql zabbix -uzabbix -pzabbix
2.5、修改zabbix_server.conf的配置文件
[root@linux-node2 ~]# grep ^DB /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
2.6、修改配置文件/etc/httpd/conf.d/zabbix.conf,时区改成 Asia/Shanghai
2.7、启动apache/zabbix-server服务并设置为开机启动
systemctl start httpd
systemctl enable httpd
systemctl start zabbix-server
systemctl enable zabbix-server
2.8、访问网站,例如:http://本机IP/zabbix;如果正常打开,那么恭喜你zabbix服务端已安装成功,具体配置在第四部分介绍。
3.1、agent安装rpm包,也可以使用yum安装
wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-
agent-3.2.9-1.el6.x86_64.rpm
rpm -Uvh zabbix-agent-3.2.9-1.el6.x86_64.rpm
3.2、编辑Zabbix Agent 配置文件
vim /etc/zabbix/zabbix_agentd.conf
Server=[zabbix server ip] (注:server端ip地址)
ServerActive=[zabbix server ip](注:server端ip地址)
Hostname=[ Hostname of client system ](注:agent端识别名)
3.3、启动Zabbix Agent
service zabbix-agent restart
下面介绍重要的步骤:zabbix的配置。
4.1、进入zabbix server的登陆后台http://ServerIP/zabbix。Zabbix·server的默认账号Admin 密码zabbix,为安全起见,首次登陆修改密码,如果有多人运维团队,可以设置不同权限的角色和账号。不熟悉英文的也可以切换成中文。下面简单介绍几个基本配置项目:添加一台主机、添加一个监控项、添加触发器、添加图形。当然实际情况不可能一台台主机如此创建,否则效率太低,一般先创建模板,再统一创建主机,或者启用自动发现,这里只是给初学者熟悉下基本配置项。
4.2、添加一台主机:点击配置-主机-创建主机
填入主机名字:如“web服务器1”
选择群组:当你有很多服务器时,为了管理方便需要把不同服务器分组,应先添加群组。
填入agent代理程序的接口:即受控服务器的IP地址(或域名),默认端口10050。
其他接口为不通过agent客户端软件监控的方式,SNMP接口、JMX接口、IPMI接口。
添加完主机过几分钟后查看主机列表,如果ZBX图标绿色表示和受控端正常通信了,如果红色或灰色则表示异常。如图—1
图—1
异常情况可以通过服务端输入命令zabbix_get进行连接测试,查看具体原因,比如是否被防火墙挡住。
4.3、添加一个监控项(Item)
监控项(Item)是Zabbix监控主机重要配置,没有监控项那么监控主机什么作用都发挥不了。点击主机列表中的监控项,后面括号中数字表示有几个监控项,现在没有则为(0)。进入监控项列表管理页,现在一条都没有,点击创建监控项,填入“名称”;类型为“Zabbix客户端”(其他类型视应用情况选择);打开键值选择,Zabbix自带检测器列表比较全,CPU、内存、磁盘、TCP连接等;这里举例选择net.tcp.listen[port](检查 TCP 端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听)。比如你把端口port改成80,这样你就可以监控主机的web页面是否正常了;信息类型、数据类型是监控结果的数值转换;
数据更新间隔默认30秒;历史数据是详细数据默认保存90天,趋势数据是差异趋势数据,可以保存长一点时间;应用集是可以把一组监控项分组到一个应用集中。
4.4、添加一个触发器(Trigger)
触发器顾名思义就是当主机出现异常时,达到设定的触发条件,比如上面的监控项达到一个阈值时候触发。触发后再配合后面介绍的报警机制、修复机制达到监控和自动化运维功能。
未完待续……