tiyan 发表于 2019-1-22 09:16:45

Centos6.9下zabbix3.0的搭建

  一、安装常用依赖包
  (本文永久地址:http://woymk.blog.运维网.com/10000269/1953012)
  yum install -y make gcc gcc-c++ perl zlib-devel libaio libpng libpng-devel libjpeg-devel pcre-devel
  yum install -ylibXpm-devel openssl openssl-devel libxml2-devel bzip2-devel.x86_64 libjpeg-turbo-devel
  yum install -yfreetype freetype-devel libtool cmake ncurses-devel bison re2c curl-devel wget
  rpm -ivh "http://mirrors.sohu.com/fedora-epel/epel-release-latest-6.noarch.rpm"
  yum install -y libmcrypt-devel re2c
  

  二、安装nginx
  cd /usr/local/src
  wget http://mirrors.sohu.com/nginx/nginx-1.12.0.tar.gz
  tar zxvf nginx-1.12.0.tar.gz
  cd nginx-1.12.0
  ./configure--prefix=/usr/local/nginx--with-pcre--with-http_stub_status_module--with-http_ssl_module
  make && make install
  vi /etc/init.d/nginx
  把下面nginx启动脚本保存为 /etc/init.d/nginx,
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:   /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
sysconfig="/etc/sysconfig/$prog"
lockfile="/var/lock/subsys/nginx"
pidfile="/var/run/${prog}.pid"
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f $sysconfig ] && . $sysconfig
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $prog: "
    killproc -p $pidfile $prog
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    configtest_q || return 6
    stop
    start
}
reload() {
    configtest_q || return 6
    echo -n $"Reloading $prog: "
    killproc -p $pidfile $prog -HUP
    echo
}
configtest() {
    $nginx -t -c $NGINX_CONF_FILE
}
configtest_q() {
    $nginx -t -q -c $NGINX_CONF_FILE
}
rh_status() {
    status $prog
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}
# Upgrade the binary with no downtime.
upgrade() {
    local oldbin_pidfile="${pidfile}.oldbin"
    configtest_q || return 6
    echo -n $"Upgrading $prog: "
    killproc -p $pidfile $prog -USR2
    retval=$?
    sleep 1
    if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]];then
      killproc -p $oldbin_pidfile $prog -QUIT
      success $"$prog online upgrade"
      echo
      return 0
    else
      failure $"$prog online upgrade"
      echo
      return 1
    fi
}
# Tell nginx to reopen logs
reopen_logs() {
    configtest_q || return 6
    echo -n $"Reopening $prog logs: "
    killproc -p $pidfile $prog -USR1
    retval=$?
    echo
    return $retval
}
case "$1" in
    start)
      rh_status_q && exit 0
      $1
      ;;
    stop)
      rh_status_q || exit 0
      $1
      ;;
    restart|configtest|reopen_logs)
      $1
      ;;
    force-reload|upgrade)
      rh_status_q || exit 7
      upgrade
      ;;
    reload)
      rh_status_q || exit 7
      $1
      ;;
    status|status_q)
      rh_$1
      ;;
    condrestart|try-restart)
      rh_status_q || exit 7
      restart
   ;;
    *)
      echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart|reopen_logs}"
      exit 2
esac  找到下面三行
  nginx="/usr/sbin/nginx"
  pidfile="/var/run/${prog}.pid"
  NGINX_CONF_FILE="/etc/nginx/nginx.conf"
  

  修改为:
  nginx="/usr/local/nginx/sbin/nginx"
  pidfile="/usr/local/nginx/logs/${prog}.pid"
  NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
  

  保存后,执行
  chmod +x /etc/init.d/nginx
  chkconfig --add nginx
  chkconfig nginx on
  /etc/init.d/nginx start
  

  三、安装php

  安装依赖包
  yum install openldap openldap-devel-y
  cd /usr/local/src
  wget http://mirrors.sohu.com/php/php-5.5.38.tar.gz
  tar zxvf php-5.5.38.tar.gz
  cd php-5.5.38
  ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --with-iconv-dir --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath --with-ldap
  

  make && make install
  cp php.ini-production /usr/local/php/etc/php.ini
  cp /usr/local/src/php-5.5.38/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  cp -v /usr/local/php/etc/{php-fpm.conf.default,php-fpm.conf}
  vi /usr/local/php/etc/php.ini
  找到
  ;date.timezone =
  改为
  date.timezone = Asia/Chongqing
  

  保存后,执行
  chmod 755 /etc/init.d/php-fpm
  chkconfig --add php-fpm
  chkconfig php-fpm on
  service php-fpm start
  

  四、安装mysql
  wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz
  tar zxvf mysql-5.6.36.tar.gz
  cd mysql-5.6.36
  

  cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DWITH_EXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DDEFAULT_COLLATION=utf8_general_ci
  

  make && make install
  

  建立mysql用户
  useradd -s /sbin/nologin mysql
  

  初始化数据库,创建系统自带的数据库和表
  mkdir -p /data/mysql
  chown -R mysql:mysql /data/mysql
  cd /usr/local/mysql
  scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql
  

  添加服务,拷贝服务脚本到init.d目录,并设置开机启动
  cp support-files/my-default.cnf /etc/my.cnf
  cp support-files/mysql.server /etc/init.d/mysqld
  chmod 755 /etc/init.d/mysqld
  vi /etc/init.d/mysqld
  修改datadir
  basedir=/usr/local/mysql
  datadir=/data/mysql
  chkconfig --add mysqld
  chkconfig mysqld on
  service mysqld start
  mysql修改密码
  /usr/local/mysql/bin/mysqladmin -uroot password "1234"
  PATH=$PATH:/usr/local/mysql/bin
  创建zabbix数据库、用户名和密码:
  mysql -uroot -p -e"create database zabbix default charset utf8"
  mysql -uroot -p -e "grant all privileges on zabbix.* to zabbix@'localhost' identified by '1234'";
  

  五、安装zabbix server
  官网下载地址 https://www.zabbix.com/download
  这里下载的是: zabbix-3.0.10.tar
  

  安装依赖包
  yum install net-snmp-devel -y
  

  cd /usr/local/src
  tar zxvf zabbix-3.0.10.tar.gz
  cd zabbix-3.0.10
  ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
  make && make install
  

  创建zabbix用户
  useradd -s /sbin/nologin zabbix
  导入3个sql文件:(密码这里设的是1234)
  mysql -uroot -p zabbix < database/mysql/schema.sql
  mysql -uroot -p zabbix < database/mysql/images.sql
  mysql -uroot -p zabbix < database/mysql/data.sql
  

  创建网站目录
  mkdir /data/web/zabbix -p
  将前端文件拷贝到web目录下
  cp -rp frontends/php/* /data/web/zabbix/
  配置nginx
  cd /usr/local/nginx/conf/
  mkdir extra
  cd extra/
  vi zabbix.conf
  加入以下内容,并保存:
server {
    listen 80;
    server_name www.test.com;
    access_log /data/logs/zabbix/www.test.com.access.log main;
    index index.html index.php index.html;
    root /data/web/zabbix;
    location /{
      try_files $uri $uri/ /index.php?$args;
    }
    location ~ ^(.+.php)(.*)$ {
      fastcgi_split_path_info ^(.+.php)(.*)$;
      include fastcgi.conf;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}  cd ..
  vi nginx
  加入以下内容,并保存:
usernobody;
worker_processes1;
#error_loglogs/error.log warning;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
pid      logs/nginx.pid;
events {
    worker_connections1024;
}
http {
    include       mime.types;
    default_typeapplication/octet-stream;
    log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_loglogs/access.logmain;
    sendfile      on;
    #tcp_nopush   on;
    #keepalive_timeout0;
    keepalive_timeout65;
    #gzipon;
    include extra/*.conf;
}  vi /usr/local/zabbix/etc/zabbix_server.conf
  修改如下内容并保存:
  LogFile=/tmp/zabbix_server.log
  PidFile=/tmp/zabbix_server.pid
  DBHost=localhost
  DBName=zabbix
  DBUser=zabbix
  DBPassword=1234
  

  启动zabbix server
  /usr/local/zabbix/sbin/zabbix_server
  如果显示:
  error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
  执行:
  ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
  

  查看启动的服务和端口号
  netstat -lnpt
  

  六、网页安装zabbix

  浏览器访问
  http://ip/
  (如果无法显示,检查iptables和selinx是否关闭)
https://s5.运维网.com/wyfs02/M02/9D/88/wKioL1mBglTS0x2iAABfolGSJAk572.png-wh_500x0-wm_3-wmp_4-s_3030360271.png
  点下一步
https://s4.运维网.com/wyfs02/M01/9D/88/wKiom1mBgo6Ami_wAACeJ7vskAY715.png-wh_500x0-wm_3-wmp_4-s_97161168.png
  vi /usr/local/php/etc/php.ini
  跟据错误提示修改,保存后重启php-fpm
  service php-fpm restart
https://s1.运维网.com/wyfs02/M01/9D/88/wKioL1mBgqzQl-GcAACNaii7iSc504.png-wh_500x0-wm_3-wmp_4-s_476072062.png
  继续点下一步
https://s3.运维网.com/wyfs02/M00/9D/88/wKioL1mBgvPyfsTDAABs3agHFkw196.png-wh_500x0-wm_3-wmp_4-s_2792043522.png
  填写完点下一步
https://s1.运维网.com/wyfs02/M01/9D/88/wKiom1mBg4_j_0ttAABbvqTt2Zs885.png-wh_500x0-wm_3-wmp_4-s_2649310479.png
  填写完点下一步
https://s3.运维网.com/wyfs02/M01/9D/88/wKiom1mBg-awc-z0AACDgVek5Bs184.png-wh_500x0-wm_3-wmp_4-s_1217336939.png
  继续点下一步
https://s2.运维网.com/wyfs02/M02/9D/88/wKiom1mBhBjxn1NOAABcx5SmJiE956.png-wh_500x0-wm_3-wmp_4-s_2042860436.png
  这里的报错是因为nginx用户没有写入权限,按图中提示手动修改或者直接修改目录权限:
  cd /data/web/zabbix/
  chown nobody:nobody conf
  改完后刷新网页
https://s4.运维网.com/wyfs02/M00/9D/88/wKiom1mBhSijDtllAABil_JHMoo974.png-wh_500x0-wm_3-wmp_4-s_4059239195.png
  点Finish,接下来登陆zabbix,默认管理员账号为 admin:zabbix
https://s1.运维网.com/wyfs02/M01/9D/88/wKiom1mBhVfCG6EhAAAjhQvYv8E441.png-wh_500x0-wm_3-wmp_4-s_3491110210.png
  登陆后的画面:
https://s1.运维网.com/wyfs02/M01/9D/88/wKiom1mBhmqxWM9QAADbumBNl_M540.png-wh_500x0-wm_3-wmp_4-s_875140039.png
  设置中文显示:
  点右上角的小图标,显示如下网页,在Language项修改
https://s1.运维网.com/wyfs02/M00/9D/88/wKioL1mBhvKRJhw5AABkE_oQqVg219.png-wh_500x0-wm_3-wmp_4-s_45446467.png
  点Update
https://s2.运维网.com/wyfs02/M00/9D/88/wKiom1mBh2qzc9OgAAC6I6Re15A965.png-wh_500x0-wm_3-wmp_4-s_3754081384.png
  已经显示成中文了。
  

  zabbix出现中文乱码的解决方法
  zabbix在显示中文时有的地方会出现乱码,这是因为没有中文字库的缘故,只需把windows里的字库复制过去即可。windows的字体文件c:\windows\fonts目录下,比如华文仿宋字体文件名是STFANGSO.ttf。
  

  把字体文件上传到系统里(可以使用PSFTP、FileZilla等文件传输工具上传),将原字体文件直接覆盖
  mv STFANGSO.ttf /data/web/zabbix/fonts/DejaVuSans.ttf
  

  或者
  把字体文件复制/data/web/zabbix/fonts/目录
  vi /data/web/zabbix/include/defines.inc.php
  找到
  define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
  修改成上传的中文字体文件名。
  




页: [1]
查看完整版本: Centos6.9下zabbix3.0的搭建