Zabbix监控部署方案

目的:

搭建数据中心监控环境

初始化系统自动话脚本init.sh


LAMP环境部署

安装编译环境,使用一键安装脚本安装lamp或lnmp

#注:脚本使用时要注意软件链接是否失效,以免安装失败。

Lamp安全与优化:

1.配置disable_function 禁用一些函数

disable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

2.Mysql配置

开启每表表空间

登录:

#/usr/local/mysql/bin/mysql -S /data/mysql/mysql.sock

mysql>use mysql;

mysql> update user set password=password('123456') where user = 'root';

mysql> flush privileges;

/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/mysql.sock

Zabbix下载地址:

wget http://ncu.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.4/zabbix-3.0.4.tar.gz

创建、导入zabbix数据库 

mysql> create database zabbix character set utf8;

grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; #创建zabbix用户

flush privileges; #再次刷新系统授权表

use zabbix #进入数据库

select database();#查看当前数据库

source /usr/local/src/zabbix-3.0.4/database/mysql/schema.sql #导入脚本文件到zabbix数据库

source /usr/local/src/zabbix-3.0.4/database/mysql/p_w_picpaths.sql #导入脚本文件到zabbix数据库

source /usr/local/src/zabbix-3.0.4/database/mysql/data.sql #导入脚本文件到zabbix数据库

注意:请按照以上顺序进行导入,否则会出错。

安装zabbix

1、添加用户:

由于安全zabbix只能使用普通用户运行

groupadd zabbix #创建用户组zabbix

useradd -M zabbix -s /sbin/nologin

useradd zabbix -g zabbix -s /bin/false #创建用户zabbix,并且把用户zabbix加入到用户组zabbix中

cd /usr/local/src/zabbix-3.0.4/ #进入安装目录

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql=/usr/bin/mysql_config 

--enable-java #支持jmx监控java类进程

make #编译

make install #安装

说明:find / -name mysql_config 查找位置,如果没有mysql_config,需要安装yum install mysql-devel

修改zabbix配置文件

cd /usr/local/zabbix/etc

vi etc/zabbix_server.conf

DBName=zabbix #数据库名称

DBUser=zabbix #数据库用户名

DBPassword=123456 #数据库密码

ListenIP=127.0.0.1 #数据库ip地址

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix运行脚本存放目录

:wq! #保存退出

vi /home/sxit/zabbix/etc/zabbix_agentd.conf

Include=/home/sxit/zabbix/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1 #启用自定义key

:wq! #保存退出

6、添加开机启动脚本

cp /usr/local/src/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server #服务端

cp /usr/local/src/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd #客户端

chmod +x /etc/init.d/zabbix_server #添加脚本执行权限

chmod +x /etc/init.d/zabbix_agentd #添加脚本执行权限

chkconfig zabbix_server on #添加开机启动

chkconfig zabbix_agentd on #添加开机启动

修改zabbix开机启动脚本中的zabbix安装目录

vi /etc/rc.d/init.d/zabbix_server #编辑服务端配置文件

BASEDIR=/home/sxit/zabbix/ #zabbix安装目录

:wq! #保存退出

vi /etc/init.d/zabbix_agentd #编辑客户端配置文件

BASEDIR=/home/sxit/zabbix/ #zabbix安装目录

:wq! #保存退出

三、配置web站点

cd /home/sxit/zabbix-3.0.3

cp -r /usr/local/src/zabbix-3.0.4/frontends/php /usr/local/apache/htdoc/zabbix

chown daemon.daemon -R /usr/local/apache/htdoc/zabbix

备注:/home/sxit/apache/htdoc/为apache默认站点目录 daemon为apache运行账户

service zabbix_server start #启动zabbix服务端

service zabbix_agentd start #启动zabbix客户端

四、修改php配置文件参数

1、vi /etc/php.ini #编辑修改

post_max_size =16M

max_execution_time =300

max_input_time =300

:wq! #保存退出

PHP databases supportoffFail

php databases support off fail 经查询是缺少mysqli 

安装mysqli

需要在php源码中编译出模块然后加载

 /usr/local/php/bin/phpize

./configure --prefix=/usr/local/php/mysqli \

 --with-php-config=/usr/local/php/bin/php-config \

--with-mysqli=/usr/bin/mysql_config

Make &&make install

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

Installing header files:          /usr/local/php/include/php/

编辑php.ini

#vi etc/php.ini

在最末尾添加一行:

extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mysqli.so

重启http服务

注:此处可能回报:/usr/local/src/php-5.6.6/ext/mysqli/mysqli_api.c:36:47: error: ext/mysqlnd/mysql_float_to_double.h: No such file or directory

直接修改:mysqli/mysqli_api.c 文件第36行路径为绝对路径

include "/usr/local/src/php-5.6.6/ext/mysqlnd/mysql_float_to_double.h"

PHP gettextoffWarning

手动编译安装gettext模块

 cd /usr/local/src/php-5.6.6/ext/gettext

# /usr/local/php/bin/phpize

#./configure --with-php-config=/usr/local/php/bin/php-config

#make && make install

安装之后会生成一个类似于这样的信息提示:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

编辑php.ini

#vi etc/php.ini

在最末尾添加一行:

extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/gettext.so

重启http服务

问题:

Zabbix server is runningNo10.0.8.153:10051

Zabbix server is not running:the information displayed may not be current

1、php.ini文件中查找 allow_url_fopen = On;

让你的php支持 opensll扩展

/usr/local/php/bin/phpize

./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

在最末尾添加一行:

extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/openssl.so

2、开启fsockopen函数就可以了

disable_function 去掉pfsockopen

五、安装web

在浏览器中打开:

http://10.0.8.153/zabbix/setup.php

登录:

默认用户名:Admin 

密码:zabbix

zabbix agent安装:

./configure --prefix=/usr/local/zabbix_agent --enable-agent

  make && make install 

 cp /usr/local/src/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd #客户端

chmod +x /etc/init.d/zabbix_agentd

chkconfig zabbix_agentd on

修改安装目录:vim /etc/init.d/zabbix_agentd

 BASEDIR=/usr/local/zabbix_agent/

zabbix客户端配置

配置zabbix_server配置文件,zabbix源码目录下

# vim /usr/local/zabbix_agent/etc/zabbix_agentd.conf

Server=127.0.0.1(注意,客户机上面这个需要修改为监控机的IP地址)

ServerActive=127.0.0.1(注意,客户机上面这个需要修改为监控机的IP地址)

Hostname=Zabbix server(这里的名字需要和监控机上面配置的一致)

其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被动后者是主动。也就是说Server这个配置是用来允许127.0.0.1这个ip来我这取数据。而serverActive的127.0.0.1的意思是,客户端主动提交数据给他。明白了吗?为什么要分主动和被动?后续再来讨论这个问题!

zabbix agent检测分为主动(agent active)和被动(agent)两种形式,主动与被动的说法均是相对于agent来讨论的。简单说明一下主动与被动的区别如下:

主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server向agent请求获取监控项的数据,agent返回数据。

主动配置:监控客户端主动发送数据

Server 192.168.18.223  监控端ip(服务器端)

ServerActive  192.168.18.223:10051  监控端ip:端口

Hostname=Zabbix server(这里的名字需要和监控机上面配置的一致)

被动配置:监控服务器主动收集数据

Server 192.168.18.223  监控端ip(服务器端)

ServerActive  192.168.18.22x:10050  被监控端ip:端口

Hostname=192.168.18.22x(这里的名字需要和监控机上面配置的一致)

测试,下面的命令需要在server端执行,其中10.0.8.152是agent的ip

#/usr/local/zabbix/bin/zabbix_get -s 10.0.8.152 -p10050 -k "system.host"

11163875

#/usr/local/zabbix/bin/zabbix_get -s 10.0.8.152 -p10050 -k "system.hostname"

HOSTNAME