Zabbix4.0源码安装基于LNMP

15.Zabbix基于LNMP

1.准备工作

  • 安装Nginx,MySQL,PHP

    • Nginx 1.16.1
    • MySQL 5.7.28
    • PHP 7.1
  • 使用源码编译安装Zabbix

    • 下载源码包
    • 编译前配置
    • 编译并安装

2.下载zabbix源码包文件

#下载zabbix源码包
wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.14/zabbix-4.0.14.tar.gz
#解压源码包
tar xf zabbix-4.0.14.tar.gz
#创建一个运行zabbix的守护用户
对于所有 Zabbix 守护进程,需要一个非特权用户。 如果从非特权用户帐户启动 Zabbix 守护程序,它将以该用户身份运行。
groupadd zabbix
useradd -g zabbix zabbix

3.Nginx

3.1 安装Nginx

直接使用yum安装就是1.16.1版本的nginx

yum install nginx -y

3.2 配置Nginx默认配置文件

Ps:这个版本的nginx有默认网站,在/etc/nginx/nginx.conf里面有一个默认的server,删掉就好

#这是已经配置好的配置文件
[root@znmp ~]# cat /etc/nginx/nginx.conf
user www;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;
}

3.3 配置zabbix的虚拟站点配置

#配置启动nginx进程的用户
useradd -M -s /sbin/nologin www
#创建zabbix主页目录
mkdir /zabbix-web
chown www.www /zabbix-web
#导入zabbix网页文件
cp -rp zabbix-4.0.14/frontends/php/* /zabbix-web/
#配置nginx
[root@znmp ~]# cat /etc/nginx/conf.d/zabbix.xiaoqiang.com.conf
server {
        listen 80;
        server_name zabbix.xiaoqiang.com;
        root /zabbix-web;

        location / {
                index index.php;
        }
        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

配置好不着急启动,先放着.

4.MySQL

4.1 安装MySQL

#安装MySQL源
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
#安装MySQL服务
yum install mysql-community-server mysql-community-devel -y
#启动MySQL服务
systemctl start mysqld

!这里有一个坑!

MySQL数据库不同于MariaDB,MySQL默认有密码,需要在日志文件里过滤出来密码,每个人安装之后密码都是不一样的,需要自己过滤

#查询mysql的初始密码:
#初始密码密码是随机产生的,每台机器产生的都不一样的
grep 'temporary password' /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: EJ5V?sT6oQEu

4.2 登陆MySQL修改密码

#这里的登陆密码就是过滤出来的那一串字符
mysql -uroot -pEJ5V?sT6oQEu
#修改mysql密码
mysql> alter user root@localhost identified by 'Root123.'
`单引号内的字符就是新密码,不包括单引号,密码需要包含字母、数字、字符三种,区分大小写。`

4.3 创建zabbix需要的库

#创建zabbix库并授权zabbix用户访问zabbix库
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Root123.';

4.4 导入zabbix库数据

cd zabbix-4.0.14/database/mysql
mysql -uzabbix -pRoot123. zabbix < schema.sql
mysql -uzabbix -pRoot123. zabbix < images.sql 
mysql -uzabbix -pRoot123. zabbix < data.sql
#如果是配置zabbix代理只导入第一条就ok,这里是server所以三条都导入
#注意要按照这个顺序导入,否则可能会报错!

5.PHP

5.1 配置PHP源并安装

#php官方源地址
[root@web01 ~]# cat /etc/yum.repos.d/php.repo 
[webtatic-php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
#安装php相关软件包
yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb php71w-bcmath php71w-ldap
#配置php-fpm程序启动的身份
[root@znmp ~]# grep '^[a-Z]' /etc/php-fpm.d/www.conf 
....
user = www
group = www
....
#更改/var/lib里的php目录权限
chown www.www -R /var/lib/php
#调整修改php.ini配置
post_max_size = 32M
max_execution_time = 350
max_input_time = 350
date.timezone = Asia/Shanghai
#在php.ini里新增这一条
always_populate_raw_post_data = -1

配置完成后不着急启动,放着就行

6.编译并配置zabbix-server

6.1 编译zabbix-server

#配置编译环境
yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2 libxml2-devel curl curl-devel
#进入解压的目录配置
cd zabbix-4.0.14/
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
make && make install
#选项说明
--prefix=/usr/local/zabbix					#指定安装目录
--enable-server											#安装zabbix server
--enable-agent											#安装zabbix agent
--with-mysql=/usr/bin/mysql_config	#用mysql来存储
#添加路径变量(临时生效,重启失效)
export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/

6.2 配置zabbix-server

#配置zabbix-server配置文件
[root@znmp ~]# grep '^[a-Z]' /usr/local/zabbix/etc/zabbix_server.conf
....
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Root123.
AlertScriptsPath=/usr/local/zabbix/alertscripts
ExternalScripts=/usr/local/zabbix/externalscripts
....

7.启动nginx、php-fpm、zabbix-server...

#重启nginx、php-fpm服务
systemctl restart nginx php-fpm
#启动zabbix-server
zabbix_server
#如果需要监控自身状态就执行以下命令启动agent端
zabbix_agentd

8.配置hosts劫持

x.x.x.x zabbix.xiaoqiang.com

9.访问网页并配置

访问http://zabbix.xiaoqiang.com配置

10.总结

做这个lnmp还是有很多坑的,比如权限、各种安装包、各种路径问题,都有可能是坑.只要了解了这个原理就很简单了,下面贴一张图解

别妄自尊大! 别妄自菲薄! QQ技术交流群:Linux架构师之路~ 471443208
原文地址:https://www.cnblogs.com/oldxu/p/15340107.html