zoukankan      html  css  js  c++  java
  • zabbix安装

    部署nginx,想监控nginx的运行状态,所以就去找找了资料,一开始看到阿里的tsar项目,但是部署总是不成功,,一怒之下想起来之前看到过的zabbix,听说这个工具对于运维监控运用很广泛,但是需要安装php执行环境就放弃了,今天决定尝试一下,还是有很多坑的,好不容易填平了,来记录一下。

    环境

    • ubuntu 16.04
    • nginx/1.10.0 (Ubuntu)

    安装

    zabbix需要php环境,所以需要安装php,mysql,nginx,zabbix。

    安装mysql

    apt-get install mysql

    安装nginx

    apt-get install nginx

    安装php

    # 安装php7.0,zabbix需要php5.4以上即可
    apt-get install php7.0-fpm
    # 安装php的mysql模块,需要安装对应php版本的模块
    apt-get install php7.0-mysql
    # zabbix使用到了以下几个php模块,在安装zabbix-server的时候会自动检测是否安装,一定要记得安装这几个,注意大坑
    apt-get install php-xml php-mbstring   php-bcmath

    修改php配置文件,/etc/php/7.0/fpm/php.ini中查找并修改以下内容(这些配置是zabbix安装必要的配置,在安装zabbix的时候会进行检测)

    date.timezone = Asia/Shanghai
    post_max_size = 16M
    max_execution_time = 300
    max_input_time = 300

    修改/etc/php/7.0/fpm/pool.d/www.conf,查找并修改以下内容(www-data是php用户、组,listen.mode 是控制/run/php/php7.0-fpm.sock的权限,不然后面nginx连接的时候会说没有权限)

    listen.owner = www-data
    listen.group = www-data
    listen.mode = 0666

    安装zabbix

    # 从源码安装,一开始直接安装deb,我下载的是3.0.1,安装完成之后,导入sql发现说数据库版本不对,我惊喜的发现zabbix居然是2.4版本的,所以还是直接下载源文件安装
    # 下载源码
    wget http://heanet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz
    # 解压
    tar -xvf zabbix-3.0.3.tar.gz
    # 进入解压目录
    cd zabbix-3.0.3
    # 创建zabbix用户和组
    groupadd zabbix
    useradd -g zabbix zabbix
    # 配置编译
    ./configure --prefix=/usr/local/zabbix-server --enable-server --enable-agent --with-mysql 
    # 安装,上面编译没有error
    make install

    配置zabbix

    vim /usr/local/zabbix-server/etc/zabbix_server.conf
    # 设置下列内容
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    ListenIP=127.0.0.1

    接下来创建数据库zabbix和数据库用户zabbix

    mysql -u root -proot
    # 创建数据库,记得设置字符集和校对集,不然后面汉化会有问题
    create database zabbix default charset utf8 default collate utf8_bin;
    # 创建用户并授权
    create user zabbix
    identified by ‘zabbix’;
    grant all on zabbix.* to zabbix@“%” identified by ‘zabbix’;
    flush privileges;

    将zabbix数据导入mysql

    # 切换到刚刚zabbix解压的目录
    cd zabbix-3.0.3/database/mysql
    # 按顺序依次导入数据
    mysql -uzabbix -pzabbix zabbix < schema.sql
    mysql -uzabbix -pzabbix zabbix < images.sql
    mysql -uzabbix -pzabbix zabbix < data.sql

    部署zabbix frontend,就是zabbix的界面,这里使用nginx作为php的服务器

    # 切换到zabbix解压目录
    cd zabbix-3.0.3/frontends
    # 复制php目录到nginx网页目录
    cp -r php /var/www/html
    # 重命名php目录
    mv php zabbix

    配置nginx

    #user www-data;
    worker_processes 3;
    #pid /run/nginx.pid;
    
    events {
            #use epoll
        worker_connections 8192;
        # multi_accept on;
    }
    
    http {
    
        ##
        # Basic Settings
        ##
    
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;
    
        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;
    
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
    
        ##
        # SSL Settings
        ##
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;
    
        ##
        # Logging Settings
        ##
    
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
    
        ##
        # Gzip Settings
        ##
    
        gzip on;
        gzip_disable "msie6";
    
        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    
        ##
        # Virtual Host Configs
        ##
    
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
    
    
            upstream web_app{
                server      127.0.0.1;
            }
            
            server{
                listen      80;
                server_name 127.0.0.1 10.10.31.119;
                location ~ .php$ {
                    root /var/www/html;
                    include snippets/fastcgi-php.conf;
                    proxy_pass      http://web_app;
                    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                }
            
            }
    }    

    记得检查nginx安装目录下有没有snippets/fastcgi-php.conf,一般来说安装nginx就带了这些模块不然不能处理php页面,如果nginx报错可以查看/var/log/nginx/access.log和/var/log/nginx/error.log排错,一定要养成查看日志的习惯

    摆了这么久的姿势,终于进入关键步骤了——开始配置安装zabbix

    在浏览器访问http://127.0.0.1/zabbix/setup.php,如果顺利的话就可以看到如下界面

    wonderful!!!终于看到这个界面,历尽千辛万苦.....好吧,前方高能预警,下面又是一个大坑

    很好,都是ok,如果顺利的话你也能看到,如果有问题的话,在/etc/php/7.0/fpm/php.ini配置文件中找到对应的选项并设置成REQUIRED的值。如果没有就需要安装,比如下面这些:

    apt-get install php7.0-xml
    apt-get install php7.0-bcmath
    apt-get install php7.0-mbstring
    apt-get install php7.0-gd

    一直下一步到最后,最后可能会出现配置文件失败,需要点击“Download the configuration file”下载下来手动复制到/var/www/html/zabbix/conf下面

    然后点击完成,启动zabbix-server

    /usr/local/zabbix-server/sbin/zabbix_server -c /usr/local/zabbix-server/etc/zabbix_server.conf

    打开http://127.0.0.1/zabbix/index.php页面登陆zabbix,默认用户名admin,密码zabbix,出现以下页面说明zabbix安装成功

    这篇有点长的了,另起一篇继续写zabbix监控nginx吧。

  • 相关阅读:
    自定义asp.net mvc Filter 过滤器
    基于委托的C#异步编程的一个小例子 带有回调函数的例子
    ASCII、Unicode和UTF-8编码的区别
    Specification模式的一个不错的示例代码
    codesmith 自动生成C# model 实体模板
    Quartz.NET 实现定时任务调度
    FtpHelper类匿名获取FTP文件
    crc32 根据字符串获取校验值
    机器学习能做什么
    RunHelper,一个为跑步而设计的开源的android app
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/5656645.html
Copyright © 2011-2022 走看看