zoukankan      html  css  js  c++  java
  • Centos7编译安装zabbix5

    一、zabbix服务端安装

    1.1 环境说明

    本文基于 CentOS7.9 操作系统进行 zabbix 的编译安装,zabbix版本是 5.4.8。服务器已经安装好 Nginx、PHP、MySQL,基于LNMP一键安装包安装。

    LNMP安装参考:https://lnmp.org/install.html。注意 PHP 版本要7.2或者7.2以上。各个软件版本如下:

    [root@zabbix ~]# php -v
    PHP 7.2.34 (cli) (built: Oct  1 2020 13:37:37) ( NTS )
    
    [root@zabbix ~]# nginx -V
    nginx version: nginx/1.20.1
    
    [root@zabbix ~]# mysql -V
    mysql  Ver 14.14 Distrib 5.7.34, for Linux (x86_64) using  EditLine wrapper
    

    下面开始正式安装。

    1.2 配置Go语言环境

    zabbix 的客户端我打算使用 zabbix-agent2,这是 zabbix 新的客户端,使用 go 语言编写,所以需要 Go 的编译环境。另外 zabbix 5.4 版本增加了一个使用 go 编写的 zabbix web service 程序,用来实现 PDF 的生成,此程序编译也需要使用 go 语言编译环境。注意我这里安装的zabbix版本比较新,要求Go的版本需要1.16。

    # 下载二进制包
    $ cd /usr/local/src/ && wget https://dl.google.com/go/go1.16.11.linux-amd64.tar.gz
    # 解压到指定目录
    $ tar -zxvf go1.16.11.linux-amd64.tar.gz -C /usr/local/
    # 配置环境变量
    $ echo 'export GOROOT=/usr/local/go' >> /etc/profile
    $ echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/profile
    $ source /etc/profile
    
    # 出现版本提示信息即表示安装完成
    $ go version
    go version go1.16.11 linux/amd64
    
    # 配置go mod代理
    $ go env -w GOPROXY=https://goproxy.cn,direct
    

    1.3 编译安装zabbix-server

    # 创建用户管理zabbix
    $ useradd zabbix -s /sbin/nologin
    
    # 创建zabbix的PID文件目录和日志目录
    $ mkdir -p /var/run/zabbix
    $ mkdir -p /var/log/zabbix
    $ chown -R zabbix:zabbix /var/run/zabbix
    $ chown -R zabbix:zabbix /var/log/zabbix
    
    # 安装依赖包
    $ yum -y install gcc gcc-c++ unixODBC-devel mysql-devel libcurl libcurl-devel libevent libevent-devel fping curl-devel libxml2  libxml2-devel snmpd net-snmp-devel net-snmp
    
    # 下载和解压源码包
    $ cd /usr/local/src/  && wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.8.tar.gz
    $ tar -zxvf zabbix-5.4.8.tar.gz
    
    # 编译安装
    $ cd zabbix-5.4.8
    $ ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent2 --enable-webservice --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
    $ make && make install
    

    1.4 初始化数据库

    zabbix数据库文件在源码包里面有提供,登录MySQL创建数据库,然后导入即可。

    $ cd /usr/local/src/zabbix-5.4.8/database/mysql/
    $ ls
    data.sql  double.sql  images.sql  Makefile  Makefile.am  Makefile.in  schema.sql
    
    # 创建数据库
    mysql> create database zabbix character set UTF8 collate utf8_bin;
    mysql> use zabbix
    # 按照顺序导入三张表
    mysql> source schema.sql
    mysql> source images.sql
    mysql> source data.sql
    
    # 创建用户,用于连接zabbix数据库
    mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';
    mysql> flush privileges;
    

    1.5 配置zabbix-server服务

    首先,创建zabbix-server的配置文件:

    # 备份自带的配置文件
    $ cp /usr/local/zabbix/etc/zabbix_server.conf{,.bak}
    # 重新修改配置文件,修改如下:
    $ cat /usr/local/zabbix/etc/zabbix_server.conf
    PidFile=/var/run/zabbix/zabbix_server.pid
    LogFile=/var/log/zabbix/zabbix_server.log
    DBHost=127.0.0.1
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    Timeout=4
    LogSlowQueries=3000
    StatsAllowedIP=127.0.0.1
    
    # 可以启动一下,看有没有问题
    $ /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
    # 可以看到端口已经开起来,表明启动成功
    $ netstat -lntp | grep zabbix
    tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      63995/zabbix_server
    # 先关掉
    $ killall zabbix_server
    

    用命令行的方式停止和启动有点麻烦,用 systemd 来管理 zabbix_server。

    $ cat /lib/systemd/system/zabbix-server.service 
    [Unit]
    Description=Zabbix Server
    After=syslog.target
    After=network.target
    After=mysql.service
    After=mysqld.service
    After=mariadb.service
    After=postgresql.service
    After=pgbouncer.service
    After=postgresql-9.4.service
    After=postgresql-9.5.service
    After=postgresql-9.6.service
    After=postgresql-10.service
    After=postgresql-11.service
    After=postgresql-12.service
    After=postgresql-13.service
    
    [Service]
    Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
    EnvironmentFile=-/etc/sysconfig/zabbix-server
    Type=forking
    Restart=on-failure
    PIDFile=/var/run/zabbix/zabbix_server.pid
    KillMode=control-group
    ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
    ExecStop=/bin/kill -SIGTERM $MAINPID
    RestartSec=10s
    TimeoutSec=0
    User=zabbix
    Group=zabbix
    
    [Install]
    WantedBy=multi-user.target
    

    启动zabbix_server

    $ systemctl daemon-reload
    $ systemctl enable --now zabbix-server
    $ systemctl start zabbix-server
    $ netstat -lntp | grep zabbix
    tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      64607/zabbix_server
    

    1.6 配置web站点

    首先,需要配置前端界面的代码。前端页面代码在zabbix源码包的ui目录下,将其拷贝到Nginx虚拟主机的站点目录里。

    # 创建zabbix站点目录
    $ mkdir -p /home/wwwroot/zabbix
    
    # 拷贝前端文件
    $ cp -rf /usr/local/src/zabbix-5.4.8/ui/* /home/wwwroot/zabbix/
    
    # 授予权限
    $ chown -R www:www /home/wwwroot/zabbix
    

    然后,创建Nginx虚拟主机:

    $ cat >> zabbix_server.conf << 'EOF'
    server
        {
            listen 80 ;
            server_name myzabbix.com;
            index index.html index.htm index.php;
            root  /home/wwwroot/zabbix;
    
            location ~ [^/]\.php(/|$)
            {
                try_files $uri =404;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
            }
    }
    EOF
    
    $ nginx -t 
    $ ngnix -s reload
    

    访问 IP 地址就可以看到web安装界面了。

    1.7 web界面安装

    初次安装zabbix,选择中文,点击下一步:

    这一步会检查本地环境的配置,这里PHP的 max_input_time 的值不符合要求,需要进行修改:

    # 编辑php.ini配置文件
    $ vim /usr/local/php/etc/php.ini
    
    # 将max_input_time = 60 修改为
    max_input_time = 300
    
    # 然后重新加载php-fpm
    
    $ /etc/init.d/php-fpm reload
    

    填写数据库连接信息:

    自定义一个web后台的名称:

    保持默认,下一步:

    检查一下安装参数是否正取,无误就下一步:

    下一步出现这个界面就点击完成即可,会自动跳转到登录页面。

    登录,默认账号:Admin,密码:zabbix:

    登录后的可以看到新版zabbix5的界面了:

    至此,zabbix-server端安装完毕。

    二、zabbix客户端安装

    2.1 配置GO环境

    这里选择安装 zabbix-agent2,由于是编译安装,所以,被监控的主机也需要有GO的编译环境。与上文一样操作即可。

    # 下载二进制包
    $ cd /usr/local/src/ && wget https://dl.google.com/go/go1.16.11.linux-amd64.tar.gz
    # 解压到指定目录
    $ tar -zxvf go1.16.11.linux-amd64.tar.gz -C /usr/local/
    # 配置环境变量
    $ echo 'export GOROOT=/usr/local/go' >> /etc/profile
    $ echo 'export PATH=$PATH:$GOROOT/bin' >> /etc/profile
    $ source /etc/profile
    
    # 出现版本提示信息即表示安装完成
    $ go version
    go version go1.16.11 linux/amd64
    
    # 配置go mod代理
    $ go env -w GOPROXY=https://goproxy.cn,direct
    

    2.2 编译安装zabbix-agent2

    # 下载源码包并解压
    $ cd /usr/local/src/  && wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.8.tar.gz
    $ tar -zxvf zabbix-5.4.8.tar.gz
    $ cd zabbix-5.4.8/
    
    # 编译安装zabbix-agent2
    $ ./configure --prefix=/usr/local/zabbix-agent2 --enable-agent2
    $ make && make install
    

    2.3 配置zabbix-agent2服务

    接下来,配置zabbix-agent2

    # 首先,创建用户、创建pid文件和日志文件的目录
    $ useradd zabbix -s /sbin/nologin
    $ mkdir -p /var/{log,run}/zabbix
    $ chown -R zabbix:zabbix /var/{run,log}/zabbix
    
    # 编辑配置zabbix-agent2的配置文件
    $ cat > /usr/local/zabbix-agent2/etc/zabbix_agent2.conf << EOF
    PidFile=/var/run/zabbix/zabbix_agent2.pid
    LogFile=/var/log/zabbix/zabbix_agent2.log
    LogFileSize=0
    SourceIP=192.168.5.81   	# 本机的IP   
    Server=192.168.5.80         # zabbix-server的IP或Proxy的IP
    ServerActive=192.168.5.80   # zabbix-server的IP或Proxy的IP
    Hostname=192.168.5.81       # 本机IP 
    EOF
    

    使用systemd管理zabbix-agent2:

    $ cat > /lib/systemd/system/zabbix-agent2.service << 'EOF'
    [Unit]
    Description=Zabbix Agent 2
    After=syslog.target
    After=network.target
    
    [Service]
    Environment="CONFFILE=/usr/local/zabbix-agent2/etc/zabbix_agent2.conf"
    EnvironmentFile=-/etc/sysconfig/zabbix-agent2
    Type=simple
    Restart=on-failure
    PIDFile=/var/run/zabbix/zabbix_agent2.pid
    KillMode=control-group
    ExecStart=/usr/local/zabbix-agent2/sbin/zabbix_agent2 -c $CONFFILE
    ExecStop=/bin/kill -SIGTERM $MAINPID
    RestartSec=10s
    User=zabbix
    Group=zabbix
    
    [Install]
    WantedBy=multi-user.target
    EOF
    

    启动zabbix-agent2:

    $ systemctl daemon-reload
    $ systemctl enable --now zabbix-agent2
    $ systemctl start zabbix-agent2
    $ netstat -lntp | grep zabbix
    tcp6       0      0 :::10050                :::*                    LISTEN      25532/zabbix_agent2
    

    至此,zabbix-agent2安装完毕。

    三、zabbix组件安装

    3.1 安装zabbix_get组件

    # RPM包安装
    $ rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.36-1.el7.x86_64.rpm
    
    # 安装完成后的二进制文件
    $ which zabbix_get
    /usr/bin/zabbix_get
    
    # 执行
    $ zabbix_get -s 192.168.5.81 -p 10050 -k 'system.hostname'
    zabbix-agent2
    
  • 相关阅读:
    非确定的自动机NFA确定化为DFA--作业8
    正规式到正规文法与自动机--作业7
    正规文法与正规式--作业六
    词法分析程序的设计与实现--作业五
    文法和语文总结与梳理--作业4
    语法树,短语,直接短语,句柄--作业
    文法和语言--作业
    作业-编译原理概述
    js实现线性结构转树形结构(生成无限层级菜单)
    基于PriorityQueue(优先队列)解决TOP-K问题
  • 原文地址:https://www.cnblogs.com/syushin/p/15660487.html
Copyright © 2011-2022 走看看