Zabbix监控系统简介
Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让SA快速定位并解决存在的各种问题。Zabbix分布式监控系统的优点如下:
1)支持自动发现服务器和网络设备;
2)安装与配置简单,学习成本低
3)支持多语言(包括中文)
4)免费开源
5)可以无agent监视
6)用户安全认证和柔软的授权方式
7)通过WEB界面设置或查看监视结果
8)支持底层自动发现;
9)分布式的监控体系和集中式的WEB管理;
10)支持主动监控和被动监控模式;
11)服务器端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, MAC等;
12)Agent客户端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD,Windows等;
13)基于SNMP、IPMI接口方式也可以监控Agent;
14)安全的用户认证及权限配置;
15)基于WEB的管理方法,支持自由的自定义事件和邮件发送;
16)高水平的业务视图监控资源,支持日志审计,资产管理等功能;
17)支持高水平API二次开发、脚本监控、自Key定义、自动化运维整合调用。
Zabbix监控组建及流程
Zabbix监控组建如图13-1所示,主要由三大组件,分别是Zabbix server端、Zabbix Proxy、Agent客户端,其中Zabbix Server端包括:WEB GUI、Database、Zabbix_Server。如图所示
Zabbix监控系统具体监控系统流程如图所示:
Zabbix监控完整流程包括:Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送到Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。
当Zabbix监控某个具体的项目,该项目会设置一个触发器阀值,当被监控的指标超过该触发器设定的阀值,会进行一些必要的动作,动作包括:邮件、微信报警或者执行命令等操作。如下为Zabbix完整监控系统,各个部分负责的工作:
1)Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2)Database Storage:专用于存储所有配置信息,以及存储由Zabbix收集到的数据;
3)Web interface:Zabbix的GUI接口,通常与Server运行在同一台主机上;
4)Proxy:常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
5)Zabbix Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
Zabbix监控部署在系统中,会包含常见的四个程序:zabbix_server 、zabbix_get、zabbix_agentd 、zabbix_proxy、zabbix_sender等。四个程序启动后分别对应四个进程,如下为每个进程的功能:
1)Zabbix_server:Zabbix服务端守护进程,其中zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy的数据最终均是提交给Zabbix_Server;
2)Zabbix_Agentd:客户端守护进程,负责收集客户端数据,例如收集cpu负载、内存、硬盘使用情况等;
3)Zabbix_get:Zabbix数据获取工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令;
4)Zabbix_sender:zabbix数据发送工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据;
5)Zabbix_proxy:zabbix分布式代理守护进程,分布式监控架构需要部署Zabbix_Proxy。
Zabbix监控方式及数据采集
Zabbix分布式监控系统监控客户端的方式常见有三种,分别是Agent方式、SNMP、IPMI方式。
Zabbix三种方式特点如下:
1)Agent:Zabbix可以基于自身zabbix_agent客户端插件监控OS的状态,例如CPU、内存、硬盘、网卡、文件等。
2)SNMP:Zabbix可以通过简单网络管理协议(Simple Network Management Protocol,SNMP)协议监控网络设备或者windows主机等,通过设定SNMP的参数将相关监控数据传送至服务器端,交换机、防火墙等网络设备一般都支持SNMP协议。
3)IPMI:智能平台管理接口(Intelligent Platform Management Interface,IPMI)即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态、电源供应以及机箱入侵等。IPMI最大的优势在于无论OS在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。
Zabbix监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加。可以关闭被动模式的方法:在配置文件中加入 StartAgents=0,即为关闭被动模式。
主被动监控模式区别如下:
1)Zabbix主动模式:Agent主动请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy,zabbix agent首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy;
2)Zabbix被动模式:Server向agent请求获取监控项的数据,agent返回数据,Server打开一个TCP连接,Server发送请求agent.ping,Agent接收到请求并且响应,Server处理接收到的数据。
Zabbix监控概念
Zabbix监控系统包括很多监控概念,掌握Zabbix监控概念能对Zabbix监控快速的理解,如下为Zabbix常用术语及解释。
主机(host): #被监控的网络设备,可以写IP或者DNS; 主机组(host group): #主机组用于管理主机,可以批量设置权限; 监控项(item): #具体监控项,items值有独立的keys进行识别; 触发器(trigger): #为某个items设置触发器,到达触发器值会执行action动作; 事件(event): #例如达到某个触发器,称之为一个事件; 动作(action): #对于特定事件事先定义的处理方法,默认可以发送信息及发送命令; 报警升级(escalation): #发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等。 媒介(media): #发送通知的方式,可以支持Mail、SMS、Scripts等; 通知(notification): #通过设置的媒介向用户发送的有关某事件的信息; 远程命令 #达到触发器,可以在被监控端执行命令; 模板(template): #可以快速监控被监控端,模块包含:item、trigger、graph、screen、application; web场景(web scennario) #用于检测web站点可用性,监控HTTP关键词; web前端(frontend): #Zabbix的web接口; 图形(graph) #监控图像; 屏幕(screens) #屏幕显示; 幻灯(slide show) #幻灯显示。 |
目录:
第一部分 准备工作
第二部分 安装Apache服务
第三部分 安装MYSQL服务
第四部分 搭建PHP运行环境
第五部分 安装Zabbix监控系统
第一部分 准备工作
一、服务器信息
操作系统 | 服务器IP | CPU | 内存 |
CentOS 7.4 | 192.168.0.117 | 1C | 2G |
软件版本:
Httpd:2.4.29
MYSQL:5.7.22
PHP:7.2.9
Zabbix:4.0.7
二、下载软件包
#httpd软件包
https://mirrors.yangxingzhen.com/apache/httpd-2.4.29.tar.gz
#httpd依赖包
https://mirrors.yangxingzhen.com/apr/apr-1.6.3.tar.gz
https://mirrors.yangxingzhen.com/apr-util/apr-util-1.6.1.tar.gz
#MYSQL软件包
https://mirrors.yangxingzhen.com/mysql/mysql-5.7.22.tar.gz
#MYSQL依赖包
https://mirrors.yangxingzhen.com/mysql/boost_1_59_0.tar.gz
#PHP软件包
https://mirrors.yangxingzhen.com/php/php-7.2.9.tar.gz
#PHP依赖包
https://mirrors.yangxingzhen.com/libiconv/libiconv-1.15.tar.gz
#Zabbix
https://mirrors.yangxingzhen.com/zabbix/zabbix-4.0.7.tar.gz
PS:
Apr-1.6.3.tar.gz和Apr-util-1.6.1.tar.gz是httpd-2.4以后的版本所需要的插件,必须安装
三、将防火墙与selinux关闭
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
第二部分 安装Apache服务
1、下载软件包和安装编译工具与插件
[root@localhost ~]# yum -y install wget gcc gcc-c++ make pcre-devel pcre perl expat-devel perl-devel libtool
[root@localhost ~]# wget -c https://mirrors.yangxingzhen.com/apache/httpd-2.4.29.tar.gz
[root@localhost ~]# wget -c https://mirrors.yangxingzhen.com/apr/apr-1.6.3.tar.gz
[root@localhost ~]# wget -c https://mirrors.yangxingzhen.com/apr-util/apr-util-1.6.1.tar.gz
#APR安装
2、解压APR软件包
[root@localhost ~]# tar zxf apr-1.6.3.tar.gz
[root@localhost ~]# cd apr-1.6.3
3、预编译
[root@localhost apr-1.6.3]# ./configure --prefix=/usr/local/apr
4、编译及安装
[root@localhost apr-1.6.3]# make && make install
#Apr-util安装
1、解压apr-util软件包
[root@localhost apr-1.6.3]# cd ..
[root@localhost ~]# tar zxf apr-util-1.6.1.tar.gz
[root@localhost ~]# cd apr-util-1.6.1
2、预编译
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
3、编译及安装
[root@localhost apr-util-1.6.1]# make && make install
#Apache安装
1、解压httpd软件包
[root@localhost apr-util-1.6.1]# cd ..
[root@localhost ~]# tar zxf httpd-2.4.29.tar.gz
[root@localhost ~]# cd httpd-2.4.29
2、预编译
[root@localhost ~]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-so --enable-rewrite --enable-cahreset-lite
3、编译及安装
[root@localhost httpd-2.4.29]# make && make install
4、将httpd服务添加到系统服[root@localhost httpd-2.4.29]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.4.29]# vi /etc/init.d/httpd#添加以下两行(注意,"#"不能省略):
# chkconfig: - 85 21
# description: Apache is a World Wide Web Server
#保存退出
5、将httpd加入到SERVICE管理器
[root@localhost httpd-2.4.29]# chkconfig --add httpd
[root@localhost httpd-2.4.29]# systemctl daemon-reload
6、编辑httpd主配置文件
[root@localhost httpd-2.4.29]# vim /usr/local/apache/conf/httpd.conf修改以下内容:
ServerName localhost:80
#保存退出
7、创建软连接
[root@localhost httpd-2.4.29]# ln -s /usr/local/apache/bin/* /usr/bin
#检查语法错误
[root@localhost httpd-2.4.29]# httpd -t
或者:
[root@localhost httpd-2.4.29]# apachectl -t
8、启动httpd服务
[root@localhost httpd-2.4.29]# systemctl start httpd
9、验证
#浏览器访问服务器IP,http://192.168.0.117
第三部分 安装MYSQL服务
#MYSQL安装
1、下载boost库(MYSQL5.7及以上需要,必须安装)
[root@localhost ~]# yum -y install wget
[root@localhost ~]# wget -c https://mirrors.yangxingzhen.com/mysql/boost_1_59_0.tar.gz
[root@localhost ~]# tar zxf boost_1_59_0.tar.gz -C /usr/local/
2、下载依赖包
[root@localhost ~]# yum -y install ncurses ncurses-devel perl perl-devel gcc gcc-c++ cmake make openssl-devel openssl
3、建立MYSQL用户
[root@localhost ~]# useradd -s /sbin/nologin mysql
4、下载MYSQL-5.7.22源码包
[root@localhost ~]# wget -c https://mirrors.yangxingzhen.com/mysql/mysql-5.7.22.tar.gz
[root@localhost ~]# tar zxf mysql-5.7.22.tar.gz
[root@localhost ~]# cd mysql-5.7.22
[root@localhost mysql-5.7.22]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DWITH_READLINE=1 \
-DMYSQL_USER=mysql \
-DWITH_SSL=yes
[root@localhost mysql-5.7.22]# make && make install
5、创建MYSQL数据存储目录
[root@localhost mysql-5.7.22]# mkdir -p /data/mysql
[root@localhost mysql-5.7.22]# chown -R mysql.mysql /data/mysql
6、编辑MYSQL主配置文件
[root@localhost mysql-5.7.22]# vim /etc/my.cnf
[client]
default-character-set=utf8
socket =/usr/local/mysql/mysql.sock
[mysql]
port =3306
default-character-set=utf8
socket =/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir =/usr/local/mysql
datadir =/data/mysql
port =3306
character_set_server=utf8
pid-file =/usr/local/mysql/mysqld.pid
socket =/usr/local/mysql/mysql.sock
server-id =1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
7、初始化数据库(生成空密码,生成随机密码--initialize)
[root@localhost mysql-5.7.22]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize-insecure --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
8、配置成系统服务
[root@localhost bin]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost bin]# chmod o+x /etc/init.d/mysqld
9、启动MYSQL服务、添加开启自启动
[root@localhost bin]# chown -R mysql.mysql /usr/local/mysql
[root@localhost bin]# service mysqld start
[root@localhost bin]# chkconfig --add mysqld
[root@localhost bin]# chkconfig mysqld on
10、创建软连接、访问数据库
[root@localhost bin]# ln -s /usr/local/mysql/bin/* /usr/bin
[root@localhost bin]# mysql
#数据库安装配置成功,退出则输入"quit"
第四部分 搭建PHP运行环境
#安装libiconv
1、下载libiconv软件包
[root@localhost ~]# wget -c https://mirrors.yangxingzhen.com/libiconv/libiconv-1.15.tar.gz
2、解压libiconv软件包
[root@localhost ~]# tar zxf libiconv-1.15.tar.gz
[root@localhost ~]# cd libiconv-1.15
3、预编译
[root@localhost libiconv-1.15]# ./configure --prefix=/usr/local/libiconv
4、编译及安装
[root@localhost libiconv-1.15]# make && make install
#安装 PHP-7.2.9
1、安装编译工具及插件(下载阿里云yum源)
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum -y install gcc gcc-c++ libvpx libvpx-devel libjpeg-turbo libjpeg-turbo-devel libzip libpng libpng-devel freetype-devel libxml2 libxml2-devel gd gd-devel libxslt-devel libcurl-devel libmcrypt-devel mhash mcrypt openssl openssl-devel
2、解压PHP软件包
[root@localhost ~]# tar zxf php-7.2.9.tar.gz
[root@localhost ~]# cd php-7.2.9
3、预编译
[root@localhost php-7.2.9.]# ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-opcache \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-fpm-user=apache \
--with-fpm-group=apache \
--enable-ftp \
--enable-zip \
--with-gettext
4、编译及安装
[root@localhost php-7.2.9.]# make && make install
5、配置PHP
[root@localhost php-7.2.9]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@localhost php-7.2.9]# cp php.ini-production /usr/local/php/etc/php.ini
6、关联PHP和Apache服务
[root@localhost php-7.2.9]# useradd -s /sbin/nologin apache
[root@localhost php-7.2.9]# sed -i 's/User daemon/User apache/' /usr/local/apache/conf/httpd.conf
[root@localhost php-7.2.9]# sed -i 's/Group daemon/Group apache/' /usr/local/apache/conf/httpd.conf
[root@localhost php-7.2.9]# sed -i '/AddType *.* .tgz/a\\tAddType application/x-httpd-php .php' /usr/local/apache/conf/httpd.conf
[root@localhost php-7.2.9]# sed -i 's/index.html/index.php index.html/' /usr/local/apache/conf/httpd.conf
7、验证
#编辑PHP测试页面
[root@localhost php-7.2.9]# cd /usr/local/apache/htdocs/
[root@localhost htdocs]# vim index.php
php
phpinfo();
?>
#重启httpd服务
[root@localhost htdocs]# systemctl restart httpd
#浏览器访问服务器:http://192.168.0.117
8、测试数据库
[root@localhost htdocs]# mysql
mysql> create database test;
mysql> grant all on test.* to test@'%' identified by '123456';
mysql> flush privileges;
[root@localhost htdocs]# vim info_mysql.php
php
$link=mysqli_connect('192.168.0.117','test','123456');
if($link) echo "
Success!!
";
else echo "Fail!!";
?>
[root@localhost htdocs]# systemctl restart httpd
浏览器访问http://192.168.0.117/info_mysql.php
至此LAMP环境搭建完毕!!
第五部分 安装Zabbix监控系统
1、安装依赖包
[root@localhost ~]# yum -y install net-snmp net-snmp-devel perl-DBI curl curl-devel libevent libevent-devel
2、下载Zabbix软件包
[root@localhost ~]# wget -c https://mirrors.yangxingzhen.com/zabbix/zabbix-4.0.7.tar.gz
3、解压Zabbix软件包
[root@localhost ~]# tar xf zabbix-4.0.7.tar.gz
4、预编译
[root@localhost ~]# cd zabbix-4.0.7
[root@localhost zabbix-4.0.7]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
5、编译及安装
[root@localhost zabbix-4.0.7]# make && make install
6、创建数据库并授权
[root@localhost zabbix-4.0.7]# mysql
mysql> create database zabbix;
mysql> grant all on zabbix.* to zabbix@'localhost' identified by '123456';
mysql> flush privileges;
7、导入数据到zabbix数据库
[root@localhost zabbix-4.0.7]# cd database/mysql
[root@localhost mysql]# mysql -uzabbix -p123456 zabbix < schema.sql
[root@localhost mysql]# mysql -uzabbix -p123456 zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -p123456 zabbix < data.sql
8、备份配置文件
[root@localhost mysql]# cd /usr/local/zabbix/etc/
[root@localhost etc]# cp zabbix_server.conf zabbix_server.conf.bak
9、编辑zabbix_server.conf配置文件
[root@localhost etc]# vim zabbix_server.conf
#保留以下选项
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
10、设置为系统服务并授权
[root@localhost etc]# cp /root/zabbix-4.0.7/misc/init.d/tru64/zabbix_server /etc/init.d/
[root@localhost etc]# chmod o+x /etc/init.d/zabbix_server
11、拷贝zabbix数据文件到Apache发布目录下
[root@localhost etc]# \cp -a /root/zabbix-4.0.7/frontends/php/* /usr/local/apache/htdocs/
12、建立zabbix用户(启动需要),软连接(启动需要)
[root@localhost etc]# useradd -s /sbin/nologin zabbix
[root@localhost etc]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin
13、重启httpd、启动zabbix_server
[root@localhost etc]# /etc/init.d/httpd restart
[root@localhost etc]# ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64
[root@localhost etc]# service zabbix_server restart
#添加开机自启动
[root@localhost etc]# chkconfig --add httpd
[root@localhost etc]# chkconfig httpd on
14、打开浏览器访问本机IP(192.168.0.117),设置Zabbix web管理界面安装配置,点击next step,如下图
15、点击next step,出现以下页面,如图
16、编辑php.ini,修改以下参数
[root@localhost etc]# sed -i 's/post_max_size = 8M/post_max_size = 16M/' /usr/local/php/etc/php.ini
[root@localhost etc]# sed -i 's/max_execution_time = 30/max_execution_time = 300/' /usr/local/php/etc/php.ini
[root@localhost etc]# sed -i 's/max_input_time = 60/max_input_time = 300/' /usr/local/php/etc/php.ini
[root@localhost etc]# sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' /usr/local/php/etc/php.ini
[root@localhost etc]# sed -i 's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/' /usr/local/php/etc/php.ini
#保存退出,重启Apache
[root@localhost etc]# /etc/init.d/httpd restart
17、刷新浏览器,如下图,点击next step
18、输入数据库名、用户、密码、端口,点击next step,如下图
19、填写Zabbix Title显示,可以为空,可以输入自定义的名称
20、访问Zabbix web界面,默认用户名和密码为:admin/zabbix
21、默认是英文,修改成中文,如下图
至此,Zabbix监控平台搭建完毕。
- 输入编号:4510,直达文章
- 输入m|M,直达目录列表