设为首页 收藏本站
查看: 2001|回复: 0

[经验分享] 基于LNMP环境安装Zabbix

[复制链接]

尚未签到

发表于 2019-1-19 12:54:10 | 显示全部楼层 |阅读模式
  

  
Zabbix
  zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
  
搭建Zabbix监控环境
  要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
  方案执行:
  搭建前提,用脚本一键搭建LNMP环境(centos7)
  [root@zxb src]# cat LNMP.sh
#!/bin/bash
RETVAL=0
NGINX="/usr/local/nginx/sbin/nginx"
PHP="/usr/local/php/sbin/php-fpm"
nginx_install(){
     #安装软件依赖包
     yum -y groupinstall "Development Tools" "Server PlatformDeveopment"
     yum -y install openssl-devel pcre-devel
     cd /usr/local/src
     yum install -y wget
     #下载nginx包
     wget http://nginx.org/download/nginx-1.12.0.tar.gz
     useradd nginx   #添加nginx运行的用户
     tar zxvf nginx-1.12.0.tar.gz
     cd nginx-1.12.0/
     #安装nginx包
     ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx--with-http_ssl_module --with-http_flv_module --with-http_stub_status_module--with-http_gzip_static_module --with-pcre
     #编译安装
     make && make install
     RETVAL=$?
     if [ $RETVAL -eq 0 ]
     then
         /usr/local/nginx/sbin/nginx  #启动nginx
     else
         echo "nginx编译失败"
     fi
}
nginx_check(){
     if [ -f $NGINX -a -x $NGINX ]
     then
         /usr/local/nginx/sbin/nginx -t   #检查nginx
         RETVAL=$?
         if [ $RETVAL -eq 0 ]
         then
              echo "nginx检查完毕"
              /usr/local/nginx/sbin/nginx
              netstat -ntlp | grep nginx
              RETVAL=$?
              if [ $RETVAL -eq 0 ]
              then
                 echo "nginx启动成功"
              else
                  echo "nginx启动失败"
              fi
        else
            echo "please check your nginx"
        fi
    else
        echo "nginx不存在或者没有权限"
    fi
}
php-fpm_install(){
     cd /usr/local/src
     #下载依赖包
     yum -y install libmcrypt-devel bzip2-devel gcc openssl-devel php-mcryptlibmcrypt libxml2-devel libjpeg-devel libpng-devel freetype-devel
     #下载php包
     wget http://cn2.php.net/distributions/php-5.5.38.tar.gz
     tar zxvf php-5.5.38.tar.gz
     cd php-5.5.38/
     #安装php包
     ./configure --prefix=/usr/local/php --with-mysql=mysqlnd--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-mbstring--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib--with-libxml-dir=/usr --enable-xml --enable-sockets --with-mcrypt  --with-bz2 --enable-fpm --with-gd
     #编译安装     
     make && make install
     RETVAL=$?
     if [ $RETVAL -eq 0 ]
     then
         #开始一些配置步骤
         cp /usr/local/src/php-5.5.38/php.ini-production/usr/local/php/etc/php.ini
         mv /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
         #创建php用户
         useradd -M -s /sbin/nologin php
         #修改相关配置
         sed -i -e 's\;pid = run/php-fpm.pid\pid = run/php-fpm.pid\g' -e's\nobody\php\g' -e 's\listen = 127.0.0.1:9000\listen = 0.0.0.0:9000\g'/usr/local/php/etc/php-fpm.conf
         sed -i 's\;daemonize = yes\daemonize = no\g' /usr/local/php/etc/php-fpm.conf
         #启动php
         /usr/local/php/sbin/php-fpm &
     else
         echo "php编译失败"
     fi
}
php-fpm_check(){
     if [ -x $PHP -a -x $PHP ]
     then
         /usr/local/php/sbin/php-fpm -t
         RETVAL=$?
         if [ $RETVAL -eq 0 ]
         then
              echo "php检查完毕"
              /usr/local/php/sbin/php-fpm &
              netstat -ntlp | grep php-fpm
              RETVAL=$?
              if [ $RETVAL -eq 0 ]
              then
                  echo "php启动成功"
              else
                  echo "php启动失败"
              fi
         else
              echo "please check yourphp"
         fi
      else
         echo "php不存在或者没有权限"
     fi
}
mysql_install(){
     #安装mysql
     yum groupinstall  -ymariadb-server mariadb
     systemctl restart mariadb
     RETVAL=$?
     if [ $RETVAL -eq 0 ]
     then
         systemctl enable mariadb  
         #修改root用户密码
         mysqladmin -u root password "0"
#         #创建一个wordpress数据库
#        mysql -u root -p0 -e "create database wordpress"
#        mysql -u root -p0 -e"show databases"
         #给数据库授权
        mysql -uroot -p0 -e "grant all privileges on *.* to 'root'@'%'identified by '0'; FLUSH PRIVILEGES;"
     else
         echo "mysql启动失败"
     fi
}
mysql_check(){
     rpm -qa | grep mariadb
     RETVAL=$?
     if [ $RETVAL -eq 0 ]
     then
         systemctl status mariadb
         RETVAL=$?
         if [ $RETVAL -eq 0 ]
         then
              echo "mysql正在运行中"
         else
              echo "未运行mysql"
         fi
     else
         echo "未安装mysql"
     fi
}

case "$1" in
     nginx)
          if [ ! -f $NGINX ]
          then
               nginx_install
               nginx_check
          else
               echo "已经安装nginx了"
          fi
          ;;
     php-fpm)
          if [ ! -f $PHP ]
          then
               php-fpm_install
               php-fpm_check
          else
               echo "已经安装php了"
          fi
     mysql)
          rpm -qa | grep mariadb
          RETVAL=$?
          if [ $RETVAL -eq 0 ]
          then
               mysql_install
                        mysql_check
          else
               echo "已经安装mysql了"
          fi
          ;;
esac  查看服务是否启动
  [root@zxb ~]# netstat -ntlp

Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      111792/mysqld      
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      18548/nginx: worker
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1508/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2118/master         
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      18378/php-fpm: mast
tcp6       0      0 :::22                   :::*                    LISTEN      1508/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2118/master  部署完lnmp环境后接下来安装zabbix
  开始安装zabbix
  1.首先安装依赖包
[root@zxb ~]# yum install make gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml OpenIPMI-devel libxml2-devel
  2.创建zabbix账户
  [root@zxb ~]# useradd zabbix -s /sbin/nologin

3.创建zabbix数据库,并赋予权限

  [root@zxb ~]# mysql -uroot -p0

Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 153Server version: 5.5.56-MariaDB MariaDB ServerCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help.
Type '\c' to clear the current input statement.
MariaDB [(none)]>create database zabbix character set utf8 collate utf8_bin;
Query OK, 0 rows affected (0.00 sec
MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)  4.下载zabbix,解压并导入数据库
[root@zxb src]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz  [root@zxb src]# tar xf zabbix-3.2.7.tar.gz
[root@zxb src]# cd zabbix-3.2.7
[root@zxb src]# cd zabbix-3.2.7/database/mysql/
[root@zxb mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zxb mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zxb mysql]# mysql -uzabbix -pzabbix zabbix < data.sql

5.编译安装zabbix_server
  [root@zxb zabbix-3.2.7]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --prefix=/usr/local/zabbix
[root@zxb zabbix-3.2.7]# make && make install

6.修改nginx配置文件,指定(创建)目录和支持php
  [root@zxb ~]# mkdir /web
  [root@zxb ~]# vim /usr/local/nginx/conf/nginx.conf

   server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
           root   /web;
           index  index.php index.html index.htm;
        }
       location ~ \.php$ {
            root           /web;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }  7.重新加载nginx
  [root@zxb ~]# /usr/local/nginx/sbin/nginx -s reload

  8.修改zabbix对应文件的数据库账号和密码
  [root@zxb ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix  9.复制启动项脚本,并修改相应参数
  [root@zxb ~]# cd /usr/local/src/zabbix-3.2.7
[root@zxb zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
[root@zxb zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
  [root@zxb ~]# vim /etc/init.d/zabbix_server
将ZABBIX_BIN=&quot;/usr/localsbin/zabbix_server&quot;
  改为ZABBIX_BIN=&quot;/usr/local/zabbix/sbin/zabbix_server&quot;
  [root@zxb ~]# vim /etc/init.d/zabbix_agentd

  将ZABBIX_BIN=&quot;/usr/localsbin/zabbix_agentd&quot;
  改为ZABBIX_BIN=&quot;/usr/local/zabbix/sbin/zabbix_agentd&quot;


  10.启动并设置开机自启
  [root@zxb ~]# /etc/init.d/zabbix_server start
Starting zabbix_server (via systemctl):                    [ 确定  ]
[root@zxb ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl):                    [  确定  ]
[root@zxb ~]# chkconfig zabbix_server on
[root@zxb ~]# chkconfig zabbix_agentd on

11.修改php.ini支持的文件大小等,不然zabbix网页容易报错
  [root@zxb ~]# vim /etc/php.ini

max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
post_max_size = 32M  12.重启nginx和php,使修改的参数生效
  [root@zxb ~]# /usr/local/nginx/sbin/nginx -s reload
[root@zxb ~]#  /usr/local/php/sbin/php-fpm -c /etc/php.ini &

  13.复制zabbix的php项目到nginx目录下,并给权限
  [root@zxb ~]# cd /usr/local/src/zabbix-3.2.7/frontends
  [root@zxb frontends]# cp -rf php /web/zabbix
[root@zxb ~]# chown -R nginx:nginx /web/zabbix

14.接着开始访问web:  http://IP/zabbix

  ①报错,需要安装php的扩展bcmath,并重新编译


  解决方法:

  [root@zxb ~]# cd /usr/local/src/php-5.5.38/ext/bcmath/
[root@zxb bcmath]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
[root@zxb bcmath]#
[root@zxb bcmath]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@zxb bcmath]# make && make install

  Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
[root@zxb bcmath]# vim /etc/php.ini

  extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/bcmath.so
重启php

  [root@zxb bcmath]# /usr/local/php/sbin/php-fpm -c /etc/php.ini & (重启php)

  ②接着会有以下错误

  解决方法:
  [root@zxb ~]# ln -s /var/lib/mysql/mysql.sock /tmp/
[root@zxb ~]# vim /etc/php.ini

  mysqli.default_socket =/var/lib/mysql/mysql.sock
[root@zxb ~]# /usr/local/php/sbin/php-fpm -c /etc/php.ini &

  ③接着默认下一步按照提示即可(熟悉的界面-用户:Admin 密码:zabbix)


  ④修改为中文(php是模块化的语言,进入gettext文档单独编译gettext模块)
  [root@zxb ~]# cd /usr/local/src/php-5.5.38/ext/gettext/
[root@zxb gettext]# /usr/local/php/bin/php
[root@zxb gettext]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
[root@zxb gettext]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@zxb gettext]# make && make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
[root@zxb gettext]# vim /etc/php.ini

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

  [root@zxb ~]# /usr/local/php/sbin/php-fpm -c /etc/php.ini & (重启php)

  #然后到图形界面的右上角点击admin用户,切换中文

  ⑤解决中文乱码问题

  找到本地C:\Windows\Fonts\simkai.ttf(楷体)上传到服务器zabbix目录fonts,将原有的字体替换掉
  [root@zxb gettext]# cd /web/zabbix/fonts/
[root@zxb fonts]# ls
DejaVuSans.ttf
[root@zxb fonts]# rz
[root@zxb fonts]# ls
DejaVuSans.ttf  simkai.ttf
[root@zxb fonts]# mv simkai.ttf DejaVuSans.ttf
mv:是否覆盖&quot;DejaVuSans.ttf&quot;? y
[root@zxb fonts]#

  修改后刷新查看


  Zabbix安装完成。。。。。。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665209-1-1.html 上篇帖子: zabbix常见问题解决方法 下篇帖子: Zabbix中WEB页图表的中文乱码解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表