以往的面向服务的架构(SOA)是企业软件的一种主流架构,不但会想到Alibaba内部的SOA服务化治理方案核心框架Dubbo。通常与分布式的架构框架Zookeeper做到集群部署,其中Zookepper作为服务的注册中心(还有Redis注册中心等)用来注册服务和进行负载均衡;还有近来谈论比较多的微服务。
在我们实际项目中主要采用REST架构样式的微服务,Restful+微服务架构,这样的分布式集群部署。这样以来对于项目的部署和运维带来不少的工作。更重要的是项目的运行健康情况更是我们的关注点。因此,会考虑对这些服务实时监控运行状态,才能是我们的系统正常的运行,保证用户的体验。为此在这里介绍下一种监控工具Zabbix。
1. 关于Zabbix
Zabbix是一个企业级开源的分布式监控解决方案,用来监控、跟踪性能、网络服务的可用性,硬件设备和其他信息资源(CPU、内存等使用率)。它支持分布式、WEB界面可视化监控,自动发现等等,更多参考官网。
2. 安装Zabbix
这里仅以单机Zabbix为例。
Zabbix Server System:
操作系统:CentOS 7 64bit server
IP Address :192.168.2.128/24
主机名:bogon
首先让我我们从服务搭建开始。
2.1 预安装条件
安装Zabbix之前,我们应该初始化和配置LAMP(Linux+Apache+MySQL+PHP)环境。
在CentOS 7安装和配置LAMP Server参考链接:
http://www.cnblogs.com/candle806/archive/2011/03/14/1983992.html
或http://www.linuxidc.com/Linux/2015-09/123465.htm
搭建好LAMP环境继续。
2.2 服务端配置
Zabbix在CentOS中没有可用的安装源。因此我们将添加EPEL和Zabbix官方安装源为了安装Zabbix服务。
安装EPEL源,运行命令:
yum install epel-release
配置ZabbixZone 包源和GPG秘钥,命令:
增加资源库
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
用“rpm -Uv”来安装rpm包
rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm
接下来,安装Zabbix server 和 agent ,命令:
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-java-gateway
安装完成后,编辑文件/etc/httpd/conf.d/zabbix,命令:
vi /etc/httpd/conf.d/zabbix.conf
修改时区:
php_value date.timezone Asia
重启Apache服务,命令:
systemctl restart httpd
2.3 创建MySQL数据库和Zabbix用户
在命令行,登录MySQL:
mysql -u root -p
创建数据库名为:zabbixdb的数据库 和 用户名为:zabbixuser的用户。
此处,用命令行形式(也可使用可视化工具):
//创建数据库
create database zabbixdb character set utf8;
//创建用户
grant all privileges on zabbixdb.* to 'zabbixuser'@'localhost' identified by 'password';
//刷新权限
flush privileges;
详见:http://note.youdao.com/share/?id=03c39d3843a0b9815b92756e784fdbc2&type=note#/
2.4 初始化zabbix数据库
让我将下载的zabbix中的初始化sql导入到数据库中。此处以命令行方式依次导入(可使用可视化工具):
mysql -u zabbixuser -p zabbixdb < /usr/share/doc/zabbix-server-mysql-2.4.5/create/schema.sql
mysql -u zabbixuser -p zabbixdb < /usr/share/doc/zabbix-server-mysql-2.4.5/create/images.sql
mysql -u zabbixuser -p zabbixdb < /usr/share/doc/zabbix-server-mysql-2.4.5/create/data.sql
2.5 配置Zabbix 服务
编辑文件/etc/zabbix/zabbix_server.conf,命令:
vi /etc/zabbix/zabbix_server.conf
设置你以上创建的数据库名称,登录用户和密码。找到如下key,如果已注释,把注释去掉设置相应的值。
//数据库名称
DBName=zabbixdb
//用户名
DBUser=zabbixuser
//用户密码
DBPassword=your password
保存并退出!
到此,Zabbix服务已配置好。
接下来我们配置Zabbix服务自己的监听Agent。
为此,编辑文件/etc/zabbix/zabbix_agentd.conf,命令:
vi /etc/zabbix/zabbix_agentd.conf
编辑如下内容:
## Line 85 - 指定 Zabbix server ##
Server=127.0.0.1
## Line 126 - 指定 Zabbix server ##
ServerActive=127.0.0.1
## Line 137 - 指定 Zabbix server Hostname or IP address(此处我选择IP) ##
Hostname=192.168.2.128
保存退出!
2.6 调整PHP配置
我们应该调整php.ini文件,按照zabbix推荐设置参数。
编辑文件php.ini 命令:
vi /etc/php.ini
设置如下参数。如果不存在的话就添加。
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia
保存退出!
2.7 调整防火墙设置和SELinux设置
调整zabbix使用的端口号10050和10051允许防火墙访问。
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
重启防火墙服务使改变生效。
systemctl restart firewalld
如果你对SELinux有研究,可以做如下操作:
运行如下命令允许Apache和Zabbix能够通讯,命令:
setsebool -P httpd_can_connect_zabbix=1
由于对SELinux安全没有研究,没有调通。所以这里我直接将SELinux关闭,操作参考链接:http://note.youdao.com/noteshare?id=4e0a03bbe4599769afc1079298051805
2.8 使Zabbix web 在指定的IP范围内可访问
编辑文件/etc/httpd/conf.d/zabbix.conf,命令:
vi /etc/httpd/conf.d/zabbix.conf
添加ip范围能访问zabbix web 界面。如果设置“Allow from All”,那么任何网段均可访问。
此处,我设置均可访问。
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from 192.168.1.0/24
</Directory>
保存,退出!
重启zabbix,Apache服务或做成开机自动启动。
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl restart httpd
systemctl restart mariadb
systemctl enable zabbix-server
systemctl enable zabbix-agent
3. 配置Zabbix web控制台
以上我们完成了安装和配置的部分内容。接下来让我们配置zabbix web 控制台。
访问:http://ip-address/zabbix or http://domain-name/zabbix.
此处 http://192.168.2.128/zabbix
点击Next,
校验必备的先决条件。如果每项均ok,单击Next,否则返回安装必备的包。
选填数据名称,用户名,密码点击Test connection。如果填写完成正确值(数据库正常访问),这里就会显示ok信息。就可以单击Next继续。
填写你Zabbix Server的信息。单击Next。
预览填写的数据和zabbix server信息,如果一切填写ok,单击Next。
祝贺你,你已安装成功。单击Finish,完成安装。
现在,让我们重新访问Zabbix web.
默认登录用户名和密码是admin/zabbix
ok,登录进去后如下图:
到此,Zabbix 服务成功安装完成。
后续,在说下在监控机器上安装Agent配置以及如何配置监控。