zabbix4.0-编译安装:LNMP+zabbix4.0

 

相关网址:

nginx下载地址:http://nginx.org/en/download.html

php下载地址:https://www.php.net/downloads.php

mysql下载地址:https://dev.mysql.com/downloads/mysql/   ,也可以到mariadb官方下载mariadb数据库,现在是centos7默认的数据库。

zabbix:下载Zabbix

系统版本:centos7

安装包版本:

nginx-1.14.2.tar.gz

php-5.6.40.tar.gz

mysql-5.6.39.tar.gz

zabbix-4.0.5.tar.gz



Nginx编译安装

1.Nginx服务器编译安装
# yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
# cd /usr/local/src
# yum install  –y  lrzsz
# wget 'http://nginx.org/download/nginx-1.14.2.tar.gz'
# tar -zxvf nginx-1.14.2.tar.gz
# cd nginx-1.14.2
#./configure --prefix=/usr/local/nginx
# make && make install

 

2.配置环境变量,并查看nginx命令是否可用

#vim /etc/profile
export PATH=$PATH:/usr/local/nginx/sbin/
#source /etc/profile
#nginx -t

 

3.使用systemctl管理Nginx

复制代码
#vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
[Install]
WantedBy=multi-user.target
#systemctl daemon-reload
#systemctl start nginx
复制代码

 


PHP编译安装

 

1.下载php包,并编译安装

复制代码
#yum -y install epel-release
#yum -y install  gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel
#rz
#cd /usr/local/src/
#tar -zxf php-5.6.40.tar.gz
#cd php-5.6.40
#./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm
(可以编译安装到指定目录,报错缺少相应开发包的话,yum search 寻找,安装相应包即可)
此次错误报错缺少libmcrypt开发包,yum search 寻找后,安装libmcrypt-devel.x86_64即可。
#make && make install  
复制代码
  PHP的编译安装说明
    --prefix指定php的安装目录
    --with-config-file-path指定php的配置文件位置
    --with-mysql、--with-mysqli让php可以操作mysql
    --enable-fpm主要是nginx要来调用php语言得使用php-fpm

 

2.配置php的环境变量、修改配置文件

复制代码
#vim /etc/profile
export PATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/
#source /etc/profile
检查配置文件,会报错
#php-fpm -t
将默认配置文件,重命名为/php-fpm.conf
#mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
查看php-fpm的配置文件,查看下listen配置,若该文件中没有Listen监听端口配置,那可能在php-fpm.d/下的配置文件中。
#vim /usr/local/php/etc/php-fpm.conf
复制代码

 

3.使用systemctl管理php-fpm

复制代码
#vim /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
[Install]
WantedBy=multi-user.target
启动php-fpm
#systemctl start php-fpm
#systemctl enable php-fpm
复制代码

 


关于Nginx+PHP注意事项

 

注意:nginx的默认配置无法处理php程序/usr/local/nginx/html/test.php
验证:#vim /usr/local/nginx/html/test.php
<?php
  echo "taobao zabbix";
?>

=====若不修改配置,网站是识别不了该页面的。===
nginx+php-fpm结合的配置,修改对应选项,然后重启nginx就可以识别php页面了。

复制代码
#vim /usr/local/nginx/conf/nginx.conf
location / {
            root   html;
            index  index.html index.htm index.php;
        }
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name; # /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }
红色字为新加字段。
#systemctl restart nginx
复制代码

 


Mysql编译安装

 

1.下载mysql安装包,并编译安装
复制代码
#yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel
#useradd -s /sbin/nologin mysql
#cd /usr/local/src
#tar -zxvf mysql-5.6.39.tar.gz
#cd mysql-5.6.39
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
(安装目录、数据目录可自己选择)
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql   安装目录
-DMYSQL_DATADIR=/data/mysql       数据库存放目录
-DDEFAULT_CHARSET=utf8          使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci    检验字符
-DWITH_EXTRA_CHARSETS:STRING=all    安装所有扩展字符集
-DWITH_DEBUG=0
 -DWITH_SSL=yes    支持SSL
-DWITH_READLINE=1   支持快捷功能
-DENABLED_LOCAL_INFILE=1  允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1     \#安装数据库分区
-DMYSQL_TCP_PORT=3306                \#MySQL 监听端口
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径
#make && make install
  中途出错,#make  clean   清除后,解决再重新编译,一般情况下是缺少依赖组件。
复制代码

 

2.配置环境变量

#vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin/
#source /etc/profile

 

3.编辑mysql配置文件,并创建相应目录

复制代码
#vim /etc/my.cnf
    [mysqld]
    bind-address=0.0.0.0
    port=3306
    datadir=/data/mysql
    user=mysql     
    skip-name-resolve
    long_query_time=2
    slow_query_log_file=/data/mysql/mysql-slow.log
    expire_logs_days=2
    innodb-file-per-table=1
    innodb_flush_log_at_trx_commit = 2
    log_warnings = 1
    max_allowed_packet      = 512M
    connect_timeout = 60
    net_read_timeout = 120
 
    [mysqld_safe]
    log-error=/data/mysql/mysqld.log
    pid-file=/data/mysql/mysqld.pid
#mkdir –pv /data/mysql
#chown -R mysql:mysql  /usr/local/mysql  /data/mysql/(如果没有mysql目录,则创建一个再执行)
复制代码

 

4.数据库初始化

#yum install –y perl-Module-Install
#/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysql/

 

5.复制启动文件,并使用systemctl管理mysqld,启动。

复制代码
# cp  support-files/mysql.server  /etc/init.d/mysqld
# chmod a+x /etc/init.d/mysqld
查看mysql是否可以运行
#/etc/init.d/mysqld  status
#vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqld
After=network.target
[Service]  
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target
#systemctl start mysqld
复制代码

此时mysql的root用户默认是没有密码的,即默认让127.0.0.1访问,用户名root,不需要密码。

  且mysql能限制ip访问、访问需要用户名密码、mysql权限还能再细分
  登录#mysql -uroot -h 127.0.0.1 -A
 

6.mysql修改root用户密码,并登录
#mysqladmin -h 127.0.0.1 -u root password 'zabbixpwd'      mariadb
 
登录mysql
#mysql -h 127.0.0.1 -uroot -pzabbixpwd -A

 

7.mysql授权某ip可以使用root用户登录

赋予权限:
>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTION;
刷新:
>flush privileges;
 
网络登录mysql
#mysql -h 192.168.1.11 -uroot -pzabbixpwd -A

至此,LNMP搭建完毕。

 

LNMP环境测试
 
编写一个php文件,并用到mysql的连接
复制代码
#vim /usr/local/nginx/html/test_mysql.php
<?php
echo "Zabbix 4.X 演示<br><br>";

    $conn = new mysqli("127.0.0.1","root","mariadb");

    if ($conn->connect_error) {
            die("连接数据库失败: ");
    }

    echo "连接数据库成功";

?>
 
验证LNMP环境
http://192.168.1.11/test_mysql.php
复制代码

 


 


zabbix4.0编译安装
 
zabbix的部署原理
  1. zabbix server需要把监控数据入sql数据库,所以得Mysql环境。
  2. zabbix的web是基于php开发的,所以得LNMP环境。
  3. 部署zabbix_server和zabbix_web。
 
1.下载zabbix4.0.5的安装包,并编译安装
复制代码
#yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel
# useradd -s /sbin/nologin zabbix
#cd /usr/local/src
#wget'https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.5/zabbix-4.0.5.tar.gz'
# tar -zxvf zabbix-4.0.5.tar.gz
#cd zabbix-4.0.5
#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
###此编译对应的是mysql源码编译安装后
#make && make install
复制代码
注意::若是mysql是yum安装的,则对于"--with-mysql参数需要指定的mysql_config文件,Yum安装mariadb-server、mariadb包是没有的,需要再下载mariadb-devel包",
下载#yum inatall -y mariadb-devel
然后#rpm -ql mariadb-devel|grep "mysql_config"

然后再编译:

#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2

若--with-mysql后不指定参数,则在编译时会提示报错

 

 2.将zabbix_server添加到systemctl进程中

复制代码
#vim /usr/lib/systemd/system/zabbix_server.service
[Unit]
Description=zabbix_server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/zabbix/sbin/zabbix_server
[Install]
WantedBy=multi-user.target
复制代码

 

3.在mysql数据库中创建需要的数据库和用户,然后将sql表结构导入到创建的数据库中。

复制代码
#mysql -h 127.0.0.1 -uroot -pzabbixpwd -A
    > create database zabbix character set utf8 collate utf8_bin;
    > grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbixpwd';
    >flush privileges;
    >set names utf8;
    >use zabbix;
    >source /usr/local/src/zabbix-4.0.5/database/mysql/schema.sql;
    >source /usr/local/src/zabbix-4.0.5/database/mysql/data.sql;
    >source /usr/local/src/zabbix-4.0.5/database/mysql/images.sql;    
复制代码

需要导入的三张表

 

 

 4.配置zabbix_server的配置文件,并启动zabbix_server进程。

复制代码
#vim /usr/local/zabbix/etc/zabbix_server.conf
    LogFile=/usr/local/zabbix/zabbix_server.log
    DBHost=127.0.0.1
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbixpwd
    DBPort=3306
    Timeout=30
    AlertScriptsPath=/usr/local/zabbix/alertscripts
    ExternalScripts=/usr/local/zabbix/externalscripts
    LogSlowQueries=3000
# chown zabbix:zabbix -R /usr/local/zabbix/
# systemctl start zabbix_server
复制代码

 

5.配置zabbix_web端:

创建相应的目录,复制相应的准备文件及目录

#mkdir /usr/local/nginx/html/zabbix
#cp /usr/local/src/php-5.6.40/php.ini-production /usr/local/php/etc/php.ini
#cp -a /usr/local/src/zabbix-4.0.5/frontends/php/* /usr/local/nginx/html/zabbix/
 
访问zabbix web,进入web网页做一些初始化设置,有一些错误,需要进入配置文件修改某些参数;对php做配置优化,
然后重启php-fpm程序
优化
#vim /usr/local/php/etc/php.ini
         post_max_size = 32M
         max_execution_time = 350
         max_input_time = 350
         date.timezone = Asia/Shanghai
         always_populate_raw_post_data = -1
#systemctl restart php-fpm

页面配置完成后,结束;

默认用户名和密码:Admin  zabbix 
    修改后密码:zabbixpwd
         禁用Zabbix server主机的监控。
         禁用guest用户。
         更改Admin的密码,改成自己的密码。
 
 

 

posted @   浮~生  阅读(155)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示