security:监控(Zabbix)

监控概述

监控的目的

  • 报告系统运行状态
    –每一部分必须同时监控
    –内容包括吞吐量、反应时间、使用率等
  • 提前发现问题
    –进行服务器性能调整前,知道调整什么
    –找出系统的瓶颈在什么地方

监控的资源类别

  • 公开数据
    –Web,FTP,SSH数据库等应用服务
    –TCP或UDP端口
  • 私有数据
    –CPU,内存,磁盘,网卡流量等使用信息
    –用户,进程等运行信息

监控软件

系统监控命令

ps
ifconfig
uptime
netstat或ss
free
ping
swapon -s
traceroute
df -h
iostat

自动化监控系统

  • Cacti
    –基于SNMP(简单的网络管理协议,端口161)协议的监控软件,强大的绘图能力
  • Nagios
    –基于Agent监控,强大的状态检查与报警机制
    –插件极多,自己写监控脚本潜入到Nagios非常方便
  • Zabbix
    –基于多种监控机制,支持分布式监控

Zabbix基础

Zabbix简介

  • Zabbix是一个高度集成的监控解决方案
  • 可以实现企业级的开源分布式监控
  • Zabbix通过C/S模式采集监控数据
  • Zabbix通过B/S模式实现Web管理

监控拓扑

在这里插入图片描述

  • 监控服务器
    –监控服务器可以通过SNMP或Agent采集数据
    –数据可以写入MySQL、Oracle等数据库中
    –服务器使用LNMP实现web前端的管理
  • 被监控主机
    –被监控主机需要安装Agent
    –常见的网络设备一般支持SNMP

部署LNMP

安装前准备

监控服务器:192.168.2.5,关闭防火墙和selinux
监控客户端:192.168.2.100,192.168.2.200,关闭防火墙和Selinux

部署LNMP

  • 安装nginx及其依赖包
    Zabbix监控管理控制台需要通过Web页面展示出来,并且还需要使用MySQL来存储数据,因此需要先为Zabbix准备基础LNMP环境。
yum -y install gcc pcre-devel  openssl-devel
tar -xf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --with-http_ssl_module
make && make install
yum -y install php php-mysql php-fpm \ 
> mariadb mariadb-devel mariadb-server
  • 修改Nginx配置文件
    配置Nginx支持PHP动态网站,因为有大量PHP脚本需要执行,因此还需要开启Nginx的各种fastcgi缓存,加速PHP脚本的执行速度。
vim /usr/local/nginx/conf/nginx.conf
......
http{
......
fastcgi_buffers 8 16k;             #缓存php生成的页面内容,8个16k
    fastcgi_buffer_size 32k;       #缓存php生产的头部信息
    fastcgi_connect_timeout 300;   #连接PHP的超时时间
    fastcgi_send_timeout 300;      #发送请求的超时时间
    fastcgi_read_timeout 300;      #读取请求的超时时间
location ~ \.php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                include        fastcgi.conf; 
  • 启动服务
    启动Nginx、PHP-FPM、MariaDB服务,关闭SELinux与防火墙。
systemctl start  mariadb
systemctl start  php-fpm
/usr/local/nginx/sbin/nginx /sbin/nginx
firewall-cmd --set-default-zone=trusted
setenforce 0
  • 客户端测试LNMP环境
    服务器创建PHP测试页面,浏览器访问页面测试网页连通性。
 cat /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>
curl http://192.168.2.5/test.php

部署Zabbix

  • 源码安装Zabbix Server
    多数源码包都是需要依赖包的,zabbix也一样,源码编译前需要先安装相关依赖包。
yum -y install  net-snmp-devel curl-devel \
> libevent-devel-2.0.21-4.el7.x86_64.rpm  #安装相关依赖包 
tar -xf zabbix-3.4.4.tar.gz
cd zabbix-3.4.4/
./configure  --enable-server \
> --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config \
> --with-net-snmp --with-libcurl
# --enable-server安装部署zabbix服务器端软件
# --enable-agent安装部署zabbix被监控端软件
# --enable-proxy安装部署zabbix代理相关软件
# --with-mysql配置mysql_config路径
# --with-net-snmp允许zabbix通过snmp协议监控其他设备
# --with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
make && make install
ls /usr/local/etc
ls /usr/local/bin
ls /usr/local/sbin
  • 初始化Zabbix
    创建数据库,上线Zabbix的Web页面
mysql
mysql> create database zabbix character set utf8; #创建数据库,支持中文字符集
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
#创建可以访问数据库的账户与密码
cd lnmp_soft/zabbix-3.4.4/database/mysql/
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql
#刚刚创建是空数据库,zabbix源码包目录下,有提前准备好的数据
#使用mysql导入这些数据即可(注意导入顺序)
  • 上线Zabbix的Web页面
cd lnmp_soft/zabbix-3.4.4/frontends/php/
cp -r * /usr/local/nginx/html/
chmod -R 777 /usr/local/nginx/html/*
  • 修改Zabbix_server配置文件,启动Zabbix_server服务
vim /usr/local/etc/zabbix_server.conf
DBHost=localhost #数据库主机,默认该行被注释
DBName=zabbix  #设置数据库名称
DBUser=zabbix  #设置数据库账户
DBPassword=zabbix #设置数据库密码,默认该行被注释
LogFile=/tmp/zabbix_server.log  #设置日志,仅查看以下即可
--------------------
useradd -s /sbin/nologin zabbix  #不创建用户无法启动服务
zabbix_server       #启动服务
 ss -ntulp |grep zabbix_server   #确认连接状态,端口10051

提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,
一定要先使用killall zabbix_server关闭服务后,再重新启动一次。

  • 访问Zabbix_server服务器的Web页面
firefox http://192.168.2.5/index.php
#第一次访问,初始化PHP页面会检查计算机环境是否满足要求,如果不满足会给出修改建议
#默认会提示PHP的配置不满足环境要求,需要修改PHP配置文件

根据错误提示,修改PHP配置文件,满足Zabbix_server的Web环境要求

yum -y install  php-gd php-xml php-ldap \
php-bcmath php-mbstring
vim /etc/php.ini
date.timezone = Asia/Shanghai   #设置时区
max_execution_time = 300        #最大执行时间,秒
post_max_size = 32M             #POST数据最大容量
max_input_time = 300            #服务器接收数据的时间限制
memory_limit = 128M             #内存容量限制

修改完PHP配置文件后,再次使用浏览器访问服务器,则会提示如下图所示的提示信息。
t图-1
图-2
注意:这里有一个PHP LDAP是warning状态是没有问题的!
在初始化数据库页面,填写数据库相关参数,如下图所示。
fds
在登陆页面,使用用户(admin)和密码(zabbix)登陆
在这里插入图片描述

Zabbix监控服务

部署被监控主机Zabbix Agent

2.100和2.200做相同操作:

  • 源码安装Zabbix agent软件
useradd -s /sbin/nologin  zabbix
yum -y install gcc pcre-devel
tar -xf zabbix-3.4.4.tar.gz
cd zabbix-3.4.4/
./configure --enable-agent
make && make install 
ls /usr/local/etc
ls /usr/local/bin
ls /usr/loca/sbin
  • 修改agent配置文件,启动Agent
vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5     #谁可以监控本机(被动监控模式)
ServerActive=127.0.0.1,192.168.2.5   #谁可以监控本机(主动监控模式)
LogFile=/tmp/zabbix_agentd.log   #日志文件
Hostname=zabbixclient_web1       #被监控端自己的主机名
EnableRemoteCommands=1    #监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
UnsafeUserParameters=1           #是否允许自定义key监控
  • 拷贝启动脚本(非必须操作,可选做)
    有启动脚本可以方便管理服务,启动与关闭服务。启动脚本位于zabbix源码目录下。
cd misc/init.d/fedora/core
cp zabbix_agentd /etc/init.d/
/etc/init.d/zabbix_agentd start
/etc/init.d/zabbix_agentd stop
/etc/init.d/zabbix_agentd status
/etc/init.d/zabbix_agentd restart

配置及使用Zabbix监控系统

添加监控主机

使用火狐浏览器登录http://192.168.2.5,通过Configuration(配置)–>Hosts(主机)–>Create Host(创建主机)添加被监控Linux主机

在这里插入图片描述
添加被监控主机时,需要根据提示输入被监控Linux主机的主机名称(最好与电脑的主机名一致,但也允许不一致)、主机组、IP地址等参数
在这里插入图片描述

为被监控主机添加监控模板

Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据,对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机即可
在这里插入图片描述

查看监控数据

查看监控数据,登录Zabbix Web控制台,点击Monitoring(监控中)—> Latest data(最新数据),正过滤器中填写过滤条件,根据监控组和监控主机选择需要查看哪些监控数据
在这里插入图片描述
找到需要监控的数据后,可以点击后面的Graph查看监控图形
在这里插入图片描述

自定义监控

自定义监控项:

在被监控的客户端本机编写脚本给监控服务器调用

配置步骤

配置客户端:

  • 启用自定义监控项
    修改配置文件:
vim /usr/local/etc/zabbix_agentd.conf
include=/usr/local/etc/zabbix_agentd.conf.d/ 
#加载配置文件目录
UnsafeUserParameters=1   #是否允许自定义key
  • 定义监控命令
    命令格式:UserParameter=<key>,<shell command>
cd /usr/local/etc/zabbix_agentd.conf.d/
vim get_sum_users.conf    #配置名和后缀随意
UserParameter=get_sum_users,wc -l /etc/passwd|awk '{print $1}'
#统计当前系统用户个数
  • 重启zabbix_agentd服务
killall zabbix_agentd
zabbix_agentd
  • 测试命令
zabbix_get -s 127.0.0.1 -k get_sum_users
24

如提示Check access restrictions in Zabbix agent configuration
请检查配置文件

vim /usr/loca/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5   
ServerActive=127.0.0.1,192.168.2.5   

配置监控服务器:

在登录管理页面做如下配置:

  • 创建监控模板
    登录Zabbix Web监控控制台,通过Configuration(配置)–>Template(模板)–>Create template(创建模板),填写模板名称,新建模板群组
    在这里插入图片描述
    创建模板后,默认模板中没有任何应用、项目、触发器、图形等
    在这里插入图片描述

  • 创建应用集
    创建完成模板后,默认模板中没有任何应用、项目、触发器、图形等资源。这里需要点击模板后面的Application(应用集)链接打开创建应用的页面
    点击Application(应用集)后,会刷新页面,在该页面中点击Create application(创建应用集)按钮。
    在这里插入图片描述设置应用名称
    在这里插入图片描述

  • 创建监控项
    与创建应用一样,在模板中还需要创建监控项目,并在刷新出的新页面中选择Create items(创建监控项)创建项目
    在这里插入图片描述

  • 调用新建的模板监控客户端
    将完整的监控模板制作完成后,就可以将模板链接到主机实现监控功能了。首先找到被监控主机Configuration(配置)–>Hosts(主机)
    在这里插入图片描述

主被动监控

概述

  • 主动和被动都是对被监控端主机而言的
  • 默认zabbix采用的是被动监控
    – 被动监控:Server向Agent发送连接,发送监控key,Agent接受请求,相应监控数据
    – 主动监控:Agent向Server发送连接,Agent请求需要检测的监控项目列表,Server相应Agent发送一个items列表,Agent确认收到监控列表,TCP连接完成,回话关闭,Agent开始周期性地收集数据
  • 区别
    – Server不用每次需要数据都连接Agent,Agent会自己收集数据并处理数据,Server仅需要保存数据即可
  • 当监控主机达到一定量级后,Zabbix服务器会越来越慢
  • 此时,可以考虑使用主动监控,释放服务器的压力
  • 另外,Zabbix也支持分布式监控,也是可以考虑的方案

客户端配置

创建新的被监控主机(主动监控)

  • 给192.168.2.201安装Zabbix_agent软件
yum -y install gcc pcre-devel
tar -xf zabbix-3.4.4.tar.gz
cd zabbix-3.4.4/
./configure --enable-agent
make && make install

修改配置文件(主动监控)

vim /usr/local/etc/zabbix_agentd.conf 
#Server=127.0.0.1,192.168.2.5  
#注释该行,允许谁监控本机
StartAgents=0
#被动监控时启动多个进程
#设置为0,则禁止被动监控,不启动zabbix_agentd服务
ServerActive=192.168.2.5
#允许哪些主机监控本机(主动模式),一定要取消127.0.0.1
Hostname=zabbixclient_web2
#告诉监控服务器,是谁发的数据信息
#一定要和zabbix服务器配置的监控主机名称一致(后面设置)
RefreshActiveChecks=120
#默认120秒检测一次
UnsafeUserParameters=1            
#允许自定义key
Include=/usr/local/etc/zabbix_agentd.conf.d/

killall zabbix_agentd 
zabbix_agentd 

创建主动监控的监控模板

  • 克隆Zabbix自动的监控模板
    为了方便,克隆系统自带模板(在此基础上就该更方便)。
    通过Configuration(配置)–>Templates(模板)–>选择Template OS Linux
    –>全克隆,克隆该模板,新建一个新的模板。如图-24所示。
    新模板名称为:Template OS Linux ServerActive。
    在这里插入图片描述
  • 修改模板中的监控项目的监控模式
    将模板中的所有监控项目全部修改为主动监控模式,通过Configuration(配置)–>Templates(模板)–>选择新克隆的模板,点击后面的Items(监控项)–>点击全选,选择所有监控项目,点击批量更新,将类型修改为:Zabbix Agent(Active主动模式)
    在这里插入图片描述
  • 禁用部分监控项目
    批量修改监控项的监控模式后,并非所有监控项目都支持主动模式,批量修改后,会发现有几个没有修改主动模式成功,说明,这些监控项目不支持主动模式,关闭即可。
    在这里插入图片描述

添加监控主机

  • 手动添加监控主机(主动模式监控)
    在Zabbix监控服务器,添加被监控的主机(主动模式),设置主机名称:zabbixclient_web2 (必须与被监控端的配置文件Hostname一致),将主机添加到Linux servers组,IP地址修改为0.0.0.0,端口设置为0
    在这里插入图片描述
    在这里插入图片描述
    为主机添加监控模板,选择刚刚创建的模板(主动模式),添加链接模板到主机
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值