ibaobei 发表于 2017-12-31 09:45:43

CentOS7.2设置zabbix

  准备工作
  1、lnmp或lamp环境,本机环境:CentOS 7.2 64位,nginx1.10.2 php5.6.26 mysql5.7.15
  2、软件Zabbix
  wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.1/zabbix-3.2.1.tar.gz
  安装部署:
  一、创建、导入zabbix数据库
  cd /usr/loca/src #进入软件包下载目录
  wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.1/zabbix-3.2.1.tar.gz
  tar zxvf zabbix-3.2.1.tar.gz #解压
  cd zabbix-3.2.1/database/mysql/ #进入mysql数据库创建脚本目录
  ll#列出文件,可以看到有schema.sql、images.sql、data.sql这三个文件
  mysql-h localhost-uroot -p #输入密码,进入MySQL控制台
  create database zabbix character set utf8; #创建数据库zabbix,并且数据库编码使用utf8

  create user zabbix>
  grant all on zabbix.* to 'zabbix'@'localhost'>  flush privileges; #刷新系统授权表
  use zabbix;#进入数据库
  source /usr/local/src/zabbix-3.2.1/database/mysql/schema.sql #导入脚本文件到zabbix数据库
  source /usr/local/src/zabbix-3.2.1/database/mysql/images.sql #导入脚本文件到zabbix数据库
  source /usr/local/src/zabbix-3.2.1/database/mysql/data.sql #导入脚本文件到zabbix数据库
  注意:请按照以上顺序进行导入,否则会出错。
  exit;#退出
  二、安装zabbix
  1、添加用户
  groupadd zabbix #创建用户组zabbix
  useradd zabbix -g zabbix -s /bin/false #创建用户zabbix,并且把用户zabbix加入到用户组zabbix中
  2、安装依赖包
  #CentOS使用yum命令安装
  yum install net-snmp-devel curl curl-devel mysql-devel
  备注:以上软件包如果在安装Web环境LAMP或者LNMP时已经安装过,此步骤可忽略
  3、安装zabbix
  ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2#添加软连接
  /sbin/ldconfig #使配置立即生效
  cd /usr/local/src/zabbix-3.2.1 #进入安装目录
  ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-libcurl --enable-proxy --with-mysql#配置
  报错:configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
  解决:yum install net-snmp-devel
  说明:若使用--with-mysql=/usr/bin/mysql_config
  find / -name mysql_config 查找位置,如果没有mysql_config,需要安装yum install mysql-devel
  make #编译
  make install #安装
  ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/ #添加系统软连接
  ln -s /usr/local/zabbix/bin/* /usr/local/bin/ #添加系统软连接
  4、添加zabbix服务对应的端口
  vi /etc/services #编辑,在最后添加以下代码
  #zabbix
  zabbix-agent   10050/tcp# Zabbix Agent
  zabbix-agent   10050/udp# Zabbix Agent
  zabbix-trapper10051/tcp# Zabbix Trapper
  zabbix-trapper10051/udp# Zabbix Trapper
  :x #保存退出
  5、修改zabbix配置文件
  cd /usr/local/zabbix/etc
  vi /usr/local/zabbix/etc/zabbix_server.conf
  LogFile=/tmp/zabbix_server.log #日志保存位置
  PidFile=/tmp/zabbix_server.pid #进程PID
  DBName=zabbix #数据库名称
  DBUser=zabbix #数据库用户名
  DBPassword=123456 #数据库密码
  ListenIP=127.0.0.1 #数据库ip地址(写localhost登陆后会有错误信息)
  AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts #zabbix运行脚本存放目录
  :x #保存退出
  vi /usr/local/zabbix/etc/zabbix_agentd.conf
  PidFile=/tmp/zabbix_agentd.pid
  LogFile=/tmp/zabbix_agentd.log
  EnableRemoteCommands=1 #允许执行远程命令
  Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
  UnsafeUserParameters=1 #启用自定义key
  :x #保存退出
  6、添加开机启动脚本
  cp/usr/local/src/zabbix-3.2.1/misc/init.d/fedora/core/zabbix_server/etc/rc.d/init.d/zabbix_server    #服务端
  cp/usr/local/src/zabbix-3.2.1/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安装目录
  :x #保存退出
  vi /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
  BASEDIR=/usr/local/zabbix/ #zabbix安装目录
  :x #保存退出
  三、配置web站点
  cd /usr/local/src/zabbix-3.2.1
  cp -r /usr/local/src/zabbix-3.2.1/frontends/php /usr/local/nginx/html/zabbix
  chown -R www:www/usr/local/nginx/html/zabbix
  chmod -R 755 /usr/local/nginx/html/zabbix
  备注:/usr/local/nginx/html为Nginx默认站点目录www为Nginx运行账户
  service zabbix_server start #启动zabbix服务端 (systemctl start zabbix_server.service)
  启动警告:

  Starting zabbix_server (via systemctl):Warning: zabbix_server.service changed on disk. Run 'systemctl daemon-reload' to>  解决:systemctl daemon-reload
  service zabbix_agentd start #启动zabbix客户端 (systemctl start zabbix_agentd.service)
  四、修改php配置文件参数
  1、vi /etc/php.ini #编辑修改
  post_max_size =16M
  max_execution_time =300
  max_input_time =300
  :x #保存退出
  2、vi /usr/local/php/etc/php-fpm.conf #编辑修改
  request_terminate_timeout = 300
  :x #保存退出

  service php-fpm>  五、安装web
  在浏览器中打开:ip/zabbix
  错误1:
  页面报错403
  原因分析:查看nginx错误日志,是因为modsecurity阻拦next step了,详细查看modsecurity日志(/var/log/modsec_audit.log)确实是这样
  解决:修改站点的配置文件,暂停modsecurity,重启nginx
  错误2:
  PHP option "always_populate_raw_post_data" must be set to "-1"
  解决:vi /usr/local/nginx/html/zabbix/include/classes/setup/CFrontendSetup.php
  添加 : $current = -1;
  结果如下:
  public function checkPhpAlwaysPopulateRawPostData() {
  $current = ini_get('always_populate_raw_post_data');
  $current = -1;
  return [
  'name' => _('PHP always_populate_raw_post_data'),
  'current' => ($current != -1) ? _('on') : _('off'),
  'required' => _('off'),
  'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,
  'error' => _('PHP always_populate_raw_post_data must be set to -1.')
  ];
  }
  检查系统环境设置,必须全部都为ok,才能继续
  数据库:
  mysql,localhost,3306,zabbix,zabbix,123456
  Zabbix server detail 页面保持默认
  finish后登陆
  账号:admin
  密码:zabbix
  有报错:
  zabbix监控报错zabbix server is not running: the information displayed may not be current
  解决方法:
  查看zabbix_server日志:/tmp/zabbix_server.log有这样一句话:
  listener failed: incorrect IPv4 address
  修改配置文件:vi /usr/local/zabbix/etc/zabbix_server.conf
  ListenIP=127.0.0.1
  保存,重启即可
  修改web界面为中文
  vi /usr/local/nginx/html/zabbix/include/locales.inc.php #编辑修改
  'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false), 修改为
  'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),
  :x #保存退出
  2、替换监控图像上系统默认的字体 #默认字体不支持中文,如果不替换,图像上会显示乱码
  在Windows系统中的C:\Windows\Fonts目录中复制出一个中文字体文件,例如msyh.ttf
  把字体文件msyh.ttf上传到zabbix站点根目录下fonts文件夹中
  例如:/usr/local/nginx/html/zabbix/fonts
  备份默认的字体文件:DejaVusSans.ttf-bak
  修改msyh.ttf名称为DejaVusSans.ttf
  页面右上角有个人头一样的图标,点击设置
  最后,修改配置信息,把默认语言修改为中文,update即可
  至此,Zabbix3.2.1安装图解教程完成。
  再切换中文时的页面下方报错:
  scandir() has been disabled for security reasons
  原因分析:php.ini中禁用scandir()这个函数了
  解决:修改/usr/local/php/etc/php.ini ,去掉scandir保存并重起php-fpm即可。
页: [1]
查看完整版本: CentOS7.2设置zabbix