Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能。同时Zabbix 是一个企业级的分布式开源监控方案。

刚好我们公司类没有类似服务,之前不常用的服务器宕机2天才被发现。于是我们决定在机房服务器上面部署一套。

部署前准备:

1.关闭防火墙并关闭开机启动

   systemctl stop firewalld.service
   systemctl disable firewalld.service

2. 关闭SELinux安全机制

2.1 临时关闭

 setenforce 0

2.2 永久关闭

 vim /etc/selinux/config
设置SELINUX=enforcing为SELINUX=disabled

3.安装Nginx

Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源。

$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

配置yum 源 之后安装 Nginx,非常简单,一条命令。

$yum install nginx

安装之后我们设置开机启动和启动Nginx

#开机启动命令
$ systemctl enable nginx
启动Nginx命令
$ systemctl start nginx

想了解更多Nginx的使用命令可以移步参考下。

3.安装MySQL

# 下载
 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安装 mysql 源
yum localinstall mysql57-community-release-el7-11.noarch.rpm

使用 yum install 命令安装

yum install -y mysql-community-server

在 CentOS 7 下,新的启动/关闭服务的命令是 systemctl start|stop

#启动MySQL
systemctl start mysqld
#设置开机启动MySQL
systemctl enable mysqld
# 重载所有修改过的配置文件
systemctl daemon-reload

修改 root 本地账户密码

mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log 文件中。使用 grep 命令查看默认密码。

grep 'temporary password' /var/log/mysqld.log
#登录进去之后使用下面命令修改密码
set password for root@localhost = password(‘Abc@123456’);

MySQL默认密码策略是需要大小写+数字+特殊符号哦,不然会报错。

4.安装PHP7.2


#更新PHP yum源
rpm -Uvh https://dl.Fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 源
#安装PHP及扩展 yum install php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql -y   
php -v #查看版本
PHP 7.2.10 (cli) (built: Sep 15 2018 07:10:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

4 配置nginx支持PHP:


vim /etc/php-fpm.d/www.conf

user = nginx    #将Apache改为nginx

5 配置PHP:


vim /etc/php.ini
expose_php = Off    #隐藏PHP版本
max_execution_time = 300    #监控执行时间
max_input_time = 300    #接收数据等待时间
memory_limit = 128M    #每个脚本占用内存
post_max_size = 16M    #POST数据大小
upload_max_filesize = 2M    #下载文件大小
always_populate_raw_post_data = -1    #可以用$HTTP_RAW_POST_DATA接收post raw data
date.timezone = Asia/Shanghai    #将时区设为上海时区

6 配置PHP请求被传送到后端的php-fpm模块,默认情况下php配置模块是被注释掉的:


vim /etc/nginx/conf.d/default.conf
index  index.php index.html index.htm;
location ~ \.php$ {
root          /usr/share/nginx/html;
fastcgi_pass  127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_scr ipt_name;
include fastcgi_params;
}

#把fastcgi_param中的/scripts改为$document_root,root是配置php程序用户

7 开启服务


systemctl start php-fpm.service 
systemctl enable php-fpm.service 
systemctl restart nginx

#创建PHP测试首页


vim /usr/share/nginx/html/index.php

<?php
phpinfo();
?>

5.安装Zabbix

配置Zabbix源

#rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

安装Zabbix
#

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

我在这里报错了,我把yum源改为阿里源就成功了。请参考Centos7 修改yum源为阿里源


zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix    
#将zabbix脚本文件导入到zabbix数据库中
mysql -u zabbix -p
MariaDB [(none)]> use zabbix
show tables;    #查看zabbix数据库中的表,如果脚本导入成功,就应该会看到很多表

修改zabbix配置文件,需要修改以下内容:

vim /etc/zabbix/zabbix_server.conf 
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost        #去掉注释
DBName=zabbix
117:DBUser=zabbix
DBPassword=123123    #修改密码
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

然后启动zabbix-server、zabbix-agent、Nginx


 systemctl restart zabbix-server zabbix-agent httpd
 systemctl enable zabbix-server zabbix-agent httpd

最好打开你的访问安装页面 http://你的ip地址/zabbix 访问