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
posted @ 2021-12-08 11:09  syushin  阅读(514)  评论(1编辑  收藏  举报