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/images.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
|