拓
目录
拓扑环境:
环境所需要的软件包
搭建LNMP 环境
安装mysql
安装php
1)安装依赖软件包:
2)安装 libmcrypt:
3)安装PHP
3)生成 php.ini 配置文件
4)创建php-fpm服务启动脚本
5)提供php-fpm配置文件并编辑
5)启动 php-fpm服务
安装nginx
1)安装依赖关系包:
2)编译安装nginx
3)启动nginx服务
4)配置ngixn 支持 php
5)测试LNMP
Zabbix中文在线手册
创建导入zabbix 数据库
1)创建 zabbix 使用的数据库
2)解压zabbix-4.2.6.tar.gz
3)导入数据库,注意顺序,否则会报错
安装依赖
创建用户
预编译
安装
配置 zabbix servcer
监控 Zabbix server 本身
启动服务
1)直接运行
2) 解决库文件找不到
3)查看端口
添加 zabbix启动脚本
配置zabbix web 页面
1)拷贝 php 文件到 nginx 网站目录
2)开启默认打开 index.php
3)重启ngix 服务和 php-fpm 服务
打开浏览器安装 zabbix web
1)访问zabbix web
3)下一步
登录zabbix
修改语言
1) 显示简体中文界面
2)解决zabbix绘图出现中文乱码问题:
监控本机
1)点击配置-主机 启用本主机
2) 启动zabbix_agnent
3)刷新页面,查看agent状态
zabbix启动服务总结
环境拓扑
| 主机 | 主机名 | IP地址 | 操作系统 | 软件版本 |
| zabbix监控端 | zabbix_server | 192.168.30.11 | Centos7.5 | zabbix-4.2.6 |
| Linux 被监控端 | zabbix_server02 | 192.169.30.12 | Centos7.5 |
zabbix监控端:192.168.30.11 #zabbix的服务端(若要监控本机,则需要配置本机的zabbix agent)
Zabbix agent被监控主机, #zabbix的客户端(被监控端,需要配置Zabbix agent)
关闭selinux 和 防火墙
环境所需要的软件包
php-5.6.36
libmcryptt-2.5.7
MySQL-5.7.26
nginx
zabbix-4.2.6
搭建LNMP 环境
安装mysql
MySQL安装略,具体安装过程可参考MySQL安装篇
安装php
1)安装依赖软件包:
[root@zabbix_server ~]# 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
2)安装 libmcrypt:
[root@zabbix_server ~]# 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
2)安装 libmcrypt:
实现 PHP安全通信的软件包
上传软件包并解压:
[root@zabbix_server ~]# tar zxf libmcrypt-2.5.7.tar.gz
[root@zabbix_server ~]# cd libmcrypt-2.5.7
[root@zabbix_server libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
3)安装PHP
[root@zabbix_server ~]# tar zxf php-5.6.36.tar.gz
[root@zabbix_server ~]# cd php-5.6.36
[root@zabbix_server 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
[root@zabbix_server php-5.6.36]# make && make install
3)生成 php.ini 配置文件
[root@zabbix_server php-5.6.36]# cp php.ini-production /etc/php.ini
编辑配置文件/etc/php.ini , 修改如下内容:
date.timezone = PRC #设置时区 去掉注释
expose_php = Off #禁止显示php版本的信息
short_open_tag = On //支持php短标签
post_max_size = 16M //上传文件大小
max_execution_time = 300 //php脚本最大执行时间
max_input_time = 300 //以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制
always_populate_raw_post_data = -1 #提交数据的行格式
mbstring.func_overload = 0 #是否覆盖
在php.ini当中默认支持的是长格式标签
长格式和段格式标签的书写:
4)创建php-fpm服务启动脚本
nginx支持php访问 需要fpm模块
[root@zabbix_server php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
给与 x 执行权限
[root@zabbix_server php-5.6.36]# chmod +x /etc/init.d/php-fpm
添加成系统服务:
[root@zabbix_server php-5.6.36]# chkconfig --add php-fpm [root@zabbix_server php-5.6.36]# chkconfig php-fpm on
5)提供php-fpm配置文件并编辑
cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
创建程序用户
[root@zabbix_server ~]# useradd -M -s /sbin/nologin www
修改配置文件:
vim /usr/local/php5.6/etc/php-fpm.conf
修改内同如下:
pid = run/php-fpm.pid #pid文件取消注释
user = www #程序用户改为www
group = wwwlisten = 127.0.0.1:9000
pm.max_children = 300 #最大进程数限制
pm.start_servers = 10 # frpm 启动后开启多少个进程
pm.min_spare_servers = 10 #最小空闲线程数,一般和开启线程一致就可以
pm.max_spare_servers = 50 #最大空闲线程
5)启动 php-fpm服务
[root@zabbix_server ~]# /etc/init.d/php-fpm start
安装nginx
1)安装依赖关系包:
[root@zabbix_server ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
2)编译安装nginx
[root@zabbix_server ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre pcre-devel
2)编译安装nginx
上传软件包并解压:
[root@zabbix_server ~]# tar zxf nginx-1.10.3.tar.gz [root@zabbix_server ~]# cd nginx-1.10.3 [root@zabbix_server 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@zabbix_server nginx-1.10.3]# make && make instal
3)启动nginx服务
便于执行nginx 给ngixn 创建链接
[root@zabbix_server ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@zabbix_server ~]# nginx [root@zabbix_server ~]# netstat -anptl | grep nginx
4)配置ngixn 支持 php
修改 nginx.conf配置文件:
vim /usr/local/nginx/conf/nginx.conf
user www www;
worker_processes 4;
error_log logs/error.log;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 10024;
}
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:
nginx -t 检测配置文件语法是否有误
nginx -s reload 重载nginx
5)测试LNMP
进入nginx默认网页根目录,创建.php测试页
vim /usr/local/nginx/html/test.php
创建php和mysql直接连接的测试页
vim /usr/local/nginx/html/test2.php
mysql和 php是在一台主机上,主机使用localhost没问题
使用MySQL root账号登入
访问结果:
访问php 连接mysql 测试页
LNMP部署完毕
Zabbix中文在线手册
Zabbix 产品手册https://www.zabbix.com/documentation/4.0/zh/manual
创建导入zabbix 数据库
Zabbix 需要数据库的支持(mysql,oracle,PostgreSQL,SQLite, DB2)都支持,而且Zabbix 源码包中已经自带了数据库结构
1)创建 zabbix 使用的数据库
[root@zabbix_server ~]# mysql -uroot -p123
mysql> create database zabbix character set utf8; #创建数据库和使用的字符集 mysql> grant all on zabbix.* to zabbix@localhost identified by '123'; #zabbix 用户授权 mysql> flush privileges; mysql> quit
2)解压zabbix-4.2.6.tar.gz
[root@zabbix_server ~]# tar zxf zabbix-4.2.6.tar.gz
[root@zabbix_server ~]# cd zabbix-4.2.6
3)导入数据库,注意顺序,否则会报错
把解压的zabbix目录下的database下mysql文件导入数据库
[root@zabbix_server zabbix-4.2.6]# mysql -uzabbix -p123 zabbix < database/mysql/schema.sql [root@zabbix_server zabbix-4.2.6]# mysql -uzabbix -p123 zabbix < database/mysql/images.sql [root@zabbix_server zabbix-4.2.6]# mysql -uzabbix -p123 zabbix < database/mysql/data.sql
如果在做分布式的环境中,Proxy服务器只需要导入schema.sql,agent不需要导入。Server必须三个都要导入。
安装依赖
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_server ~]# groupadd zabbix
[root@zabbix_server ~]# useradd -s /sbin/nologin -g zabbix zabbix #创建系统用户
预编译
root@zabbix_server ~]# cd zabbix-4.2.6
[root@zabbix_server zabbix-4.2.6]# ./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
[root@zabbix_server ~]# groupadd zabbix [root@zabbix_server ~]# useradd -s /sbin/nologin -g zabbix zabbix #创建系统用户
预编译
root@zabbix_server ~]# cd zabbix-4.2.6
[root@zabbix_server zabbix-4.2.6]# ./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
参数说明:
--prefix= #指定路径
--enable-server #zabbix Server 支持
--enable-agent #支持 Zabbix agent
--with-mysql #指定 MySql 库,可以选择自定路径mysql_config,mysql_config 是命令,用于编译 mysql 客户端程序
--with-net-snmp #支持 snmp 协议,需要安装 net-snmp-devel 包
--with-libcurl #支持 CURL 功能,libcurl 主要功能就是用不同的协议连接不同的服务器,libcurl当前支持的协议有 http,https,ftp,gopher,telent,dict,file,和 ldap 协议
--enable-java #支持java应用监控,编译时最好带上--enable-java这个参数,方便后续监控tomcat程序所用。
--with-openipmi用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应等
看到如下信息,预编译就没有什么问题
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
*
***********************************************************
其他参数:
--enable-proxy 指的是支持 zabbix 代理服务器,zabbix proxy 是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送的 zabbix server。监控代理服务需要一个独立的数据库。
用 zabbix proxy 的好处:进程监控,当监控文遏制通讯不方便的时候,当通讯上千台设备的时候,使用 zabbix_proxy 可以简化维护分布式监控,降低 zabbix server 的负载
安装
[root@zabbix_server zabbix-4.2.6]# make install
直接 make install 安装即可无需 make
为了方便在系统上操作zabbix相关命令,添加系统软连接
[root@zabbix_server ~]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/ [root@zabbix_server ~]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
配置 zabbix servcer
LogFile=/usr/local/zabbix/logs/zabbix_server.log #日志存放位置
PidFile=/usr/local/zabbix/logs/zabbix_server.pid #pid文件存放位置
DBHost=localhost #指定zabbix服务端连接MySQL数据库主机名
DBName=zabbix #数据库名
DBUser=zabbix #连接MySQL数据库的用户
DBPassword=123 #连接数据库的密码
DBPort=3306
创建日志文件,设置属主属组
[root@zabbix_server ~]# mkdir -p /usr/local/zabbix/logs [root@zabbix_server ~]# chown -R zabbix:zabbix /usr/local/zabbix/
监控 Zabbix server 本身
监控本身,意思是本身作为服务器之外,自己也做自己的被监控端,也要使用agent这个代理程序
[root@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 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
启动服务
如果 zabbix 用户不存在, 将以 root 运行,新建之后,如果 zabbix 存在,那么直接可以用 zabbix 运行
1)直接运行
[root@zabbix_server ~]# /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
如出现启动报错:
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
1.可能是ibmysqlclient.so.20软件包没安装
2.如已经按照,就是包的位置不对,找不到库文件 或没有在库文件的路径下查看
查看包是否安装:
find / -name libmysqlclient.so.20
2) 解决库文件找不到
在ld.so.conf中加入/usr/local/mysql/lib
把库文件所在的路径加到默认所搜库文件当中
vim /etc/ld.so.conf #解决库文件找不到
include ld.so.conf.d/*.conf /usr/local/mysql/lib #添加的路径
使库文件生效:
[root@zabbix_server ~]# ldconfig
启动zabbix_server:
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
3)查看端口
netstat -anptl | grep zabbix_server
服务端端口是10051
添加 zabbix启动脚本
Zabbix默认有部分启动脚本,脚本在源码目录的 misc/init.d/下,做下修改即可。
[root@zabbix_server ~]# cd /root/zabbix-4.2.6/misc/init.d/ [root@zabbix_server 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文件路径
设置开启自启:
[root@zabbix_server init.d]# chkconfig --add zabbix_server [root@zabbix_server init.d]# chkconfig --add zabbix_agentd [root@zabbix_server init.d]# chkconfig zabbix_server on [root@zabbix_server init.d]# chkconfig zabbix_agentd on
配置zabbix web 页面
1)拷贝 php 文件到 nginx 网站目录
cd /root/zabbix-4.2.6
[root@zabbix_server zabbix-4.2.6]# cp -r /root/zabbix-4.2.6/frontends/php/* /usr/local/nginx/html/
[root@zabbix_server zabbix-4.2.6]# chown -R www:www /usr/local/nginx/html/
cd /root/zabbix-4.2.6 [root@zabbix_server zabbix-4.2.6]# cp -r /root/zabbix-4.2.6/frontends/php/* /usr/local/nginx/html/ [root@zabbix_server zabbix-4.2.6]# 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
2)开启默认打开 index.php
vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm; #添加index.php默认首页
}
3)重启ngix 服务和 php-fpm 服务
nginx -s reload
/etc/init.d/php-fpm restart
打开浏览器安装 zabbix web
1)访问zabbix web
vim /usr/local/nginx/conf/nginx.conf
nginx -s reload /etc/init.d/php-fpm restart
打开浏览器安装 zabbix web
1)访问zabbix web
下一步Next
2)开始检查环境,确保环境符合条件要求
如果不符合,就需要编辑 php.ini 文件,修改php环境,修改后重启php-fpm
3)下一步
显示的端口信息,默认下一步就可以
合适zabbix的概要信息,不对可以点击back回去修改
单击finish完成zabbix web安装。
登录zabbix
默认用户名和密码分别为 admin,zabbix
登录后的界面:
基础zabbix安装完成
修改语言
1) 显示简体中文界面
在安装数据库时已经将zabbix库设置了utf-8字符
首先确定安装zabbix开启了中文支持功能:
登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/usr/local/nginx/html/),打开 locales.inc.php文件
[root@zabbix_server ~]# grep "zh_CN" /usr/local/nginx/html/include/locales.inc.php
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
登录zabbix 右上角点击用户图标,选择语言
2)解决zabbix绘图出现中文乱码问题:
在windows的控制面板,选择字体,选择一种中文字库例如“楷体”
把它拷贝到web端的fonts目录下:/usr/local/nginx/html/assets/fonts/,并确保后缀缪名为ttf
把之前的字体文件(DejaVuSans.ttf )移到别处,或重命名。
cd /usr/local/nginx/html/assets/fonts/ mv DejaVuSans.ttf ../
修改/usr/local/nginx/html/include/defines.inc.php文件中的字体配置,将里面关于字体设置从DejaVuSans替换成simkai
vi替换技巧:%s/DejaVuSans/simkai 其中:simkai为字库名,不含ttf后缀
vim /usr/local/nginx/html/include/defines.inc.php
在vi编辑器的末行模式下输入%s/DejaVuSans/simkai
监控本机
1)点击配置-主机 启用本主机
(默认没有启动,点击后面红色的停用,则启用)
2) 启动zabbix_agnent
/usr/local/zabbix/sbin/zabbix_agentd
3)刷新页面,查看agent状态
4)查看图像
zabbix启动服务总结
Nginx 服务启动
php-fpm 服务启动
Mysql 服务启动
测试LNMP环境正常
导入数据库、授权、源码安装 zabbix
zabbix_server 服务启动
zabbix_server 服务启动



