zabbix的安装
简述:
本章介绍Zabbix的安装和配置,这是在一个Server/Agent的架构环境中进行部署的,采用RPM包进行安装(推荐使用此种方法)
环境:
Zabbix服务器运行的环境为Linux+PHP+WebService+DataBase,这里的WebService可以是Nginx、Apache;DataBase可以为MySQL、Oracle、PostgreSQL等。
硬件要求:
环境 | 平台 | CPU/内存 | 数 据 库 | 硬盘 | 监控主机数量 |
小型 | Linux | PII 350MHz 256MB | SQLite | 普通 | 20 |
中型 | Linux 64 bit | AMD Athlon 3200 2GB | MySQL InnoDB | 普通 | 500 |
大型 | Linux 64 bit | Intel Dual Core 6400 4GB | MySQL InnoDB | SAS或SSD | > 1000 |
超大型 | Linux 64 bit | Intel Xeon 2xCPU 8GB | MySQL InnoDB | SAS或SSD | > 10000 |
准备工作:
时间同步:
Zabbix-Server对时间的精准要求比较高,时间对数据的计算等都有影响,因此,最好设置ntp自动同步时间。也可以用crontab 进行同步(在实际的生产环境中不推荐这么做),如下所示,使用crontab 进行时间同步,如:
*/30 * * * * /usr/sbin/npdate pool.ntp.org
部署:
服务端安装:
web环境安装:采用rpm包安装即可(对服务性能要求不是很高,用rpm包安装LANP环境即可)
yum -y install mysql-server mysql-devel libcurl-devel net-snmp-devel php php-gd php-xml php-mysql php-mbstring php-bcmath httpd
zabbix server安装:
采用RPM包安装方式(推荐)
安装Zabbix官方源和epel源:
rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
注意:由于软件版本的更新,以上链接可能会失效,请读者下载并安装相应的版本。
yum install -y zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agent(注意:由于服务器端也是需要监控的,故这里也一并安装Zabbix-Agent)
注意:yum安装时,epel源可能会报错,如下:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
解决方法:vi /etc/yum.repos.d/epel.repo
将所有baseurl行注释去掉
将所有mirrorlist行注释掉
mysql的配置:
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #让innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
chkconfig mysqld on (启动服务)
service mysqld start
ps -ef | grep mysql (看是否启动)
创建zabbix库:
mysqladmin -uroot password "xxxxx" (设置密码)
mysql -uroot -pxxxxx (登录mysql)
create database zabbix character set utf8;
grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘; (创建zabbix用户并授权)
flush privileges;
注意:这里容易出现的问题是创建Zabbix的数据库字符集不为utf8,这会导致Web界面切换到中文环境时出现乱码。
导入Zabbix Server的数据库:
mysql -uzabbix -pzabbix (以zabbix用户登录mysql)
use zabbix
source /usr/share/doc/zabbix-server-mysql-X.X.X/create/schema.sql;
注意:如果安装Zabbix-Proxy,只导入schema.sql即可,无须导入下面的SQL,否则Zabbix-Proxy 无法正常工作。
source /usr/share/doc/zabbix-server-mysql-X.X.X/create/images.sql;
source /usr/share/doc/zabbix-server-mysql-X.X.X/create/data.sql;
show tables;
配置zabbix_server.conf:
mv /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.old (备份原配置文件)
vi /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=zabbix #需修改
DBSocket=/var/lib/mysql/mysql.sock #默认
DBPort=3306 #默认
StartPollers=5
StartIPMIPollers=10
StartPollersUnreachable=10
StartTrappers=10
StartPingers=10
StartDiscoverers=10
VMwareFrequency=60
VMwareCacheSize=8M
SNMPTrapperFile=/var/log/snmptt/snmptt.log
ListenIP=127.0.0.1
MaxHousekeeperDelete=500
CacheSize=256M
StartDBSyncers=40
HistoryCacheSize=128M
TrendCacheSize=128M
HistoryTextCacheSize=128M
ValueCacheSize=128M
Timeout=30
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath=/etc/zabbix/alertscripts
ExternalScripts=/etc/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=10000
StartProxyPollers=50
ProxyConfigFrequency=3600
注意:只需关注红色字部分,这部分为性能参数,需根据实际情况进行调整。默认只需修改DBPassword=zabbix 即可
mkdir -p /etc/zabbix/{alertscripts,externalscripts} (创建两个脚本目录)
service zabbix-server start (启动zabbix server)
service httpd start
chkconfig zabbix-server on
chkconfig httpd on
防火墙,Selinux和权限的设置:
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
#-A INPUT -m state --state NEW -m tcp -p tcp --sport 10050 -j ACCEPT
service iptables restart
注意:10050是Agent的端口,Agent采用被动方式,Server主动连接Agent的10050端口;10051是Server的端口,Agent采用主动或Trapper方式,会连接Server的10051端口
selinux:直接关闭
php.ini配置文件的设置:
vim /etc/php.ini (注意下面,这个文件不用)
date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
max_input_time=300
memory_limit = 128M
mbstring.func_overload = 2
注意:在LAMP环境中,可以按上述方式配置PHP的参数,比修改php.ini 更方便。而在Zabbix的官方RPM中,这一步已经配置过了,所以无须修改。如:
vim /etc/httpd/conf.d/zabbix.conf
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
php_value date.timezone Asia/Shanghai
php_value max_execution_time 300
php_value post_max_size 16M
php_value max_input_time 300
php_value memory_limit 128M
php_value upload_max_filesize 2M
</Directory>
service httpd restart (重启httpd即可)
注意:如果在后面配置Web时提示任何参数不满足安装配置要求,修改对应的参数后重启Httpd即可
配置web界面:
打开浏览器,输入“http://IP 地址/zabbix”