时间:2020-03-03来源:电脑系统城作者:电脑系统城
博文大纲:
一、zabbix运行架构
二、Zabbix监控术语
三、部署Zabbix监控平台``
一、zabbix运行架构
Zabbix是一个企业级的分布式开源监控解决方案。它能够监控各种服务器的健康性、网络的稳定性以及各种应用系统的可靠性。当监控出现异常时,Zabbix通过灵活的告警策略,可以为任何事件配置基于邮件、短信、微信等告警机制。而这所有的一切,都可以通过Zabbix提供的web界面进行配置和操作,基于web的前端页面还提供了出色的报告和数据可视化功能。这些功能和特性使我们运维人员可以非常轻松的搭建一套功能强大的运维监控管理平台。
Zabbix的运行架构如下:
三、部署Zabbix监控平台
Zabbix的监控平台部署比较简单,前提是准备好LNMP或LAMP环境。
我这里将从部署LNMP环境开始配置。
注:我这里将所有服务部署在同一台服务器上,仅仅是一个简单的监控架构,并没有部署 zabbix proxy等。
Zabbix官方的相关链接:
Zabbix 4.2 配置文档、Zabbix 官网首页。
在进行下面的部署操作之前,请先下载我提供的各种源码包,并上传至Zabbix服务器。
1、部署安装nginx
#解包
[root@zabbix ~]# tar zxf pcre-8.39.tar.gz -C /usr/src
[root@zabbix ~]# tar zxf nginx-1.14.0.tar.gz -C /usr/src
[root@zabbix ~]# tar zxf zlib-1.2.8.tar.gz -C /usr/src
#安装依赖及nginx
[root@zabbix ~]# yum -y install openssl-devel pcre-devel
[root@zabbix ~]# cd /usr/src/nginx-1.14.0/
[root@zabbix nginx-1.14.0]# ./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=/usr/src/pcre-8.39 --with-zlib=/usr/src/zlib-1.2.8 --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www && make && make install
#创建运行用户及命令优化
[root@zabbix nginx-1.14.0]# useradd -M -s /sbin/nologin www
[root@zabbix nginx-1.14.0]# cd
[root@zabbix ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@zabbix ~]# vim /usr/local/nginx/conf/nginx.conf #编辑nginx配置文件
server {
listen 80;
location / {
root html;
index index.php index.html index.htm; #添加index.php
}
#注意删除下面段落的注释符号
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf; #修改此行
}
[root@zabbix ~]# nginx #启动nginx
#编写php首页文件
[root@zabbix ~]# cat > /usr/local/nginx/html/index.php << EOF
> <?php
> phpinfo();
> ?>
> EOF
2、部署安装PHP
#安装依赖
[root@zabbix ~]# yum -y install libxml2-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel
#解包
[root@zabbix ~]# tar zxf php-5.6.27.tar.gz -C /usr/src/
[root@zabbix ~]# tar zxf libmcrypt-2.5.7.tar.gz -C /usr/src
#编译安装libmcrypt
[root@zabbix ~]# cd /usr/src/libmcrypt-2.5.7
[root@zabbix libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt && make && make install
#编译安装PHP
[root@zabbix libmcrypt-2.5.7]# cd ../php-5.6.27/
[root@zabbix php-5.6.27]# ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt=/usr/local/libmcrypt --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-curl && make && make install
#优化PHP配置文件
[root@zabbix php-5.6.27]# cp php.ini-production /etc/php.ini
[root@zabbix php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@zabbix php-5.6.27]# chmod +x /etc/init.d/php-fpm
[root@zabbix php-5.6.27]# chkconfig --add php-fpm
[root@zabbix php-5.6.27]# chkconfig php-fpm on
[root@zabbix php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix php-5.6.27]# cd
#优化其配置文件并启动
[root@zabbix ~]# sed -i 's/pm.max_children = 5/pm.max_children = 50/g' /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix ~]# sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix ~]# sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix ~]# sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 35/g' /usr/local/php5.6/etc/php-fpm.conf
[root@zabbix ~]# systemctl start php-fpm
[root@zabbix ~]# netstat -anpt | grep 9000
客户端访问定义的php页面,如下:
#上传我提供的包后,执行以下命令
[root@zabbix ~]# sh mysql.sh #等待些许时间后,出现以下提示,则表示数据库部署成功
Starting MySQL. SUCCESS!
mysql: [Warning] Using a password on the command line interface can be insecure.
#创建zabbix库及用户
[root@zabbix ~]# mysql -uroot -p123 #登录MySQL
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@'localhost' identified by '123.com';
mysql> grant all on zabbix.* to zabbix@'192.168.20.%' identified by '123.com';
mysql> exit
5、部署Zabbix服务
#解包
[root@zabbix ~]# tar zxf fping-3.12.tar.gz -C /usr/src
[root@zabbix ~]# tar zxf zabbix-3.2.1.tar.gz -C /usr/src
#安装fping命令
[root@zabbix ~]# cd /usr/src/fping-3.12/
[root@zabbix fping-3.12]# ./configure && make && make install
[root@zabbix fping-3.12]# cd ../zabbix-3.2.1/
[root@zabbix zabbix-3.2.1]# useradd -M -s /sbin/nologin zabbix
[root@zabbix zabbix-3.2.1]# chown zabbix:zabbix /usr/local/sbin/fping
[root@zabbix zabbix-3.2.1]# 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
[root@zabbix zabbix-3.2.1]# ./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-openipmi && make && make install
#--enable-java:方便后续监控 tomcat 程序所用
#--with-openipmi:用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、风扇工作状态、电源供应等。
[root@zabbix ~]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@zabbix ~]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
#导入zabbix数据到MySQL,注意导入的顺序,如果导入后返回提示信息,可忽略,是因为导入的命令将密码展示在了终端
[root@zabbix ~]# cd /usr/src/zabbix-3.2.1/database/mysql/
[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < schema.sql
[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < images.sql
[root@zabbix mysql]# mysql -u zabbix -p123.com -h localhost zabbix < data.sql
[root@zabbix ~]# chown -R zabbix:zabbix /usr/local/zabbix/
6、优化zabbix并启动
#修改zabbix配置文件
[root@zabbix mysql]# sed -i 's/# ListenPort=10051/ListenPort=10051/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/LogFile=\/tmp\/zabbix_server.log/LogFile=\/usr\/local\/zabbix\/logs\/zabbix_server.log/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/# PidFile=\/tmp\/zabbix_server.pid/PidFile=\/usr\/local\/zabbix\/logs\/zabbix_server.pid/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/# DBHost=localhost/DBHost=localhost/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/# DBPassword=/DBPassword=123.com/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/# DBSocket=\/tmp\/mysql.sock/DBSocket=\/usr\/local\/mysql\/mysql.sock/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/# DBPort=3306/DBPort=3306/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/# FpingLocation=\/usr\/sbin\/fping/FpingLocation=\/usr\/local\/sbin\/fping/g' /usr/local/zabbix/etc/zabbix_server.conf
[root@zabbix mysql]# sed -i 's/# LogSlowQueries=0/LogSlowQueries=3000/g' /usr/local/zabbix/etc/zabbix_server.conf
#如果数据库名称和数据库用户没有和我创建的一样,那么还需要更改以下两项
#DBName=zabbix #数据库名称
#DBUser=zabbix #登录数据库的用户名
[root@zabbix mysql]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
[root@zabbix mysql]# ldconfig #刷新上面的更改
[root@zabbix ~]# mkdir /usr/local/zabbix/logs
[root@zabbix zabbix]# chown -R zabbix:zabbix /usr/local/zabbix
[root@zabbix ~]# cd /usr/src/zabbix-3.2.1/misc/init.d/fedora/core
[root@zabbix core]# cp zabbix_agentd /etc/init.d/
[root@zabbix core]# cp zabbix_server /etc/init.d/
[root@zabbix core]# sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server
[root@zabbix core]# sed -i 's/PIDFILE=\/tmp\/$BINARY_NAME.pid/PIDFILE=\/usr\/local\/zabbix\/logs\/$BINARY_NAME.pid/g' /etc/init.d/zabbix_server
[root@zabbix logs]# /etc/init.d/zabbix_server start #启动zabbix,也可以执行“zabbix-server”来启动
#如果脚本启动没有报错,但端口也没在监听,可以先使用脚本stop一下,再start
[root@zabbix logs]# netstat -anpt | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 89911/zabbix_server
#准备zabbix的网页文件
[root@zabbix ~]# cd /usr/src/zabbix-3.2.1/frontends/
[root@zabbix frontends]# cp -r php/ /usr/local/nginx/html/zabbix
7、client访问nginx代理以便配置zabbix
访问Nignx服务器的IP/zabbix即可,它会自动跳转到下面的页面:
#更改php配置文件
[root@zabbix ~]# sed -i 's/post_max_size = 8M/post_max_size =16M/g' /etc/php.ini
[root@zabbix ~]# sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
[root@zabbix ~]# sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.ini
[root@zabbix ~]# sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/g' /etc/php.ini
[root@zabbix ~]# sed -i 's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g' /etc/php.ini
[root@zabbix ~]# systemctl restart php-fpm #重启php服务
刷新浏览器页面,如下(全部为“OK”):
#自行将下载的配置文件上传到这个目录下
[root@zabbix ~]# ls /usr/local/nginx/html/zabbix/conf/zabbix.conf.php
/usr/local/nginx/html/zabbix/conf/zabbix.conf.php
然后刷新页面如下,单击“finish”完成:
[root@zabbix ~]# cd /usr/local/nginx/html/zabbix/fonts/ #切换至该目录
[root@zabbix fonts]# rz #上传我提供的simkai.ttf文件,也可以从我们的windows字体中找该文件
[root@zabbix fonts]# ls #确认“simkai.ttf”在该目录下
DejaVuSans.ttf simkai.ttf
#修改以下文件
[root@zabbix fonts]# sed -i 's/DejaVuSans/simkai/g' /usr/local/nginx/html/zabbix/include/defines.inc.php
经过上述配置,在以后制作图表时,就不会出现中文乱码的情况了。
2024-07-07
myeclipse怎么导入tomcat教程2024-07-07
myeclipse如何启动tomcat2024-07-07
myeclipse如何绑定tomcat上线了一个小的预约程序,配置通过Nginx进行访问入口,默认的日志是没有请求时间的,因此需要配置一下,将每一次的请求的访问响应时间记录出来,备查与优化使用....
2023-03-17