Zabbix Enterprise Application PlatformV2.2.5 安装及配置 Linux版
第 1 章 Zabbix EAP部署总体规范
Zabbix具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)。
支持自动发现网络设备和服务器,支持分布式,能集中展示、管理分布式的监控点,扩展性强,server提供通用接口,可以自己开发完善各类监控。
1.1 术语
Server:指安装zabbix服务的服务器(以下简称服务器端),是最重要的部份,主要安装在linux系统上(支持多种操作系统),采用mysql存储监控数据并使用apache+php的方式呈现。
Agent :指安装在被监控设备上的zabbix代理(以下简称代理),被监控设备上的数据由代理收集后统一上传到服务器端由服务器端收集、整理并呈现。
SNMP :也是agent的一种,指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。
IPMI :Agent的另一种方式,主要应用于设备的物理性能监控,例如设备的温度、风扇的转速等。
1.2 命名规范
命名的基本规则是:大小写混合,单词首字母大写,其余小写;缩写字母全部大写。
名称 | 命名规范(***代表系统名称或简称,最后字母X代表编号,可扩展到2位) | 示例 |
Node名 | zabbixXXX | zabbixsvr |
概要文件名 | ***ProfileX | |
群组名(集群) | ***GroupX. | |
服务器名 | ***GroupXSX | |
用户名 | ***userX | |
定制的操作程序名 | ***AppXX |
数字从1开始计数,数字前不加0。
1.3 部署架构
zabbix_server的集群由主备2个节点构成,故zabbix server和mysql server还在同一台虚拟机中,mysql服务是双活的,即备节点会从主节点同步mysql的binarylog。集群管理的资源有IP address、httpd以及zabbix_server、mysqld(mysqld是双活的,集群切换只会影响写binlog的mysql主备节点地位,实际上备机上也有mysql进程的行为)。
zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如图所示。
- 系统容量在超过100,000个监控项后,采取proxy的架构,如图所示。
1.4 IP地址规划
zabbix_server集群系统的IP地址规划如表所示。
节点类型 | IP地址规划 | 主机名 | 类型 |
主用节点(A服务器) | eth0:192.168.239.135/24 | zabbixsvr | Public IP |
备用节点(B服务器) | eth0:192.168.239.136/24 | zabbixweb | Public IP |
192.168.239.133 | Float IP(VIP) |
- 规划的IP地址请以实际使用的IP为准。
- 需要注意0.0.1一栏不要有除localhost外机器名。/etc/hosts文件中不能含有“*”,“^”,“&”等特殊符号,并且不能有无效行和IPv6相关的地址,以下为错误输入行示例(请注意避免包含下列内容)。
- ::1/ fe00::0/ Hostname
- 配置每个节点的/etc/hosts文件,保证两个节点内容一致,/etc/hosts文件内容如下所示。
192.168.239.135 zabbixsvr
192.168.239.136 zabbixweb
1.5 容量与配置规划
通过测试,确定不同的系统容量下zabbix_server的配置,目标是确保zabbix_server在提供zabbix服务时CPU占用不多于70%,内存占用不多于1GB, 磁盘空间76GB可以满足一年的运行日志记录需求。
通过实验表明,50000个监控项(假定每个主机的监控项数目100个,即有500个被监控主机)的资源,zabbix_sever主机的CPU占用在60-70%,内存在1.2GB左右,运行2周磁盘opt占用1.5GB,一年估计为40GB。
节点类型 | CPU配置 | 内存配置 | var | / | opt | home | boot |
zabbix_server | 4核 | 8GB | 40GB | 20GB | 5GB | 10GB | 1GB |
1.6 与事件平台的接口
招行的事件来自不同的事件源,并根据事件的采集方式由不同的集成模块进行集成。针对通用协议的探针,有Syslog探针和MTTrappd探针,各事件源可分别采用这两种通用协议发送告警事件到综合事件管理平台。
采用syslog接口与CMB的事件平台对接,有关syslog的格式参考zabbix系统架构设计文档。
第 2 章 软件安装
若无特别声明,则两台服务器都需要执行以下操作。
2.1 准备工作
2.1.1 安装介质准备
- 存放安装介质的文件系统/opt,需预留10G空间。
- Bin模式下通过FTP上传如下安装介质到/opt/zabbix目录中(介质包名可能与示例有差异)。
Red Hat Enterprise Linux Server release 6.4(linux系统版本)
zabbix-2.2.5.tar.gz(zabbix源码安装包)
zabbix-server-2.2.5-1.el6.x86_64.rpm(zabbix server端安装包)
zabbix-agent-2.2.5-1.el6.x86_64.rpm(zabbix client端安装包)
mysql-5.1.66-2.el6_3.x86_64.rpm(zabbix server端使用的数据库安装包)
httpd-2.2.15-26.el6.x86_64.rpm(Apache HTTPD Server安装包)
php-5.3.3-22.el6.x86_64.rpm (PHP安装包)
- 通过如下命令解压相关介质
# tar xf zabbix-2.2.5.tar.gz
2.1.2 修改zabbix server主机名
- 执行以下命令,修改zabbix server主机名,以主节点为例进行描述。
# hostname Zabbixsvr
# vi /etc/sysconfig/network
修改为如下格式:
NETWORKING=yes
HOSTNAME=zabbixsvr
2.1.3 同步授时中心时间
- 执行以下命令,同步授时中心的时间,强制把系统时间写入CMOS。
# ntpdate pool.ntp.org
# clock -w
这里描述的系统时间,是由linux操作系统维护的。在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS。
- 执行以下命令,创建定时任务。
每天凌晨、6点、12点和18点与授时中心同步时间,并将结果保存至/var/log/ntpdate.log文件中。
# crontab -u root -e
输入如下内容:
0 0,6,12,18 * * * /usr/sbin/ntpdate pool.ntp.org >> /var/log/ntpdate.log
内容输入完成后,按Esc键退出编辑状态,在输入:wq保存退出。
- 执行以下命令,检查root用户的cron配置状态。
# crontab -u root -l
回显如下内容,表示cron配置正常。
0 0,6,12,18 * * * /usr/sbin/ntpdate pool.ntp.org >> /var/log/ntpdate.log
- 执行以下命令,检查cron服务的状态。
# chkconfig --list crond
回显如下内容,表示cron服务配置正常。
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- (可选)linux下防火墙规则如果极严格的话可能会影响 ntpd 对时,打开 port 123 即可(假设 OUTPUT链全 ACCEPT):
# iptables -A INPUT -p udp --sport 123 -j ACCEPT
2.1.4 网卡服务配置
- 执行以下命令,停止NetworkManage对网卡的控制。
# /etc/init.d/NetworkManager stop
# chkconfig NetworkManager off
2.1.5 禁用SELINUX
- 执行以下命令,切换selinux到permissive模式。
# setenforce 0
- 执行以下命令,禁用selinux。
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
备注:
设置SELinux 成为enforcing模式
setenforce 1
设置SELinux 成为permissive模式
setenforce 0
2.1.6 创建两台服务器的信任关系
A服务器:
- 执行以下命令,创建秘钥文件及认证文件。
# ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ""
# cd /root/.ssh/
# cp id_rsa.pub authorized_keys
- 执行以下命令,拷贝秘钥文件到服务器B。
# scp id_rsa id_rsa.pub 192.168.239.136:/root/.ssh/
B服务器:
- 执行以下命令,创建秘钥文件及认证文件。
# cd /root/.ssh/
# cp id_rsa.pub authorized_keys
2.2 建立LAMP环境
2.2.1 使用安装光盘创建本地yum源
- 执行以下命令,卸载已挂载的光盘;若没有挂载光盘,请跳过此步骤。
# umount /dev/sr0
- 执行以下命令,挂载linux安装光盘。
# mount /dev/sr0 /media
- 执行以下命令,讲挂载点写入配置文件。
# echo "/dev/sr0 /media iso9660 defaults 0 0" >>/etc/fstab
- 执行以下命令,创建yum配置文件。
# vi /etc/yum.repos.d/rhel6.repo
输入如下内容:
[base]
name=base
baseurl=file:///media/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
内容输入完成后,按Esc键退出编辑状态,在输入:wq保存退出。
2.2.2 安装LAMP
- 执行以下命令,安装httpd、mysql和php。
# yum -y install httpd mysql-server php
- 执行以下命令,安装相关依赖包。
# yum install -y gcc mysql-devel net-snmp-devel net-snmp-utils php-gd php-mysql php-common php-xml curl-devel OpenIPMI libssh2 unixODBC unixODBC-devel mysql-connector-odbc openldap openldap-devel java java-devel
# cd /opt/zabbix/
# rpm -ivh php-bcmath-5.3.3-22.el6.x86_64.rpm php-mbstring-5.3.3-22.el6.x86_64.rpm iksemel-1.4-2.el5.x86_64.rpm fping-2.4b2-7.el5.kb.x86_64.rpm
- 执行以下命令,配置mysqld服务随系统启动。
# chkconfig mysqld on
httpd服务由RHCS启动。
2.2.3 创建mysql数据库root用户密码
A服务器:
- 执行以下命令,启动mysqld服务,并修改mysql 的root用户密码。
# /etc/init.d/mysqld start
# /usr/bin/mysqladmin -u root password admin123
# /usr/bin/mysqladmin -u root -h zabbixsvr password admin123
- 此处的mysql root密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
- 注意替换主机名。
B服务器:
- 执行以下命令,启动mysqld服务,并修改mysql 的root用户密码。
# /etc/init.d/mysqld start
# /usr/bin/mysqladmin -u root password admin123
# /usr/bin/mysqladmin -u root -h zabbixweb password admin123
- 此处的mysql root密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
- 注意替换主机名。
2.2.4 创建zabbix数据库
A服务器:
- 执行以下命令,创建zabbix数据库,并设置字符为utf8。
# /usr/bin/mysql -uroot -padmin123
> create database zabbix character set utf8;
> grant all privileges on zabbix.* to 'zabbix'@'192.168.239.135' identified by 'admin123';
> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'admin123';
> grant all privileges on zabbix.* to 'zabbix'@'zabbixsvr' identified by 'admin123';
- 此处的mysql zabbix密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
- 在实际的生产环境中,请以实际使用的ip地址替换以上命令使用的ip地址。
- (可选)执行以下命令,开启zabbix用户远程连接权限。
> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'admin123';
- 执行以下命令,退出mysql数据库。
> quit
zabbix数据库可以和zabbix服务器分离,采用后端数据层的mysql服务器存储数据提高安全,本例因实体机仅有二台,故zabbix server和mysql server在同一台物理机中。
B服务器:
- 执行以下命令,创建zabbix数据库,并设置字符为utf8。
# /usr/bin/mysql -uroot -padmin123
> create database zabbix character set utf8;
> grant all privileges on zabbix.* to 'zabbix'@'192.168.239.136' identified by 'admin123';
> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'admin123';
> grant all privileges on zabbix.* to 'zabbix'@'zabbixweb' identified by 'admin123';
- 此处的mysql zabbix密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
- 在实际的生产环境中,请以实际使用的ip地址替换以上命令使用的ip地址。
- (可选)执行以下命令,开启zabbix用户远程连接权限。
> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'admin123';
- 执行以下命令,退出mysql数据库。
> quit
zabbix数据库可以和zabbix服务器分离,采用后端数据层的mysql服务器存储数据提高安全,本例因实体机仅有二台,故zabbix server和mysql server在同一台物理机中。
第 3 章 mysql数据库双主同步配置说明
3.1 服务器A、B的ip地址
服务器A:192.168.239.135
服务器B:192.168.239.136
3.2 备份zabbix数据库
A服务器:
- 执行以下命令,备份服务器A的mysql数据库数据。
# mysqldump -h localhost -u root -padmin123 zabbix >/var/lib/mysql/mysqldata_dump_all.sql
此处的mysql zabbix密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
3.3 分别在两台服务器上建立同步用户
- 执行以下命令,设置数据库同步帐户。
服务器A:
# mysql -uroot -padmin123
> grant replication slave,file on *.* to 'sync'@'192.168.239.136' identified by 'admin123';
> flush privileges;
服务器B:
# mysql -uroot -padmin123
> grant replication slave,file on *.* to 'sync'@'192.168.239.135' identified by 'admin123';
> flush privileges;
- 执行以下命令,查看已建立的同步账户。
> use mysql
> select user,host from user;
- 此处的mysql zabbix密码以sync为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
- 在实际的生产环境中,请以实际使用的ip地址替换以上命令使用的ip地址。
- 执行以下命令,退出服务器A和B的mysql数据库。
> quit
3.4 停止两台服务器的mysql服务
A服务器:
- 执行以下命令,停止mysql服务。
# /etc/init.d/mysqld stop
B服务器:
- 执行以下命令,停止mysql服务。
# /etc/init.d/mysqld stop
3.5 修改服务器的数据库配置文件/etc/my.cnf
A服务器:
- 执行以下命令,配置服务器A的/etc/my.cnf文件。
# vi /etc/my.cnf
在user=myql后添加以下参数:
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
server-id = 1
master-connect-retry=30
binlog-do-db=zabbix
replicate-do-db=zabbix
binlog-ignore-db=mysql
replicate-ignore-db=mysql
binlog-ignore-db=test
replicate-ignore-db=test
binlog-ignore-db=largedate
replicate-ignore-db=largedate
binlog-ignore-db=information_schema
replicate-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=performance_schema
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
- server-id默认为1,一般主从同步中,主服务器server-id为1,双主同步原则上两台同步服务器server-id不同即可。
- 在同一个网络中,可能存在多个mysql cluster。因此,在设置server-id的值时,建议使用当前服务器的物理IP作为其值进行设置。
B服务器:
- 执行以下命令,配置服务器B的/etc/my.cnf文件。
# vi /etc/my.cnf
在user=myql后添加以下参数:
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
server-id = 2
master-connect-retry=30
binlog-do-db=zabbix
replicate-do-db=zabbix
binlog-ignore-db=mysql
replicate-ignore-db=mysql
binlog-ignore-db=test
replicate-ignore-db=test
binlog-ignore-db=largedate
replicate-ignore-db=largedate
binlog-ignore-db=information_schema
replicate-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=performance_schema
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2
3.6 启动两台服务器的mysql服务
A服务器:
- 执行以下命令,启动mysql服务。
# /etc/init.d/mysqld start
B服务器:
- 执行以下命令,启动mysql服务。
# /etc/init.d/mysqld start
3.7 保持两台服务器mysql数据库的数据一致
A服务器:
- 执行以下命令,将服务器A备份数据拷贝到服务器B。
# scp /var/lib/mysql/mysqldata_dump_all.sql 192.168.239.136:/var/lib/mysql/
在实际的生产环境中,请以实际使用的ip地址进行替换。
B服务器:
- 执行以下命令,将备份数据恢复到服务器B。
# cd /var/lib/mysql/
# chown mysql.mysql mysqldata_dump_all.sql
# mysql -uroot -padmin123 <mysqldata_dump_all.sql
3.8 登录两台服务器的mysql数据库,锁住数据库表
A服务器:
- 执行以下命令,锁住mysql数据库表。
# mysql -uroot -padmin123
> flush tables with read lock\G
B服务器:
- 执行以下命令,锁住mysql数据库表。
# mysql -uroot -padmin123
> flush tables with read lock\G
3.9 登录mysql数据库查看服务器A、B作为主服务器的状态
A服务器:
- 执行以下命令,查看服务器A的状态。
# mysql -uroot -padmin123
> show master status;
回显以下类似信息:
+------------------+----------+--------------+------------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------------------------------------------------+
| mysql-bin.000002 | 106 | zabbix | mysql,test,largedate,information_schema,performance_schema |
+------------------+----------+--------------+------------------------------------------------------------+
B服务器:
- 执行以下命令,查看服务器B的状态。
# mysql -uroot -padmin123
> show master status;
回显以下类似信息:
+------------------+----------+--------------+------------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------------------------------------------------+
| mysql-bin.000002 | 106 | zabbix | mysql,test,largedate,information_schema,performance_schema |
+------------------+----------+--------------+------------------------------------------------------------+
- 执行以下命令,退出服务器A和B的mysql数据库。
> quit
此处的mysql root密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
3.10 分别在两台服务器上设置并启动slave
A服务器:
- 执行以下命令,登录服务器A的mysql数据库设置slave参数。
# mysql -uroot -padmin123
> unlock tables;
> slave stop;
> change master to
-> master_host='192.168.239.136', //服务器B的IP地址
-> master_user='sync', //服务器B的数据库同步账号
-> master_password='admin123', //服务器B的数据库同步账号密码
-> master_log_file='mysql-bin.000001', //服务器B中查看作为主服务器状态时显示的File
-> master_log_pos=106; //服务器B中查看作为主服务器状态时显示的Position
> start slave;
此处的mysql root密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
B服务器:
- 执行以下命令,登录服务器B的mysql数据库设置slave参数。
# mysql -uroot -padmin123
> unlock tables;
> slave stop;
> change master to
-> master_host='192.168.239.135', //服务器A的IP地址
-> master_user='sync', //服务器A的数据库同步账号
-> master_password='admin123', //服务器A的数据库同步账号密码
-> master_log_file='mysql-bin.000001', //服务器A中查看作为主服务器状态时显示的File
-> master_log_pos=106; //服务器A中查看作为主服务器状态时显示的Position
> start slave;
此处的mysql root密码以admin123为例进行说明,在实际的生产环境中,请以实际使用的密码进行替换。
3.11 分别在两台服务器上检查mysql主从设置状态
- 执行以下命令,检查mysql主从设置状态。
# mysql -uroot -padmin123
> show slave status \G;
- 查看slave状态,其中Slave_IO_Running和Slave_SQL_Running均为Yes即说明同步启动成功。
- 如果出现Slave_IO_Running: No或启动slave出现Could not initialize master info structure;的错误,分别在两个服务器上重新设置并启动slave。
- 如果出现Last_IO_Error: error connecting to master 'sync@10.1.1.2:3306' -retry-time: 30 retries: 86400的错误,请检查防火墙配置。
Ø附录:
Ø在mysql中可通过以下命令来查看主从状态
l查看master状态
show master status;
l查看slave状态
show slave status;
l查看当前进程
show processlist G;
l停止slave进程
stop slave;
l开始slave进程
start slave;
l重置slave进程
reset slave;
第 4 章 zabbix安装部署
4.1 zabbix server安装部署
zabbix server版本为:2.2.5-1
4.1.1 新建zabbix组和用户
# groupadd zabbix -g 201
# useradd -g zabbix -u 201 -m zabbix
4.1.2 安装zabbix
- 执行以下命令,安装zabbix。
# rpm -ivh zabbix-2.2.5-1.el6.x86_64.rpm zabbix-server-2.2.5-1.el6.x86_64.rpm zabbix-get-2.2.5-1.el6.x86_64.rpm zabbix-server-mysql-2.2.5-1.el6.x86_64.rpm zabbix-agent-2.2.5-1.el6.x86_64.rpm zabbix-sender-2.2.5-1.el6.x86_64.rpm
4.1.3 导入zabbix数据库数据。
此章节仅需要在服务器A执行,服务器B自动同步服务器A的数据。
- 执行以下命令,从zabbix源码包将zabbix数据库数据导入zabbix数据库。
# cd /opt/zabbix/
# tar xf zabbix-2.2.5.tar.gz
# cd /opt/zabbix/zabbix-2.2.5/database/mysql/
# mysql -uzabbix -h 192.168.239.129 -padmin123 zabbix < schema.sql
# mysql -uzabbix -h 192.168.239.129 -padmin123 zabbix < images.sql
# mysql -uzabbix -h 192.168.239.129 -padmin123 zabbix < data.sql
在实际的生产环境中,请以实际使用的ip地址替换以上命令使用的ip地址。若为HA环境,请使用VIP替换。
4.1.4 配置zabbix启动脚本
- 执行以下命令,从zabbix源码包将zabbix启动脚本拷贝到/etc/init.d/目录下。
# cd /opt/zabbix/zabbix-2.2.5/misc/init.d/fedora/core/
# cp zabbix_* /etc/init.d
- 执行以下命令,修改zabbix启动脚本的权限。
# chmod 755 /etc/init.d/zabbix_*
- 执行以下命令,修改zabbix启动脚本的参数配置。
# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr#g" /etc/init.d/zabbix_server
# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr#g" /etc/init.d/zabbix_agentd
- 执行以下命令,添加zabbix启动脚本的开机启动服务。
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig --level 345 zabbix_server off
# chkconfig --level 345 zabbix_agentd on
Zabbix_server由RHCS拉起。
- 执行以下命令,检查zabbix的开机启动项。
# chkconfig --list |grep zabbix
4.1.5 配置zabbix服务端的zabbix_server.conf文件。
- 执行以下命令,配置conf文件。
# vi /etc/zabbix/zabbix_server.conf
以下为相关参数修改建议:
# egrep -v "(#|^$)" /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix //主要参数,请按实际填写
DBUser=zabbix //主要参数,请按实际填写
DBPassword=admin123 //主要参数,请按实际填写
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306 //主要参数,请按实际填写
SNMPTrapperFile=/var/log/snmptt/snmptt.log
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
StartPollers=150
StartTrappers=30
StartPingers=100
StartDiscoverers=120
MaxHousekeeperDelete=5000
CacheSize=1024M
StartDBSyncers=16
HistoryCacheSize=1024M
TrendCacheSize=1024M
HistoryTextCacheSize=512M
LogSlowQueries=1000
4.1.6 配置zabbix服务端的zabbix_agentd.conf文件。
- 执行以下命令,配置conf文件。
# mkdir -p /etc/zabbix/zabbix_agentd.conf.d/
# vi /etc/zabbix/zabbix_agentd.conf
以下为相关参数修改建议:
# egrep -v "(#|^$)" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
EnableRemoteCommands=0
Server=127.0.0.1,192.168.239.135,192.168.239.136 //此处添加服务端IP地址,若本机不是服务端,则需要填写zabbix server的IP地址
ServerActive=127.0.0.1:10051,192.168.239.135:10051,192.168.239.136:10051 //此处需要修改为服务端的IP地址
Hostname=zabbix2
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/ //自定义的agentd配置文件可以写在此目录下
Include=/etc/zabbix/zabbix_agentd.conf.d/ //同上
UnsafeUserParameters=1 //若要自定义Key,需要设置此参数值为1,默认为0
- 工作模式:Server采用被动工作模式;ServerActive采用主动工作模式。
- 在实际的生产环境中,请以实际使用的ip地址替换以上参数使用的ip地址。
4.1.7 WEB相关配置。
- 执行以下命令,配置web。
# mkdir -p /var/www/html/zabbix
# cp -a /opt/zabbix/zabbix-2.2.5/frontends/php/* /var/www/html/zabbix/
# chown -R zabbix.zabbix /var/www/html/zabbix/
- 执行以下命令,修改ini文件。
# vi /etc/php.ini
修改以下配置项的值。
date.timezone = Asia/Shanghai
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
- 执行以下命令,启动httpd服务。
# /etc/init.d/httpd start
4.1.8 通过WEB页面配置zabbix。
- 在浏览器输入:http://<本机IP地址>/zabbix,出现如图所示,单击Next。
- 继续单击Next。
- 出现如图所示,请按表格的描述填写,并单击Test connection进行测试mysql数据库是否可以正常连接,测试完成后,单击Next。
名称 | 值 | 备注 |
Database host | 填写本机IP | |
Database port | 3306 | |
Database name | zabbix | |
User | zabbix | |
Password | 填写User的密码 |
- 出现如图所示,请按表格的描述填写,单击Next。
名称 | 值 | 备注 |
Host | 填写本机IP | |
Port | 10051 | |
Name | Zabbix本机主机名 |
- 继续单击Next。
如果出现提示文件zabbix.conf.php无法创建,则是zabbix目录无法写入,/var/www/html/zabbix的权限不为apache.apache。
解决方法一:点击“Download configuration file”,将下载的zabbix.conf.php文件上传到服务器的/var/www/html/zabbix/conf/zabbix.conf.php去然后点击“Retry”就不会有Fail了。
解决方法二:输入以下命令也可解决。
chown -R apache.apache /var/www/html/zabbix
- 单击Finish完成安装,出现如图所示。
默认的用户名为admin,密码为zabbix。
4.2 zabbix agent安装部署
4.2.1 安装zabbix agent。
- 执行以下命令,在zabbix服务端创建以下目录。
# mkdir -p /tmp/zabbix/3rdpackages
# mkdir -p /tmp/zabbix/conf
- 执行以下命令,在zabbix服务端生成properties文件。
# vi /tmp/zabbix/conf/common.properties
输入所有zabbix agent的IP地址,格式如下:
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
- 文件中一行只输入一个IP地址。
- 每一行不允许存在空格。
- 输入完成后,按Esc键退出编辑状态,并输入:wq保存退出。
- 将zabbix agent安装包上传到/tmp/zabbix/3rdpackages目录下。
以下为zabbix agent所需安装包的名称:
zabbix-2.2.5-1.el6.x86_64.rpm
zabbix-agent-2.2.5-1.el6.x86_64.rpm
zabbix-sender-2.2.5-1.el6.x86_64.rpm
zabbix-get-2.2.5-1.el6.x86_64.rpm
- 将zabbix agent安装脚本sh上传到/tmp/zabbix目录下。
- 执行以下命令,安装zabbix agent。
# cd /tmp/zabbix/
# chmod 755 deploy_zabbix_client.sh
# bash deploy_zabbix_client.sh
出现以下类似信息时,输入yes,并按Enter键。
Are you sure you want to continue connecting (yes/no)?
出现以下类似信息时,输入zabbix客户端密码,并按Enter键。
root@192.168.239.131's password:
第 5 章 zabbix的配置使用
第 6 章 ZABBIX HA的RHCS配置
6.1 节点规划与网络设计
6.1.1 节点规划
Node | Node Name | BMC IP Address | eth0 IP Address |
Manage Node | 192.168.239.135 | ||
Node1 | zabbixsvr | 192.168.239.135 | |
Node2 | zabbixweb | 192.168.239.136 |
管理节点安装在HA系统的主节点上。
6.1.2 网络设计
6.2 安装与配置HA系统
6.2.1 准备工作
- 执行以下命令,配置每个节点的/etc/hosts文件。
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.239.135 zabbixsvr.localdomain zabbixsvr
192.168.239.136 zabbixweb.localdomain zabbixweb
- 执行以下命令,配置yum。
# cat /etc/yum.repos.d/rhel6.repo
[server]
name=Red Hat Enterprise Linux $releasever - $basearch - rpms
baseurl=file:///media/Server/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[HighAvailability]
name=Red Hat Enterprise Linux $releasever - $basearch - rpms
baseurl=file:///media/HighAvailability/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
- 执行以下命令,禁用iptables。
# chkconfig iptables off
- 执行以下命令,禁用NetworkManager,具体请参考“2.3网卡服务配置”。
- 执行以下命令,禁用SELINUX,具体请参考“2.4禁用SELINUX”。
6.2.2 配置HA管理节点
- 执行以下命令,安装luci。
# yum install -y luci
- 执行以下命令,配置luci服务随系统开机启动。
# chkconfig luci on
- 执行以下命令,启动luci服务。
# /etc/init.d/luci start
- 执行以下命令,打开web浏览器,在地址栏输入:https://<serverIP>:8084,按Enter键打开如图所示界面,单击“Add Exception…”。
出现如图所示界面,单击“Confirm Security Exception”。
出现如图所示登录界面,输入用户root,root的密码,单击“Login”。
出现如图所示界面。
6.2.3 在HA集群系统node1和node2安装ricci及管理组件。
- 执行以下命令,安装luci及相关服务。
# yum install -y ricci
# yum install -y rgmanager
- 执行以下命令,配置cluster所需服务随系统开机启动及拉起ricci服务。
# chkconfig ricci on
# chkconfig cman on
# chkconfig rgmanager on
# /etc/init.d/ricci start
# /etc/init.d/rgmanager start
- 执行以下命令,设置ricci用户密码,node1和node2的ricci用户密码必须保持一致。
# passwd ricci
ricci用户密码规划:
用户名 | 默认密码 |
ricci | admin123 |
- 创建ricci配置文件。
# mkdir -p /var/lib/ricci/.libvirt
# chown ricci.ricci /var/lib/ricci/.libvirt
6.3 在HA管理系统上创建集群
6.3.1 创建zabbix集群系统。
- 执行以下命令,打开web浏览器,在地址栏输入:https://<serverIP>:8084,按Enter键打开如图所示界面。
- 在web登录界面输入用户名和密码,单击“Login”,登录HA管理系统。
- 在左边目录树选择“Manage Clusters”,在右边窗口单击“create”,创建集群,如图所示。
- 在弹出的窗口,设置所有节点参数,请参见表里的参数进行设置。所有节点的参数设置完成后,单击“Create Cluster”。
参数说明“:
参数名称 | 值 |
Cluter Name | zabbix_clus |
Node Name | 系统主机名或者IP地址 |
Password | 集群密码 |
若所有节点使用相同密码,则勾选“Use the Same Password for all nodes”。
注释:集群服务启停顺序。
# /etc/init.d/rgmanager stop
# /etc/init.d/cman stop
# /etc/init.d/ricci stop
# /etc/init.d/ricci start
# /etc/init.d/rgmanager start
# /etc/init.d/cman start
- 集群创建成功后,在Manage Cluster界面可以看到新建的集群,如图所示。
- 选择新建的集群,出现如图所示界面。
6.4 创建与分配Fence设备。
Fence设备主要用于:当主节点的服务中断时,备节点会通过Fence设备重启主节点,以便恢复服务。可以使用多种设备作为Fence设备。在虚拟机中,使用vcenter或者ESXI作为Fence设备。
若只有一个IP平面,不允许配置Fence设备。
若存在两个IP平面,必须使用Fence设备。
6.4.1 创建fence设备。
在zabbix集群界面,选择“Fence Devices”,单击“Add”,如图所示。
- 在下拉列表中,选择VMware Fencing(SOAP Interface),如图所示。
- 在弹出的窗口中,按照下面表格的参数设置,点击“Submit”,如图所示。
参数说明:
参数名称 | 值 | 说明 |
Name | <hostname>_fen | 指定fence设备的名称 |
IP Addres or Hostname | <host IP> | Vcenter或者ESXI主机名 |
Login | root | Vcenter或者ESXI登录用户名 |
Password | root user password | Vcenter或者ESXI用户密码 |
- 若fen设备创建成功,可以在Fence Device界面看到此设备。
- 重复步骤1~步骤3,创建其他节点的fence设备。
6.4.2 关联fence设备到节点。
- 在zabbix集群的Nodes界面上,选择节点1,关联与其对应的fence设备,如图所示。
- 选择Add Fence Method,如图所示。
- 设置Method Name ,并单击Submit,如图所示。
- 单击Add Fence Instance,如图所示。
- 在弹出的窗口中,选择与其关联的的fence设备,如图所示。
- 在弹出的窗口中,填写VM name或者VM UUID的值,并单击Submit,如图所示。
VM name或者VM UUID的值,必须要远端服务器的主机名或者UUID。
- Fence设备与节点关联成功后,可以在Method界面看到此fence设备,如图所示。
- 重复步骤1~步骤6,关联其他节点的fence设备。
6.5 在HA管理系统上创建集群的Failover域。
6.5.1 创建zabbix集群的Failover域。
- 在zabbix集群的界面上,选择Failover Domains,单击Add,如图所示。
- 在弹出的窗口设置参数值,并单击Create,如图所示。
- 在Failover Domains界面,可以看到创建的Failover域,如图所示。
6.6 在HA管理系统上创建集群资源。
6.6.1 创建IP资源。
- 在zabbix集群的界面上,选择Resources,单击Add,如图所示。
- 在弹出的窗口选择IP Address,如图所示。
- 在下拉的窗口按表格中的描述设置IP 资源信息,并单击Submit,如图所示。
参数说明:
参数名称 | 值 |
IP Address | <VIP>填写浮动IP地址 |
Netmask Bits(optional) | 24 |
备注:其他参数保持默认设置 |
6.6.2 创建zabbix server资源。
- 在zabbix集群的界面上,选择Resources,单击Add,如图所示。
- 在弹出的窗口选择Script,如图所示。
- 在下拉的窗口按表格中的描述设置zabbix server 资源信息,并单击Submit,如图所示。
参数说明:
参数名称 | 值 |
Name | zabbix_server |
Full Path to Script File | /etc/init.d/zabbix_server |
备注: |
6.6.3 创建httpd资源。
- 在zabbix集群的界面上,选择Resources,单击Add,如图所示。
- 在弹出的窗口选择Script,如图所示。
- 在下拉的窗口按表格中的描述设置zabbix server 资源信息,并单击Submit,如图所示。
参数说明:
参数名称 | 值 |
Name | httpd |
Full Path to Script File | /etc/init.d/httpd |
备注: |
6.7 在HA管理系统上创建集群资源组。
6.7.1 创建资源组。
- 在zabbix集群的界面上,选择Service Groups,单击Add,如图所示。
- 在弹出的窗口中,进行如下设置,如图所示。
- 在Service Name填写资源组名称。
- 勾选Automatically Start This Service。
- 在Failover Domain选择“5在HA管理系统上创建集群的Failover域。”设置的值。
- 单击Add Resource,在弹出的窗口中,将创建的资源添加到资源组,如图所示。
- 按步骤3 依次添加所有的资源到资源组。
- 单击Submit,完成资源组创建。
---结束