写在前面
目前所用的虚拟机没办法访问外网,只能在公司内网环境偷偷摸摸的搞,所以要先配置yum!多多的yum!!!
环境准备
软件包准备
zabbix软件包提取码:3fzg
centos镜像提取码:jccg
虚拟机环境准备
[root@zabbix ~]# systemctl stop firewalld # 关闭防火墙,或者使用iptables放行端口
[root@zabbix ~]# setenforce 0 # selinux设置为宽松或者disable状态
[root@zabbix ~]# vim /etc/sysconfig/selinux # 设置selinux永久生效的状态
7 SELINUX=disabled
[root@zabbix ~]# getenforce
Permissive
yum源准备
[root@zabbix ~]# mkdir /iso # 创建一个用于放置ISO镜像的目录
[root@zabbix ~]# mkdir /mnt/{gz,guazai,aa} # 创建挂载目录
[root@zabbix ~]# mount -o loop /iso/CentOS-7-x86_64-DVD-2003.iso /mnt/gz/ # 将镜像分别挂载到每个目录
[root@zabbix ~]# mount -o loop /iso/Centos7/CentOS7-1804.iso /mnt/guazai/
[root@zabbix ~]# mount -o loop /iso/Centos7-aa/CentOS-7-x86_64-Everything-2003.iso /mnt/aa
[root@zabbix ~]# vim /etc/yum.repos.d/Centos.repo
[centos]
name=centos
baseurl=file:///mnt/gz
enabled=1
gpgcheck=0
[root@zabbix ~]# yum -y install yum-utils
[root@zabbix ~]# yum-config-manager --add file:///iso/Centos7/ # 将挂载的目录变成yum源
[root@zabbix ~]# yum-config-manager --add file:///mnt/guazai/
[root@zabbix ~]# yum-config-manager --add file:///mnt/aa
[root@zabbix ~]# vim /etc/yum.conf
8 gpgcheck=0
[root@zabbix ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
centos centos 4,071
mnt_aa added from: file:///mnt/aa 10,070
mnt_guazai_ added from: file:///mnt/guazai/ 9,911
repolist: 24,052
部署zabbix服务的运行环境
安装源码Nginx、mysql
# 下载依赖包
[root@zabbix ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel
# 上传软件
[root@zabbix ~]# cd /opt # 进入到目录,将zabbix的相关软件传到该目录
[root@zabbix opt]# ls
mysql-5.7.17.tar nginx-1.18.0.tar.gz rh zabbix40.tar.gz
[root@zabbix opt]# du -sh *
544M mysql-5.7.17.tar
1016K nginx-1.18.0.tar.gz
55M zabbix40.tar.gz
# 解压源码安装
[root@zabbix opt]# tar -xf nginx-1.18.0.tar.gz
[root@zabbix opt]# cd nginx-1.18.0/
[root@zabbix nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module
[root@zabbix nginx-1.18.0]# make && make install
[root@zabbix opt]# tar -xf mysql-5.7.17.tar
[root@zabbix opt]# yum -y install mysql-community-*
# 起服务
[root@zabbix ~]# /usr/local/nginx/sbin/nginx
[root@zabbix ~]# netstat -nutlp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 32507/nginx: master
[root@zabbix ~]# systemctl start mysqld
[root@zabbix ~]# ss -nutlp | grep 3306
tcp LISTEN 0 80 :::3306 :::* users:(("mysqld",pid=16929,fd=25))
yum安装php
[root@zabbix ~]# yum -y install php php-mysql php-fpm
[root@zabbix ~]# systemctl start php-fpm
[root@zabbix ~]# netstat -nutlp | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 5948/php-fpm: pool
[root@zabbix ~]# php -v
PHP 5.4.16 (cli) (built: Apr 1 2020 04:07:17)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
配置Nginx支持PHP
[root@zabbix ~]# vim /usr/local/nginx/conf/nginx.conf
48 location / {
49 root html;
50 index index.html index.php index.htm;
51 }
70 location ~ \.php$ {
71 root html;
72 fastcgi_pass 127.0.0.1:9000;
73 fastcgi_index index.php;
74 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
75 include fastcgi.conf;
76 }
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -s reload
# 测试
[root@zabbix ~]# vim /usr/local/nginx/html/test.php
<?php
phpinfo();
?>
[root@zabbix ~]# curl -I localhost
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Wed, 26 Aug 2020 03:32:22 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 20 Aug 2020 05:59:02 GMT
Connection: keep-alive
ETag: "5f3e1126-264"
Accept-Ranges: bytes
[root@zabbix ~]# curl -I localhost/test.php
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Wed, 26 Aug 2020 03:32:26 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.4.16
配置zabbix用户登录数据库
[root@zabbix ~]# grep "password" /var/log/mysqld.log
2020-08-24T02:05:24.590176Z 1 [Note] A temporary password is generated for root@localhost: gQxlpDep,16I
[root@zabbix ~]# mysql -uroot -p"gQxlpDep,16I"
mysql> alter user root@"localhost" identified by "123qqq...A";
[root@zabbix ~]# mysql -uroot -p123qqq...A # 登录数据库,授权zabbix用户
mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@"%" identified by "123qqq...A";
Query OK, 0 rows affected (0.00 sec)
[root@zabbix ~]# mysql -uzabbix -p123qqq...A zabbix # zabbix用户登录测试
安装zabbix
[root@zabbix ~]# mkdir /zabbix
[root@zabbix ~]# mv /opt/zabbix40.tar.gz /zabbix/
[root@zabbix ~]# cd /zabbix/
[root@zabbix zabbix]# tar -xf zabbix40.tar.gz
[root@zabbix zabbix]# yum-config-manager --add file:///zabbix/
[root@zabbix zabbix]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
centos centos 4,071
mnt_aa added from: file:///mnt/aa 10,070
mnt_guazai_ added from: file:///mnt/guazai/ 9,911
zabbix_ added from: file:///zabbix/ 87
repolist: 24,139
[root@zabbix ~]# yum -y install zabbix-web-mysql.noarch zabbix-server-mysql.x86_64 # 下载
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
100 DBName=zabbix
116 DBUser=zabbix
125 DBPassword=123qqq...A
38 LogFile=/var/log/zabbix/zabbix_server.log
# 将脚本内容拷到数据库中
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.7/create.sql.gz | mysql -h172.16.7.47 -uzabbix -p123qqq...A zabbix
[root@zabbix ~]# mysql -uzabbix -p123qqq...A zabbix -e "show tables" # 可以看到zabbix库中有141个表
使zabbix首页可以进行页面跳转
[root@zabbix ~]# yum -y install php-xml php-ldap php-bcmath php-mbstring php-gd
[root@zabbix ~]# vim /etc/php.ini
878 date.timezone = Asia/shanghai
384 max_execution_time = 300
672 post_max_size = 32M
394 max_input_time = 300
[root@zabbix ~]# systemctl restart php-fpm.service
[root@zabbix ~]# vim /usr/local/nginx/conf/nginx.conf
21 fastcgi_buffers 8 16k;
22 fastcgi_buffer_size 32k;
23 fastcgi_connect_timeout 300;
24 fastcgi_send_timeout 300;
25 fastcgi_read_timeout 300;
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -s reload
上线网页
[root@zabbix ~]# cp -a /usr/share/zabbix/* /usr/local/nginx/html/
[root@zabbix ~]# chmod -R 777 /usr/local/nginx/html
[root@zabbix ~]# ls /usr/local/nginx/html/index.*
/usr/local/nginx/html/index.html /usr/local/nginx/html/index.php
浏览器访问首页
http://ip地址/index.php
排错
如果刷新页面报出以下问题:
[root@zabbix ~]# tail -f /var/log/zabbix/zabbix_server.log
4812:20200907:111718.388 database connection re-established
4812:20200907:111718.535 [Z3005] query failed: [2013] Lost connection to MySQL server during query [insert into trends (itemid,clock,num,value_min,value_avg,value_max) values (23273,1599231600,60,6.837845,6.837845,6.837845),(10073,1599231600,60,0.877662,0.883439,0.896077);
]
4812:20200907:111718.535 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
4812:20200907:111718.535 database is down: reconnecting in 10 seconds
4812:20200907:111728.542 database connection re-established
4812:20200907:111728.743 [Z3005] query failed: [2013] Lost connection to MySQL server during query [insert into trends (itemid,clock,num,value_min,value_avg,value_max) values (23273,1599231600,60,6.837845,6.837845,6.837845),(10073,1599231600,60,0.877662,0.883439,0.896077);
]
# 解决办法:
在mysql的配置文件添加一行参数,使zabbix连接mysql数据库时进行密码认证
[root@zabbix ~]# vim /etc/my.cnf
default_authentication_plugin=mysql_native_password
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf # 指向mysql的socket文件
DBSocket=/var/lib/mysql/mysql.sock
重启服务
[root@zabbix ~]# systemctl restart mysqld
[root@zabbix ~]# killall zabbix_server
[root@zabbix ~]# zabbix_server