由于实际工作中所需要监控的服务器数量之大,人工监控耗时耗力,基于这种情况寻找可用于监控的服务器的开源软件,有三款推荐软件可使用:Cacti、Nagios、Zabbix
三款软件各自的特点如下:
Cacti:基于SNMP协议的监控软件,强大的绘图能力
Nagios:基于Agent监控,强大的状态查验与报警机制,插件极多,自己写监控脚本潜入到Nagios非常方便.
Zabbix:基于多种监控机制,支持分布式监控
前两种几年前用的比较广泛,现在公司基本上都是使用zabbix来监控物理服务器或者云服务器。zabbix通过C/S模式采集监控数据,并通过B/S模式实现web管理。zabbix-server通过SNMP或Agent采集数据并将数据写入MySQL,Oracle等数据库中,当然,存储时长可以自定义。相对来说使用比较简单,接下来言归正传,看下部署过程。
服务器安排:
zabbix-server:192.168.3.85
zabbix-agent: 192.168.3.200
Zabbix需要运行在LNMP环境上,首先我们在zabbix-server上部署LNMP环境(此处不再详细部署)
源码安装Nginx
安装php(解释器),php-mysql(连接数据库插件)
安装mariadb,mariadb-devel,mariadb-server(如果有专门的数据库服务器可在zabbix-server配置文件中调用)
安装php-fpm(php管理服务)
修改Nginx配置文件
配置Nginx支持PHP动态网站,因为有大量PHP脚本需要执行,因此还需要开启Nginx的各种fastcgi缓存,加速PHP脚本的执行速度
[root@zabbix-server ~]#vim /usr/local/nginx/conf/nginx.conf
http{
fastcgi_buffers 8 16k; //缓存php生成的页面内容,8个16k
fastcgi_buffer_size 32k; //缓存php生产的头部信息
fastcgi_connect_timeout 300; //连接PHP的超时时间
fastcgi_send_timeout 300; //发送请求的超时时间
fastcgi_read_timeout 300; //读取请求的超时时间
}
部署Zabbix
源码安装Zabbix Server
多数源码包都是需要依赖包的,zabbix也一样,源码编译前需要先安装相关依赖包
[root@zabbix-server lnmp_soft]# yum -y install net-snmp-devel curl-devel libevent-devel //安装相关依赖包
[root@zabbix-server /]# tar -xf zabbix-3.4.4.tar.gz
[root@zabbix-server /]