安装zabbix
需要的软件包
php-5.6.36
libmcrypt-2.5.7
mysql-5.7.26
nginx-1.10.3
zabbix-4.2.6
搭建LNMP的环境
安装依赖环境
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
安装libmcrypt
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7/
./configure --prefix=/usr/local/libmcrypt && make && make install
安装php
tar zxf php-5.6.36.tar.gz
cd php-5.6.36/
./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --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
make && make install
生成php.ini配置文件
cd php-5.6.36/
cp php.ini-production /etc/php.ini
vim /etc/php.ini
找到:
;date.timezone =
修改为:
date.timezone = PRC #设置时区
找到:
expose_php = On
修改为:
expose_php = Off #禁止显示php版本的信息
找到:
short_open_tag = Off
修改为:
short_open_tag = On //支持php短标签
找到:
post_max_size = 8M
修改为:
post_max_size = 16M //上传文件大小
找到:
max_execution_time = 30
修改为:
max_execution_time = 300 //php脚本最大执行时间
找到:
max_input_time = 60
修改为:
max_input_time = 300 //以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制
always_populate_raw_post_data = -1
mbstring.func_overload = 0
创建php-fpm服务启动脚本
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
修改php-fpm配置文件
cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
useradd -M -s /sbin/nologin www
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
启动php-fpm
/etc/init.d/php-fpm start
netstat -anplt | grep php-fpm
##查看端口
安装nginx
安装依赖环境
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
编译安装nginx
tar zxf nginx-1.10.3.tar.gz
cd 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
make && make install
启动nginx服务
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
nginx
netstat -anplt | grep nginx
配置nginx支持php
vim /usr/local/nginx/conf/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;
}
}
}
nginx -s reload
##重载
测试lnmp
vim /usr/local/nginx/html/test1.php
<?php
phpinfo();
?>
vim /usr/local/nginx/html/test2.php
<?php
$link=mysql_connect('localhost','root','123456');
if($link) echo "ok";
mysql_close();
?>
创建zabbix使用的数据库
Mysql
##进入mysql(我这里没有密码,直接进就可以)
create database zabbix character set utf8;
grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
解压zabbix
tar zxf zabbix-4.2.6.tar.gz
cd zabbix-4.2.6/
导入数据库,顺序要弄好,瞎弄报错
mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
安装依赖
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
这里需要上传rpm的压缩包
进入到目录里
Yum -y install *
创建用户
groupadd zabbix
useradd -s /sbin/nologin -g zabbix zabbix
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
make install
##直接安装,不用编译,提示没有make步骤
添加系统软链接
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
配置zabbix server
vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
mkdir -p /usr/local/zabbix/logs
chown -R zabbix:zabbix /usr/local/zabbix/
监控zabbix server本身
vim /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=127.0.0.1
ListenPort=10050
ServerActive=127.0.0.1
Hostname=Zabbix server
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1
注:
其中 Server 和 ServerActive 都指定 Zabbix server 的 IP 地址,不同的是,前者是被动后者是主动。也就是说前者允许 127.0.0.1 这个 ip 来我这取数据。而 serverActive 的 127.0.0.1 的意思是,客户端主动提交数据给它。
Hostname=XXX,这个定义的名字必须和web页面里面host的名字一样。
UnsafeUserParameters=1 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
直接运行
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
会说库文件找不到(错误问题)
解决问题
vim /etc/ld.so.conf
在ld.so.conf中加入/usr/local/mysql/lib
include ld.so.conf.d/*.conf
/usr/local/mysql/lib #根据实际路径添加此行
ldconfig
#使库文件生效
再次重启
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
查看端口
netstat -anplt | grep zabbix_server
添加zabbix启动脚本
cd /root/zabbix-4.2.6/misc/init.d/
cp fedora/core/* /etc/init.d/
vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix #找到此行,并修改。zabbix安装目录
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid # pid文件路径
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix #找到此行,并修改。zabbix安装目录
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid # pid文件路径
添加开机自启
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on
配置zabbix web 页面
复制php文件到nginx网站目录
在解压目录中将frontends/php拷贝到指定的web root:
cd /root/zabbix-4.2.6/
cp -r /root/zabbix-4.2.6/frontends/php/* /usr/local/nginx/html/
chown -R www:www /usr/local/nginx/html/
注:/usr/local/nginx/html为Nginx默认站点目录 ,www为Nginx运行账户
注:PHP需要至少开启扩展: gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql
查看是否包括上面提到的模块
/usr/local/php5.6/bin/php -m
打开默认index.php
vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm; #找到此行内容,添加 index.php
}
重启nginx服务和php-fpm服务
/usr/local/nginx/sbin/nginx -s reload
/etc/init.d/php-fpm restart
到这里差不多就配置完了
打开浏览器安装zabbix web
开启检测环境
如果不符合,就需要编辑 php.ini 文件,修改php环境,修改后重启php-fpm
这里写mysql的用户和密码
这里都点击下一步
登录zabbix
默认的用户名和密码
账号:Admin密码:zabbix
进入,整挺洋气
点击小人,修改语音
在查看图形的时候会有小方块形状的乱码,我们解决一下
在Windows里控制面板搜索字体
把楷体拖到桌面上
cd /usr/local/nginx/html/assets/fonts/
放到这个目录下
然后,接着修改代码/usr/local/nginx/html/include/defines.inc.php文件中的字体配置,将里面关于字体设置从DejaVuSans替换成simkai
vi替换技巧:%s/DejaVuSans/simkai,其中:simkai为字库名字,不包含ttf后缀
[root@zabbix ~]# vim /usr/local/nginx/html/include/defines.inc.php
在vi编辑器的末行模式下输入%s/DejaVuSans/simkai
这样,修改后,zabbix监控图形中的中文字就不会出现乱码了
然后我们查看一下图形
发现变回中文了
本次实验就到这里了,如果有什么不对的地方请小伙伴们评论,谢谢哒!