详解zabbix安装部署
感受:配置这东西进行了好几天,处处坑,网上博客千奇百怪,好多都省了,最后终于
搞出了自己的方法,好了,不多比比,进入正题
Linux下常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员。
一.Zabbix简介
1.zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
2.zabbix由zabbix server与可选组件zabbix agent两部门组成。
3.zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
4.zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
二.Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
三.zabbix的安装需要LAMP或者LNMP环境,选择编译安装或yum安装,新 手推荐yum安装。
这里使用LAMP环境
LInux+Apache+Mysql+PHP
注:原来安装的zabbix2.2版本,已经够用,但最新版本的zabbix功能
更全面,界面看着更舒服,所以建议安装新版本的zabbix(新版本的zabbix
没有老版本的稳定,但老版本的zabbix界面看着是真的难受,跟吃了XXX
一样难受)
A.现在我们来安装lamp环境,这里重点说一下php的安装,5.4版本可以用,但有些东西不支持最新版的zabbix,这里我们将其升级为5.6,如果是新手的话,劝你用yum安装,否则如果卸不干净,会有老版本包跟新版本的包冲突
(或自行跟新更新的yum源)
1.查看已经安装的php包
yum list installed | grep php
yum remove 。。。。。(卸载他们)
重点是要卸载php-common核心包
2.执行以下命令更新yum源为Webtatic EL6 YUM源:
Centos 5.X
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
CentOs 6.x
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
如果想删除上面安装的包,重新安装
rpm -qa | grep webstatic
rpm -e (上面搜索到的包即可)
3.开始安装
yum install php56w
php有很多组件,没安装全的话zabbix安装界面会报错,索性全按上,把错误扼杀在他妈肚子里
yum install php56w-bcmath php56w-dba php56w-devel php56w-embedded php56w-enchant php56w-fpm php56w-gd php56w-imap php56w-interbase php56w-intl php56w-ldap php56w-mbstring php56w-mcrypt php56w-mssql php56w-mysqlnd php56w-odbc php56w-opcache php56w-pdo php56w-pear.noarch php56w-pecl-apcu php56w-pecl-apcu-devel php56w-pecl-gearman php56w-pecl-geoip php56w-pecl-igbinary php56w-pecl-igbinary-devel php56w-pecl-imagick php56w-pecl-imagick-devel php56w-pecl-memcache php56w-pecl-memcached php56w-pecl-Redis php56w-pecl-xdebug php56w-pgsql php56w-phpdbg php56w-process php56w-pspell php56w-recode php56w-snmp php56w-soap php56w-tidy php56w-xml php56w-xmlrpc
4.设置php-fpm开机启动
chkconfig php-fpm on
启动php-fpm
/etc/init.d/php-fpm start
B.现在说一下防火墙和其它的问题,这个东西在我安装好了以后恶心了我半
如果你的防火墙没必要开着的话,你就关了,如果你有没必要你偏要
开的话,如果你是强迫症的话,如果你想一只红杏出墙来的话,好,看下边!!!
1.将你想要开放的端口加进防火墙,然后重启防火墙,因为zabbix默认的80 端口很可能会跟其它进程冲突,可以到http的核心配置文件里去改端口
firewall-cmd –help(防火墙命令)
firewall-cmd –add-port XXX/tcp –permanent
firewall-cmd –reload(重启生效)
2.· 关闭SELINUX
· rm -rf /etc/selinux/config
vi /etc/selinux/config
· 添加一行内容:
· SELINUX=disabled
· :wq保存退出
· #重启系统
shutdown -r now
C.zabbix依赖包安装
yum install mysql-dev gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml
D.zabbix 数据库设置
zabbix数据库可以和zabbix服务器分离,采用用专门的mysql服务器存储 数据,此时要给zabbix数据库受相应的权限。
在数据库相应的服务器上建库建表
mysql> use mysql;
mysql>create database zabbix character set utf8;
Mysql>grant all privileges on zabbix.* to zabbix_user@’ip’ identified by ‘123456’;
(zabbix_user是你想要赋给权限的用户名)
如果你的mysql在别的机器上,在zabbix服务器执行下边的命令
setsebool httpd_can_network_connect 1
四.安装zabbix服务
www.zabbix.xom取下在最新的包,然后上传到服务器
我上传到了/usr/local/src下
A.创建用户组
#groupadd zabbix
#useradd -g zabbix -m zabbix
B.安装
tar -zxvf zabbix-3.2.7.tar.gz
cd zabbix-3.2.7/database导入数据库表
因为我选择的是130服务器所以
mysql -h192.168.12.130 -uzabbix -p123456 zabbix < schema.sql
mysql -h192.168.12.130 -uzabbix -p123456 zabbix < images.sql
mysql-h192.168.12.130 -uzabbix -p123456 zabbix < data.sql
编译
./configure –prefix=/usr/local/zabbix –with-mysql –with-net-snmp –with-libcurl –enable-server –enable-agent –enable-proxy
编译报错checking for main in -lmysqlclient … no
yum 安装mysql-devel即可
然后
make
make install
C..配置
1.添加服务端口
vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
添加配置文件
mkdir -p /etc/zabbix# cp -r zabbix-2.203/conf/* /etc/zabbix/
chown -R zabbix:zabbix /etc/zabbix
2.修改server配置文件,添加zabbix数据库密码
vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBName=zabbix
DBUser=zabbix_user
DBPassword=123456 #指定zabbix数据库密码
ListenIP=127.0.0.1 #数据库ip地址
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix运行脚本存放目录
3.改Agentd配置文件,更改hostname为本机的hostname
vim /usr/localzabbix/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid #进程PID
LogFile=/tmp/zabbix_agentd.log #日志保存位置
EnableRemoteCommands=1 #允许执行远程命令
Server=192.168.10.197 #agent端的ip
4.添加web前段php文件
cd /usr/local/src/zabbix-2.2.6
cp -r /usr/local/src/zabbix-2.2.6/frontends/php /var/www/html/zabbix
service zabbix_server start #启动zabbix服务端
service zabbix_agentd start #启动zabbix客户端
6、添加开机启动脚本
cp /usr/local/src/zabbix-2.2.6/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server #服务端
cp /usr/local/src/zabbix-2.2.6/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd #客户端
chmod +x /etc/rc.d/init.d/zabbix_server #添加脚本执行权限
chmod +x /etc/rc.d/init.d/zabbix_agentd #添加脚本执行权限
chkconfig zabbix_server on #添加开机启动
chkconfig zabbix_agentd on #添加开机启动
7.修改zabbix开机启动脚本中的zabbix安装目录
vi /etc/rc.d/init.d/zabbix_server #编辑服务端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
:wq! #保存退出
vi /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
8.
web前端安装配置
修改PHP相关参数
vim /usr/local/php/lib/php.ini #yum默认位置/etc/php.ini
max_execution_time = 300
max_input_time = 300memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2
8.
Service zabbix_server start
Service zabbix_agend start
重启Apache,使之生效:service httpd restart
请求
http://192.168.1.191:81/zabbix/setup.php #192.168.1.191是zabbix服务器地址
(我开起的是81端口)
看到这后说接下来会介绍关于客户端监控的使用,以及监控模版的新建,自定义监控服务等。明配置成功
如果看到有不ok的话请到php.ini配置文件里去修改参数
五.客户端安装,我就不详细说了,安装方式很简单,下载相应的包,安装,方式实在不知道的话,可百度解决,配置跟上边配置服务端一 样
六.问题
1. 一定要注意agnt端的server和Activeserver后边的ip地址,Activeserver是 开启主动模式,让客户端主动发送配置,要配置上服务端的ip
2.hostname问题,agent端配置hostname一定要和界面上主机名相同,才能连上服务端
具体错误可以看/tmp下的日志进行解决
3.如果全部OK的话才能进行下一步的安装,如果有错误请返回到server端检查相关的软件包是否安装。
检测php文件未通过,尝试安装:yum install php-xml
七.
具体的使用zabbix进行检测方式,还有后期这个东西的优化就不说了