zabbix概念
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
实验环境如下
搭建zabbix需要LNMP或LAMP环境,我们搭建分布式的LNMP
记得关闭所有主机的firewalld
主机名 | IP | 角色 |
---|---|---|
zabbix | 192.168.1.11 | zabbix主程序 |
lnp | 192.168.1.12 | nginx , php |
mysql | 192.168.1.13 | mysql |
注意看主机名,在哪个主机操作我不阐述
用到的软件包都在这里了
链接:https://pan.baidu.com/s/1GYp6tSdPWlRk_Hz5BZ9Q0g
提取码:62q0
一. 先构建LNMP环境
1.后端mysql
安装mysql我就不说了,然后设置密码root密码为123456,并给root远程登陆权限
[root@mysql ~]# mysqladmin -uroot password '123456
'
[root@mysql ~]# mysql -uroot -p123456
mysql> grant all on *.* to root@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
2.安装nginx和PHP
软件包如下
nginx
[root@lnp ~]# mount /dev/cdrom /mnt/
[root@lnp ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
[root@lnp ~]# tar zxvf nginx-1.10.3.tar.gz
[root@lnp ~]# cd nginx-1.10.3/
[root@lnp nginx-1.10.3]# useradd www -s /sbin/nologin
[root@lnp nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www
[root@lnp nginx-1.10.3]# make && make install
[root@lnp nginx-1.10.3]# cd
[root@lnp ~]# ln -s /usr/local/nginx/sbin/* /usr/local/bin/
PHP
[root@lnp ~]# yum -y install make apr* autoconf automake curl-devel gcc gcc-c++ openssl openssl-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel
[root@lnp ~]# tar zxf libmcrypt-2.5.7.tar.gz
[root@lnp ~]# cd libmcrypt-2.5.7/
[root@lnp libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
[root@lnp libmcrypt-2.5.7]# cd
[root@lnp ~]# tar zxf php-5.6.36.tar.gz
[root@lnp ~]# cd php-5.6.36.tar.gz
[root@lnp php-5.6.36]# ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt=/usr/local/libmcrypt --with-curl
[root@lnp php-5.6.36]# make && make install
[root@lnp php-5.6.36]# cp php.ini-production /etc/php.ini
3.修改PHP的一些参数
[root@lnp php-5.6.36]# cd
[root@lnp ~]# vim /etc/php.ini
如下图片中黄色表的项打开注释或修改为我如下
时区设置
禁止显示php版本
支持短标签
上传文件大小限制
php脚本最大执行时间
以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制
删除如下两项注释
保存退出
启动脚本
[root@lnp ~]# cd /root/php-5.6.36/
[root@lnp php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@lnp php-5.6.36]# chmod +x /etc/init.d/php-fpm
[root@lnp php-5.6.36]# chkconfig --add php-fpm
修改PHP-fpm配置文件
[root@lnp php-5.6.36]# cd
[root@lnp ~]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@lnp ~]# vim /usr/local/php5.6/etc/php-fpm.conf
修改如下下面的项,如果有注释的打开,如果没有注释的直接修改
pid = run/php-fpm.pid
user = www
group = www
listen =127.0.0.1:9000
pm.max_children = 300
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers =50
[root@lnp ~]# /etc/init.d/php-fpm start
Starting php-fpm done
[root@lnp ~]# netstat -anpt | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 127519/php-fpm: mas
让nginx支持PHP
[root@lnp ~]# cd /usr/local/nginx/conf/
[root@lnp conf]# rm -rf nginx.conf
[root@lnp conf]# vim nginx.conf
user www;
worker_processes 4;
error_log logs/error.log;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
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 logs/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
[root@lnp conf]# 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@lnp conf]# nginx
[root@lnp conf]# netstat -anpt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 41766/nginx: master
4.测试LNMP
[root@lnp conf]# vim /usr/local/nginx/html/lamp1.php
<?php
phpinfo();
?>
[root@lnp conf]# vim /usr/local/nginx/html/lamp2.php
<?php
$link=mysql_connect('192.168.1.13','root','123456');
if($link) echo "eeeeee";
mysql_close();
?>
浏览器访问测试
http://192.168.1.12/lamp1.php
http://192.168.1.12/lamp2.php
二.安装zabbix主程序
1.首先在mysql中导入zabbix所需的数据库
[root@mysql ~]# mysql -uroot -p123456
mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to zabbix@'192.168.1.%' identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> exit
注意下面导入的顺序不能乱
[root@mysql ~]# tar zxvf zabbix-4.2.6.tar.gz
[root@mysql zabbix-4.2.6]# cd zabbix-4.2.6/
[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
2.安装zabbix_server服务
[root@zabbix ~]# tar zxf zabbix_rpm.tar.gz
[root@zabbix ~]# yum -y install createrepo
[root@zabbix ~]# createrepo zabbix_rpm
Spawning worker 0 with 7 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@zabbix ~]# vim /etc/yum.repos.d/centos7.repo
[name]
name=nihao
baseurl=file:///mnt
gpgcheck=0
[name2]
name=nihao2
baseurl=file:///root/zabbix_rpm
gpgcheck=0
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel libevent libevent-devel
[root@zabbix ~]# groupadd zabbix
[root@zabbix ~]# useradd -s /sbin/nologin -g zabbix zabbix
[root@zabbix ~]# cd /root/
[root@zabbix ~]# tar zxf zabbix-4.2.6.tar.gz
[root@zabbix ~]# yum -y install gcc*
[root@zabbix ~]# yum -y install libxml2-devel mysql-devel
[root@zabbix ~]# cd zabbix-4.2.6/
[root@zabbix zabbix-4.2.6]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-mysql
[root@zabbix zabbix-4.2.6]# make && make install
[root@zabbix zabbix-4.2.6]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@zabbix zabbix-4.2.6]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
3.配置zabbix_server
修改或取消注释如下行,前面的数字是行号,都是关于后台数据库的参数
[root@zabbix zabbix-4.2.6]# vim /usr/local/zabbix/etc/zabbix_server.conf
38 LogFile=/usr/local/zabbix/zabbix_server.log
68 PidFile=/usr/local/zabbix/logs/zabbix_server.pid
85 DBHost=192.168.1.13
94 DBName=zabbix
110 DBUser=zabbix
118 DBPassword=zabbix
133 DBPort=3306
[root@zabbix zabbix-4.2.6]# cd
[root@zabbix ~]# mkdir -p /usr/local/zabbix/logs
[root@zabbix ~]# chown -R zabbix:zabbix /usr/local/zabbix/
4.启动服务和启动脚本
[root@zabbix ~]# netstat -anpt | grep zabbix_server
[root@zabbix ~]# netstat -anpt | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 83970/zabbix_server
[root@zabbix ~]# cd /root/zabbix-4.2.6/misc/init.d/
[root@zabbix init.d]# cp fedora/core/* /etc/init.d/
[root@zabbix init.d]# vim /etc/init.d/zabbix_server #修改如下两行
22 BASEDIR=/usr/local/zabbix
31 PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid
[root@zabbix init.d]# chkconfig --add zabbix_server
[root@zabbix init.d]# chkconfig zabbix_server on
5.配置Web页面
lnp主机中
[root@lnp zabbix-4.2.6]# cp -r frontends/php/* /usr/local/nginx/html/
[root@lnp zabbix-4.2.6]# chown -R www:www /usr/local/nginx/html/
[root@lnp ~]# nginx -s reload
[root@lnp ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
5.浏览器安装zabbix
http://192.168.1.12
这个安装界面默认,是英文的,可以用浏览器的插件,翻译成中文看
有个LADP的是错误,不用管,直接下一步
摘要那一步直接,到这里,下一步
点击登入
安装完成如下,默认是英文的