Security基础(六):部署Zabbix监控平台、配置及使用Zabbix监控系统、自定义Zabbix监控项目、实现Zabbix报警功能
一、部署Zabbix监控平台
目标:
本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备:
在监控服务器上安装LAMP环境
修改PHP配置文件,满足Zabbix需求
源码安装Zabbix
修改Zabbix基本配置
初始化Zabbix监控Web页面
方案:
使用1台RHEL7虚拟机,安装部署LAMP环境、Zabbix及相关的依赖包,配置数据库并对Zabbix监控平台进行初始化操作。被监控端源码安装Zabbix Agent。
步骤:
步骤一:部署监控服务器
1)安装LAMP环境
Zabbix监控管理控制台需要通过Web页面展示出来,并且还需要使用MySQL来存储数据,因此需要先为Zabbix准备基础LAMP环境。
[root@zabbixserver ~]# yum -y install gcc gcc-c++ autoconf httpd \
>php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl \
>mod_auth_mysql php-gd php-xml php-ldap php-pear php-xmlrpc \
>mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel crul-devel
[root@zabbixserver ~]# rpm -vih php-bcmath-5.3.3-22.el6.x86_64.rpm
[root@zabbixserver ~]# rpm -vih php-mbstring-5.3.3-22.el6.x86_64.rpm
2)修改PHP配置文件
通过修改php.ini配置文件设置时区、内存限制等来满足Zabbix运行的需要。
[root@zabbixserver ~]# 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内存占用的容量限制
mbstring.func_overload = 2
3)源码安装Zabbix
源码安装时,因为是监控服务器,所以使用--enable-server;因为需要使用Zabbix监控本机,所以使用--enable-agent作为被监控主机。
[root@zabbixserver ~]# useradd -u 201 zabbix //创建普通账户
[root@zabbixserver ~]# ls
frontend.po
php-bcmath-5.3.3-22.el6.x86_64.rpm
php-mbstring-5.3.3-22.el6.x86_64.rpm
zabbix-2.2.1.tar.gz
[root@zabbixserver ~]# tar zabbix-2.2.1.tar.gz -C /usr/src
[root@zabbixserver ~]# cd /usr/src/zabbix-2.2.1/
[root@zabbixserver zabbix-2.2.1]# ./configure \ //编译Zabbix
>--prefix=/usr/local/zabbix --enable-server --enable-proxy \
>--enable-agent --with-mysql=/usr/bin/mysql_config \
> --with-net-snmp --with-libcurl
[root@zabbixserver zabbix-2.2.1]# make && make install
4)创建数据库并导入数据
Zabbix会将获取的监控数据存储在数据库中,可以使用MySQL或Oracle数据库存储,本案例中我们选择MySQL数据库存储监控数据。
[root@zabbixserver ~]# mysql
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;
[root@zabbixserver ~]# cd /usr/src/zabbix.2.2.1/database/mysql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
5)创建连接并将Zabbix加入系统服务
Zabbix安装路径为/usr/local/zabbix,为了更方便进行操作,需要创建相关链接文件。复制软件包中提供的启动脚本到/etc/init.d目录,适当修改脚本内容,即可实现开机启动服务。
[root@zabbixserver ~]# mkdir /var/log/zabbix
[root@zabbixserver ~]# chown zabbix.zabbix /var/log/zabbix
[root@zabbixserver ~]# ln -s /usr/local/zabbix/etc /etc/zabbix
[root@zabbixserver ~]# ln -s /usr/local/zabbix/bin/* /usr/bin/
[root@zabbixserver ~]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/
[root@zabbixserver ~]# cd /usr/src/zabbix-2.2.1/misc/init.d/fedora/core
[root@zabbixserver core]# cp zabbix_* /etc/init.d/ //复制启动脚本
[root@zabbixserver core]# vim /etc/init.d/zabbix_server //修改启动脚本
BASEDIR=/usr/local/zabbix
[root@zabbixserver core]# vim /etc/init.d/zabbix_agentd //修改启动脚本
BASEDIR=/usr/local/zabbix
[root@zabbixserver ~]# vim /etc/services //修改服务端口信息
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-server 10051/tcp #Zabbix Trapper
zabbix-server 10051/udp #Zabbix Trapper
6)修改Zabbix配置文件
本机作为监控服务器同时作为被监控端,需要同时修改zabbix_server.conf和zabbix_agentd.conf文件。
[root@zabbixserver ~]# vim /etc/zabbix/zabbix_server.conf
DBName=zabbix //设置数据库名称
DBUser=zabbix //设置数据库账户
DBPassword=zabbix //设置数据库密码
LogFile=/var/log/zabbix/zabbix_server.log //设置日志
[root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,192.168.194.10 //设置监控服务器IP
ServerActive=192.168.194.10:10051 //主动监控服务器IP
Hostname=zabbixserver.tarena.com //设置主机名
LogFile=/var/log/zabbix/zabbix_server.log //设置日志
UnsafeUserParemeters=1 //是否允许自定义key
7)复制Web页面,启动Zabbix服务
[root@zabbixserver ~]# cd /usr/src/zabblix-2.2.1
[root@zabbixserver zabbix-2.2.1]# cp -r frontends/php /var/www/html/zabbix
[root@zabbixserver ~]# chwon -R apache.apache /var/www/html/zabbix
[root@zabbixserver ~]# service zabbix_server start
Starting zabbix_server [OK]
[root@zabbixserver ~]# chkconfig zabbix_server on
[root@zabbixserver ~]# service zabbix_agentd start
Starting zabbix_agentd [OK]
[root@zabbixserver ~]# chkcofig zabbix_agentd on
8)登录Web管理页面,初始化管理平台
首次使用Zabbix管理平台,需要进行简单的初始化操作,主要是MySQL数据库设置,如下图所示,Web管理页面默认初始账户admin,密码为zabbix。
步骤二:部署被监控主机
1)源码安装Zabbix Agent
被监控端主机安装Zabbix仅需要开启Agent模式即可,不需要使用Zabbix服务器模式。
[root@zabbixclient ~]# useradd -u 201 zabbix //创建账户
[root@zabbixclient ~]# yum -y install gcc gcc-c++
[root@zabbixclient ~]# tar zabbix-2.2.1.tar.gz -C /usr/src //解压
[root@zabbixserver ~]# cd /usr/src/zabbix-2.2.1/
[root@zabbixserver zabbix-2.2.1]# ./configure \ //参数配置
>--prefix=/usr/local/zabbix --enable-agent
[root@zabbixserver zabbix-2.2.1]# make && make install
2)创建目录及链接文件
[root@zabbixclient ~]# mkdir /var/log/zabbix
[root@zabbixclient ~]# chown zabbix.zabbix /var/log/zabbix/
[root@zabbixclient ~]# cd /usr/src/zabbix-2.2.1/misc/init.d/fedora/core/
[root@zabbixclient core]# zabbix_agentd /etc/init.d/
[root@zabbixclient ~]# chmod 755 /etc/init.d/zabbix_agentd
[root@zabbixclient ~]# ln -s /usr/local/zabbix/etc /etc/zabbix
[root@zabbixclient ~]# ln -s /usr/local/zabbix/bin/* /usr/bin/
[root@zabbixclient ~]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/
[root@zabbixclient ~]# tail -4 /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
3)修改配置文件,启动Agent
[root@zabbixclient ~]# cd /etc/zabbix/
[root@zabbixclient ~]# vim zabbix_agentd.conf
[root@zabbixclient ~]# grep -Ev '^$|^#' zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=127.0.0.1,192.168.194.10 //监控服务器IP
ServerActive=192.168.194.10:10051 //主动监控服务器IP
Hostname=zabbixclient
UnsafeUserParameters=1 //是否允许自定义key
[root@zabbixclient ~]# chkconfig zabbix_agentd on
[root@zabbixclient ~]# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
[root@zabbixclient ~]# service zabbix_agentd start
二、配置及使用Zabbix监控系统
目标:
沿用练习一,使用Zabbix监控平台监控Linux服务器,实现以下目标:
- 监控CPU
- 监控内存
- 监控进程
- 监控网络流量
- 监控硬盘
方案:
通过Zabbix监控平台,添加被监控主机并链接监控模板即可。
步骤:
实现此案例需要按照如下步骤进行。
步骤一:添加监控主机
使用火狐浏览器登录http://192.168.194.10/zabbix,通过Configuration(动态)-->Hosts(主机)-->Create Host(创建主机)添加被监控Linux主机,如下图所示。
添加被监控主机时,需要根据提示输入被监控Linux主机的主机名称、IP地址等参数,具体参考下图。
步骤二:为被监控主机添加监控模板
Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据,对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机即可,如下图所示。
步骤三:查看监控数据
查看监控数据及图形,登录Zabbix Web控制台,点击监控中,在监控组和监控主机中选择需要查看数据的监控主机,并在图形后面选择需要查看哪些监控数据,如下图所示。
三、自定义Zabbix监控项目
目标:
沿用练习二,使用Zabbix实现自定义监控,实现以下目标:监控Linux服务器系统账户的数量。
方案:
需要使用Zabbix自定义key的方式实现自定义监控,参考如下操作步骤:
- 创建自定义key
- 创建监控项目
- 创建监控图形
- 将监控模板关联到主机
步骤:
步骤一:被监控主机创建自定义key
1)创建自定义key
自定义key语法格式为:UserParameter=自定义key名称,命令。
自定义的key文件一般存储在//etc/zabbix/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,来读取该目录下的所有文件 。
[root@zabbixclient ~]# vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.conf.d/ //加载配置文件目录
[root@zabbixclient ~]# cd /etc/zabbix/zabbix_agentd.conf.d
[root@zabbixclient zabbix_agentd.conf.d]# vim count.line.passwd
UserParameter=count.line.passwd,wc -l /etc/passwd | awk ' {print $1} '
2)测试自定义key是否正常工作
[root@zabbixclient ~]# service zabbix_agentd restart
[root@zabbixclient ~]# zabbix_get -s 127.0.0.1 -k count.line.passwd
34
步骤二:设置Zabbix监控控制台
1)添加模板
登录Zabbix Web监控控制台,通过Configuration-->Template-->Create template创建模板,如下图所示。
为创建的模板设置模板名称及组名称,如下图所示。
2)创建应用
创建完成模板后,默认模板中没有任何应用、项目、触发器、图形等资源。这里需要点击模板后面的Application链接打开创建应用的页面,如下图所示。
点击Application后,会刷新出下图所示页面,在该页面中点击Create application按钮创建应用。
设置应用名称如下图所示。
3)创建项目
与创建应用一样,在模板中还需要创建监控项目,如图-11所示,并在刷新出的新页面中选择Create items创建项目,如下图所示。
接下来,还需要给项目设置名称及对应的自定义key,如下图所示。
最后激活该监控项目,如图下所示。
4)创建图形
为了后期可以通过图形的方式展示监控数据,还需要在模板中创建图形,设置方法与前面的步骤一致,如下图所示。
创建图形后,还需要为图形设置名称及选择对应的监控项目,选择为哪个项目绘制图形,如下图所示。
5)将模板链接到被监控主机
将完整的监控模板制作完成后,就可以将模板链接到主机实现监控功能了。首先找到被监控主机,如下图所示。
点击被监控主机链接,打开监控主机设置页面,在Template(模板)页面中选择需要链接到该主机的模板,在此选择刚刚创建的模板count_line.passwd添加即可,如下图所示。
四、实现Zabbix报警功能
目标:
沿用练习三,使用Zabbix实现报警功能,实现以下目标:
- 监控Linux服务器系统账户
- 当系统账户数量超过35人时发送报警邮件
方案:
需要设置Zabbix触发器,定义触发条件及触发后执行什么动作。除此之外还需要提前设置好SMTP服务器及报警信息收件人邮箱信息。参考如下操作步骤:
1 创建Media
2 创建Action
3 创建触发器并设置条件
步骤:
步骤一:设置邮件信息及触发动作
1)创建Media
设置邮件信息需要针对账户设置,通过Administration-->Users找到Admin账户,点击该账户的链接,如下图所示。
在刷新出来的页面中选择Media菜单,通过Add按钮创建新的Media,如下图所示。
创建Media时需要设置Media的类型,如果选择Email类型,则在Send to后填写接收报警邮件的收件人邮箱,如下图所示。
Media创建完成后,继续设置该Media设置SMTP邮件服务器信息,如下图所示。
2)创建Action(动作)
设置完邮件信息后,还需要设置触发行为,创建动作:当触发条件满足时发送报警邮件。
通过Configuration-->Actions-->Create action创建动作,如下图所示。
创建动作后,为发送邮件报警的行为设置报警邮件的标题、内容等信息,如下图所示。
设置动作的触发条件,如下图所示。
步骤二:创建触发器
1)创建触发器
创建触发器可以通过Configuration-->Templates找到之前创建的模板,点击模板后面的Triggers来创建触发器,如下图所示。
设置触发器名称为passwd_line_gt_35,如下图所示。
2)配置触发器
设置触发器规则,监控项目选择之前创建的项目:count_line_passwd_item,触发器条件是账户数量大于N是触发动作,N的值设置为35,如下图所示。
触发器规则设置完成后,激活该触发器即可,如下图所示。
3)测试效果
在被监控主机创建账户,登录监控Web页面查看,如图下所示。
在监控服务器查收报警邮件,如下图所示。
Security基础(六):部署Zabbix监控平台、配置及使用Zabbix监控系统、自定义Zabbix监控项目、实现Zabbix报警功能的更多相关文章
- (转)Zabbix Agent-Windows平台配置指导
原地址:http://blog.itpub.net/26739940/viewspace-1169538/ zabbix是一个CS结构的监控系统,支持ping,snmp等很多的监控,但是大部分 ...
- 部署zabbix监控平台(源码安装)
案例:部署Zabbix监控平台 1 问题 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 安装LNMP环境 源码安装Zabbix 安装监控端主机,修改基本 ...
- 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus
前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...
- Zabbix监控平台
Zabbix监控平台 案例1:常用系统监控命令 案例2:部署Zabbi ...
- Zabbix通过进程名监控进程状态配置详解
Zabbix通过进程名监控进程状态配置详解 有时候我们只能通过进程名监控一个进程是否停掉了,因为有的进程并没有对外提供端口号,以下记录了下详细步骤,通过这个示例会学到很多zabbix核心配置相关的东西 ...
- influxdb + Grafana可视化监控平台
在centos6.5上influxdb + Grafana监控平台配置: 1.RedHat and CentOS users can install the latest stable version ...
- 基于java spring框架开发部标1078视频监控平台精华文章索引
部标1078视频监控平台,是一个庞杂的工程,涵盖了多层协议,部标jt808,jt809,jt1078,苏标Adas协议等,多个平台功能标准,部标796标准,部标1077标准和苏标主动安全标准,视频方面 ...
- 我用STM32MP1做了个疫情监控平台2—Qt环境搭建
目录 1.嵌入式Qt简介 2.查看开发板Qt库的版本 3.主机搭建Qt环境 4.第一个Qt程序--Hello World 5.一些问题 @ 1.嵌入式Qt简介 Qt 是一个跨平台的应用程序开发框架.使 ...
- 我用STM32MP1做了个疫情监控平台3—疫情监控平台实现
目录 1.前言 2.数据接口的获取 3.Qt界面的实现 4.在开发板上运行Qt程序 5.使用无线模块联网 6.代码下载 @ 1.前言 之前我使用桌面版本Qt实现了肺炎疫情监控平台:基于Qt的新冠肺炎疫 ...
随机推荐
- pve之命令
pvesr list ha-manager status pvecm nodes pvecm status pveperf qm list root@cu-pve06:~# pvesr list Jo ...
- 大数据学习笔记之Zookeeper(三):Zookeeper理论篇(二)
文章目录 3.1 数据结构 3.2 节点类型 3.3 特点 3.4 选举机制 3.5 stat结构体 3.6 监听器原理 3.1 数据结构 ZooKeeper数据模型的结构与Unix文件系统很类似,整 ...
- CodeIgniter 技巧 - 通过 Composer 安装 CodeIgniter 框架并安装依赖包
PHP 项目中,通过 Composer 来管理各种依赖包,类似 Java 中的 Maven,或 Node 中的 npm.CodeIgniter 框架要想通过 Composer 自动加载包也很简单,步骤 ...
- Python笔记(二十一)_内置函数、内置方法
内置函数 issubclass(class1,class2) 判断class1类是否为class2类的子类,返回True和False 注意1:类会被认为是自身的子类 >>>issub ...
- [AGC028D](dp计数)
题解点我 Code #include <bits/stdc++.h> typedef long long LL; typedef unsigned long long uLL; #defi ...
- dp(最长升序列:二分查找时间优化nlogn)
We are all familiar with sorting algorithms: quick sort, merge sort, heap sort, insertion sort, sele ...
- Ride to Office(贪心水题)
[题目链接] http://noi.openjudge.cn/ch0406/2404/ [算法] 一开始zz了,先按时间排序然后如果速度超过当前男主速度,且在男主到达目的地前超过男主则最终男主和这个人 ...
- java NIO socket 通信实例
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhuyijian135757/article/details/37672151 java Nio 通 ...
- project euler-34
145是个奇怪的数字.由于1!+ 4! + 5! = 1 + 24 + 120 = 145. 请求出能表示成其每位数的阶乘的和的全部数的和. 请注意:由于1! = 1和2! = 2不是和,故它们并不包 ...
- 利用delegate来解决类之间相互引用问题(引用死锁)
类之间相互引用--类A中需要调用类B中的方法,同时,类B中又要调用类A中的方法.(也被称为引用死锁,通常会出现编译错误). 解决方法是,在类A中引用类B,并使类A成为类B的delegate,这样在类A ...