我们为什么需要监控?没有监控就将系统上线, 就是在耍流氓; 在生产环境中, 监控是必不可少的, 因为我们需要实时了解业务的运行状态, 并且将数据以图表的方式直观的展示出来, 甚至当服务出现故障还可以根据事先定义好的规则自动执行相应脚本, 从而实现自动恢复、转移等功能

常用的开源监控系统有哪些?运维工作就是大部分时候都是通过各种工具来让我们完成特定的任务, 监控也是如此, 目前也有很多开源的监控软件可供我们使用

常见的开源监控简单介绍Cacti: 通过snmpget来获取数据, 使用RRDTool来绘制图形, 使用PHP语言编写, 提供强大的数据展示功能, 但是在故障报警方面不是很擅长

Nagios: 异常强大的报警功能, 多节点监控、数据图形展示的功能薄弱, 因此经常整合Cacti来进行监控

Zabbix: 融合Cacti和Nagios的大部分功能, 通过WEB界面提供分布式的网络监控

Zabbix架构Zabbix是一款强大的开源分布式监控系统, 能够将SNMP、JMX、Zabbix Agent提供的数据通过WEB GUI的方式进行展示.

Zabbix有四个组件, Zabbix-Server, Zabbix-Agent, Zabbix-Web, zabbix-proxyZabbix-Server: 服务端, 通过C语言编写, 获取Zabbix-Agent端的数据并存储在数据库中

Zabbix-Proyx: 代理服务端收集数据并保存在本地的数据库中, 定期将数据提交给Zabbix-Server

Zabbix-Agent: 客户端, 通过C语言编写, 收集定义的item的数据, 定期发给服务端在不同工作模式下、也可能是服务器主动收集

Zabbix-Web: Web-GUI结构, 可以运行在任意主机中, 连接Zabbix-Server并将数据库中的内容在前端展示

Zabbix的安装和配置

搭建一个lamp环境[root@node6 ~]# yum install httpd mysql-server php-mysql php -y --nogpgcheck
使用阿里云的Zabbix_yum和epel仓库[root@node6 ~]# yum-config-manager --add-repo="http://mirrors.aliyun.com/zabbix/zabbix/2.4/rhel/6/x86_64/"  #添加yum仓库
安装Zabbix-Server[root@node6 ~]# yum install zabbix zabbix-server zabbix-server-mysql zabbix-get zabbix-sender zabbix-web-mysql zabbix-web -y --nogpgcheck

配置mysql数据库mysql> GRANT ALL ON zabbix.* TO zbxuser@'%' IDENTIFIED BY 'passwd';

mysql> CREATE DATABASE zabbix;

#导出zabbix默认的数据表

[root@node6 ~]# mysql zabbix 
[root@node6 ~]# mysql zabbix 
[root@node6 ~]# mysql zabbix 
配置php时区[root@node6 ~]# vim /etc/php.ini  #设置时区为某个地区
date.timezone = Asia/Shanghai

配置zabbix-server[root@node6 ~]# vim /etc/zabbix/zabbix_server.conf   #修改下面两项

DBName=zabbix
DBPassword=passwd
DBHost=172.16.1.7
启动并进入web-gui初始化[root@node6 ~]# service zabbix-server start
[root@node6 ~]# service httpd start

启动后一定要看一下端口是否监听, 如果没有监听, 查看/var/log/zabbix/zabbix-server.log是否有错误记录

右击新标签页打开查看大图

安装agent[root@node6 ~]# yum install zabbix-agent -y

配置agent[root@node6 ~]# vim /etc/zabbix/zabbix_agentd.conf  ##我这里是监控本机, 其实不用修改配置文件,如果是其他节点需要监控, 则需要按如下配置

Server=127.0.0.1,172.16.1.7
ServerActive=127.0.0.1,172.16.1.7
Hostname=node6.anyisalin.com

启动agent并测试[root@node6 ~]# service zabbix-agent start

右击新标签页打开查看大图

总结我们轻松的实现了Zabbix-Server和Zabbix-Agent. 尽管我没有将它们分离开来, 但是效果已经达到了, 关于Zabbix的更多文章,还会继续写


作者: AnyISaIln