Zabbix 5.0.2源码包在线安装

Zabbix架构及原理

参见:https://blog.csdn.net/ximenjianxue/article/details/96479839

安装过程

1、下载zabbix源码包:
https://cdn.zabbix.com/zabbix/sources/stable/5.0/
Zabbix 5.0.2源码包在线安装_第1张图片
2、安装开发环境依赖包:
yum -y install net-snmp-devel libevent-devel
在这里插入图片描述
yum install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash -y //php安装
Zabbix 5.0.2源码包在线安装_第2张图片

3、创建zabbix用户和组,禁止本地登录
useradd -r -M -s /sbin/nologin zabbix //-M 不创建用户的HOME目录,r 创建系统账户
4、安装配置MySQL
进入MySQL社区下载:https://dev.mysql.com/downloads/mysql/
因我的环境是CentOS Linux release 7.1.1503 (Core),这里选linux7,我们选rpm二进制集成包(里面包含了编译好的常用软件和工具)
Zabbix 5.0.2源码包在线安装_第3张图片
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar
Zabbix 5.0.2源码包在线安装_第4张图片
在这里插入图片描述
【安装先后顺序】
1)rpm -Uvh mysql-community-common-8.0.21-1.el7.x86_64.rpm
2)rpm -Uvh mysql-community-libs-8.0.21-1.el7.x86_64.rpm
报错如下:
Zabbix 5.0.2源码包在线安装_第5张图片

相关网络资料验证是因为:mariadb-libs
Zabbix 5.0.2源码包在线安装_第6张图片
Zabbix 5.0.2源码包在线安装_第7张图片
这样,总共将删除6个包
Zabbix 5.0.2源码包在线安装_第8张图片
卸载后再次安装就可成功:
在这里插入图片描述
3)rpm -Uvh mysql-community-client-8.0.21-1.el7.x86_64.rpm
Zabbix 5.0.2源码包在线安装_第9张图片
4)rpm -Uvh mysql-community-server-8.0.21-1.el7.x86_64.rpm
在这里插入图片描述
Zabbix 5.0.2源码包在线安装_第10张图片

5)或者直接可以:
yum localinstall mysql-community-common-5.7.28-1.el7.x86_64.rpm mysql-community-libs-5.7.28-1.el7.x86_64.rpm mysql-community-client-5.7.28-1.el7.x86_64.rpm mysql-community-server-5.7.28-1.el7.x86_64.rpm
Zabbix 5.0.2源码包在线安装_第11张图片
在这里插入图片描述
6)验证:systemctl list-unit-files --type=service |grep mysql
在这里插入图片描述
7)启动服务:systemctl start mysqld
/usr/bin/mysqld --user=root //进行强制使用root账号启动,使用一个普通用户进行启动mysqld 。这个用户必须是属于mysqld用户组,且在my.cnf文件中指定user=mysql;
8)修改MySQL配置文件my.cnf
vim /etc/my.cnf
Zabbix 5.0.2源码包在线安装_第12张图片

如果启动服务过程中,提示权限不足,删掉mysqld.pid文件后,重启服务让其自动生成新的pid文件,因进程号变了。

注:修改MySQL默认数据目录,需将MySQL系统的数据文件复制到新目录,必须要复制,否则在新目录因为找不到系统数据,而启动不了数据库。
在这里插入图片描述

# cat >/etc/my.cnf.d/client.cnf < [client]
> socket=/video/mysql/mysql.sock    //这里的socket是指mysqld的socket,需与my.cnf文件里的一致
> EOF

cat >/etc/my.cnf.d/server.cnf <

chown -R mysql:mysql /etc/my.cnf.d
Zabbix 5.0.2源码包在线安装_第13张图片
Zabbix 5.0.2源码包在线安装_第14张图片

9)修改密码和配置zabbix数据库:
set password for 用户名@localhost = password(‘新密码’);
或mysqladmin -u用户名 -p旧密码 password 新密码

mysql> use mysql;
mysql> update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;
mysql> flush privileges; //忘记密码,musql登录是,加mysqld –skip-grant-tables选项,登录进去后进行修改
alter user test identified by ‘123456’;
实际中,必须先用:alter user ‘root’@‘localhost’ identified by ‘Root@123’;
初始设置密码,必须满足复杂性,因受参数validate_password_policy影响限制,默认其值为1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
mysql> show variables like ‘validate_password_policy%’;
Zabbix 5.0.2源码包在线安装_第15张图片
Zabbix 5.0.2源码包在线安装_第16张图片
如不想麻烦可修改:mysql> set global validate_password_policy=0;
授权zabbix数据库,这是报授权语法错误:
在这里插入图片描述
注:mysql8.0以前的版本可以使用grant在授权的时候隐式的创建用户,8.0以后已经不支持,所以必须先创建用户,然后再授权,执行,
在这里插入图片描述
Zabbix 5.0.2源码包在线安装_第17张图片
其他数据库操作:
ysql> select user(); //user() 方法将返回当前用户信息
±---------------+
| user() |
±---------------+
| test@localhost |
±---------------+
1 row in set (0.00 sec)

mysql> alter user user() identified by ‘aaaaaa’;
mysql> alter user test identified by ‘123456’ password expire; //使密码过期
mysql> alter user test identified by ‘123456’ password expire never;
mysql> alter user test identified by ‘123456’ password expire default; //默认过期时间
mysql> alter user test identified by ‘123456’ password expire interval 90 day; //过期提醒间隔

10、导zabbix入初始架构和数据
cd home/cmcc/zabbix-5.0.2/database/mysql //源码包模板目录
Zabbix 5.0.2源码包在线安装_第18张图片
执行:
mysql -uzabbix -p zabbix < schema.sql
mysql -uzabbix -p zabbix < images.sql
mysql -uzabbix -p zabbix < data.sql
Zabbix 5.0.2源码包在线安装_第19张图片
11、编译安装zabbix
执行:

./configure --enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2

libxml2包安装:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libxml2-2.9.1-6.el7.4.x86_64.rpm
wget http://xmlsoft.org/sources/libxml2-2.9.2.tar.gz
然后
./configure --prefix=/usr --disable-static --with-history
Zabbix 5.0.2源码包在线安装_第20张图片
参数说明:
–disable-static: This switch prevents installation of static versions of the libraries.

–with-history: This switch enables Readline support when running xmlcatalog or xmllint in shell mode.

–with-python=/usr/bin/python3: Add this switch if you want libxml2 to use Python3 instead of Python2.
继续执行:
make //如果编译时,提示libxml.c:14:20: fatal error: Python.h: No such file or directory,请安装yum install python-dev
Zabbix 5.0.2源码包在线安装_第21张图片
Zabbix 5.0.2源码包在线安装_第22张图片
验证:
在这里插入图片描述
再次编译:
Zabbix 5.0.2源码包在线安装_第23张图片

make install
Zabbix 5.0.2源码包在线安装_第24张图片
Zabbix 5.0.2源码包在线安装_第25张图片

至此执行zabbix的编译安装:
验证:find / -name ‘libxml-2.0*’
Zabbix 5.0.2源码包在线安装_第26张图片
find / -name pkgconfig //找到默认pkgconfig路径
cd /usr/lib64/pkgconfig 发现里面确实没有libxml-2.0.pc,应该是路径修改后失效了
Zabbix 5.0.2源码包在线安装_第27张图片
cd /usr/lib64/pkgconfig/
ln -s /video/zabbix/libxml2-2.9.2/libxml-2.0.pc ./libxml-2.0.pc

安装:yum install -y net-snmp-devel
Zabbix 5.0.2源码包在线安装_第28张图片
Zabbix 5.0.2源码包在线安装_第29张图片
安装:yum install libevent-devel -y
Zabbix 5.0.2源码包在线安装_第30张图片
Zabbix 5.0.2源码包在线安装_第31张图片
安装: yum install libcurl-devel curl-devel -y
Zabbix 5.0.2源码包在线安装_第32张图片
Zabbix 5.0.2源码包在线安装_第33张图片
configure: error: SSH2 library not found
安装:yum install libssh2-devel
Zabbix 5.0.2源码包在线安装_第34张图片

执行zabbix编译,成功:


./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-ssh2

Zabbix 5.0.2源码包在线安装_第35张图片
Zabbix 5.0.2源码包在线安装_第36张图片
Zabbix 5.0.2源码包在线安装_第37张图片
**注意:**出现提示运行“make isntall”的才表明编译成功

执行安装: make install
Zabbix 5.0.2源码包在线安装_第38张图片
注: 不指定文件夹,默认会安装在编译所在目录,即编译安装时的目录。
在这里插入图片描述
zabbix-5.0/misc/init.d // 启动脚本可以在该目录下拷贝,有不同平台的启动脚本
在这里插入图片描述
cp /zabbix-5.0.0/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
cp /zabbix-5.0.0/misc/init.d/fedora/core/zabbix_server /etc/init.d/
然后修改脚本的 BASEDIR:
BASEDIR=/usr/local/zabbi
12、zabbix服务端配置
vim /etc/zabbix_server.conf
DBPassword=longnian123. //设置zabbix数据库连接密码
创建日志目录:mkdir -p /video/zabbix/logs
配置zabbix_agentd:vi zabbix_agentd.conf

LogFile=/data/zabbix/logs/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1 
Hostname=zabbix

13、验证安装效果:
1)查看zabbix_server的版本
Zabbix 5.0.2源码包在线安装_第39张图片
Zabbix 5.0.2源码包在线安装_第40张图片

2)启动zabbix_server
/sbin/zabbix_server
Zabbix 5.0.2源码包在线安装_第41张图片
3)为nginx配置zabbix用来做web管理
cp -pr /video/zabbix/ui/* /usr/local/app/nginx/zabbix/
Zabbix 5.0.2源码包在线安装_第42张图片
4)配置php:
Zabbix 5.0.2源码包在线安装_第43张图片
发现没有安装:php-fpm.x86_64 0:5.4.16-48.el7
在这里插入图片描述
上图说明php安装成功。如果出不来,编辑~/.bashrc,然后在文件末尾添加export PATH=$PATH:/usr/local/php/bin后,执行source ~/.bashrc,

配置php:etc/php-fpm.conf,
Zabbix 5.0.2源码包在线安装_第44张图片
Zabbix 5.0.2源码包在线安装_第45张图片
Zabbix 5.0.2源码包在线安装_第46张图片
完成后执行:php-fpm &
在这里插入图片描述
Zabbix 5.0.2源码包在线安装_第47张图片
创建测试文件:

cat >index.php <  phpinfo()
> ?>
> EOF

Zabbix 5.0.2源码包在线安装_第48张图片
Zabbix 5.0.2源码包在线安装_第49张图片
附:

server {
        listen xxx;
        server_name xxx.test.com;

        location / {
         
        root  /Downloads/Dokcers/b1/downloads;
        autoindex on;       # <----罪魁祸首,添加这个以后不再出现403错误
        #index  index.php index.html;  

        # auth 
        auth_basic "Please input B1 password";     # 设置加密登陆的提示
        auth_basic_user_file /etc/nginx/xxx/.htpasswd;  # 设置加密的账号密码文件
       }

        # log
        access_log /Downloads/Dokcers/b1/web/access.log;
        error_log /Downloads/Dokcers/b1/web/error.log info;  # 打开这个模式有助于排错

        # IP access  
        allow 192.168.x.x/24;  # 限制IP段登陆
        deny all;
        location / {
          proxy_pass http://10.10.254.25/;
          proxy_set_header  Host    $host;
          proxy_set_header  X-Real-IP  $remote_addr;
          proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }

php测试数据库连接失败:
Zabbix 5.0.2源码包在线安装_第50张图片
/var/lib/mysql/mysql.sock
Zabbix 5.0.2源码包在线安装_第51张图片
卡在php连接数据库异常:
FastCGI sent in stderr: “Unable to open primary script: /usr/local/app/nginx//html/test.php (Permission denied)” while reading response header from upstream,

你可能感兴趣的:(Linux知识点)