部署Zabbix监控平台

本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备:
----安装LNMP环境---->源码安装Zabbix—>安装监控端主机,修改基本配置---->初始化Zabbix监控Web页面------->修改PHP配置文件,满足Zabbix需求---->安装被监控端主机,修改基本配置

1)安装LNMP环境

]# yum -y install gcc pcre-devel  openssl-devel php php-mysql mariadb mariadb-devel mariadb-server php-fpm-5.4.16-42.el7.x86_64.rpm                   //注意,php-fpm这个软件包在lnmp_soft/目录下
]# tar -xf nginx-1.12.2.tar.gz
]# cd nginx-1.12.2
]# ./configure --with-http_ssl_module
]# make && make install

2)修改Nginx配置文件

]# 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;
        }
]# systemctl start  mariadb 
]# systemctl start  php-fpm
]# ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
]# nginx

3)客户端测试LNMP环境

]# cat /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>
]# curl http://192.168.2.5/test.php

二、部署监控服务器Zabbix Server

]# yum -y install  net-snmp-devel  curl-devel  libevent-devel-2.0.21-4.el7.x86_64.rpm
                                          ||                     ||                                  ||
          依赖包,监控交换机和路由器  监控公共数据    libevent监控的内核驱动
//注意libevent-devel这个软件包在lnmp_soft目录下有提供
]# 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路径,mysql_config是一个mysql程序,将mysql的相关库数据、配置文件、主程序位置等所有参数数据传递给zabbix
// --with-net-snmp 调用net-snmp-devel软件监控设备
// --with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
[root@zabbixserver zabbix-3.4.4]# make && make install 
]# zabbix_
zabbix_agentd//被监控端         zabbix_proxy//代理          zabbix_server//监控服务器
zabbix_get//发送数据请求   zabbix_sender//被检控端发送数据给服务器  
zabbix_server_status//查看监控服务器状态
]# which zabbix_server            //查看程序位置
/usr/local/sbin/zabbix_server  

三、初始化Zabbix-----创建数据库,恢复Zabbix备份数据

]# mysql
mysql> create database zabbix character set utf8;     //创建数据库,支持中文字符集
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';    //创建可以访问数据库的账户与密码
[root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/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
//刚刚创建是空数据库,zabbix源码包目录下,有提前准备好的数据
 //使用mysql导入这些数据即可(注意导入顺序)
 //schema.sql Zabbix自己的备份文件,
//images.sql
//data.sql
]# ls /zabbix-3.4.4/database/    //这个目录下存放了各种数据库的备份文件,根据需要恢复备份数据
ibm_db2/     Makefile.am  mysql/       postgresql/  
Makefile     Makefile.in  oracle/      sqlite3/

四、初始化Zabbix-----上线Zabbix的Web页面

]# cd lnmp_soft/zabbix-3.4.4/frontends/php/   //
]# cp -r * /usr/local/nginx/html/
]# chown  -R  nginx.nginx  /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     //设置日志,仅查看即可
[root@zabbixserver ~]# useradd -s /sbin/nologin zabbix 
//不创建用户无法启动服务
[root@zabbixserver ~]# zabbix_server          //启动服务
[root@zabbixserver ~]# ss -ntulp |grep zabbix_server //确认连接状态,端口10051
tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_server",pid=23275,fd=4),("zabbix_server",pid=23274,fd=4)
提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,
一定要先使用killall zabbix_server关闭服务后,再重新启动一次。

--------修改Zabbix_agent配置文件,启动Zabbix_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        //允许哪些主机通过主动模式监控本机
Hostname=zabbix_server                   //设置本机主机名
LogFile=/tmp/zabbix_server.log                  //设置日志文件
UnsafeUserParameters=1                    //是否允许自定义监控项目
[root@zabbixserver ~]# zabbix_agentd          //启动监控agent
[root@zabbixserver ~]# ss -ntulp |grep zabbix_agentd   //查看端口信息为10050
tcp    LISTEN     0      128       *:10050                 *:*                   users:(("zabbix_agentd",pid=23505,fd=4),("zabbix_agentd",pid=23504,fd=4)
提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_agentd,
一定要先使用killall zabbix_agentd关闭服务后,再重新启动一次。

–修改php配置文件,启动php-fpm服务(以下若不改配置Zabbix时回报错并提示修改)

]# yum -y install  php-gd //提供zabbix画图功能,将数据化成图形                          
php-xml   php-bcmath-5.4.16-42.el7.x86_64.rpm  //用于计算 
php-mbstring-5.4.16-42.el7.x86_64.rpm  //用于支持中文汉字功能
]# vim /etc/php.ini
date.timezone = Asia/Shanghai               //设置时区,默认被注释
max_execution_time = 300                   //最大执行时间,秒
post_max_size = 32M                        //POST数据最大容量
max_input_time = 300                       //服务器接收数据的时间限制
memory_limit = 128M                        //内存容量限制
[root@zabbixserver ~]# systemctl restart php-fpm

--------浏览器访问Zabbix_server服务器的Web页面

]# firefox http://192.168.2.5/index.php

//第一次访问,初始化PHP页面会检查计算机环境是否满足要求,如果不满足会给出修改建议
//默认会提示PHP的配置不满足环境要求,需要修改PHP配置文件
在这里插入图片描述
在这里插入图片描述

//注意:这里有一个PHP LDAP是warning,LDAP意思是存放所有账号的一个服务,有没有无所谓,因为zabbix默认把帐号存放在mysql里.除此之外,所有的都应该是OK的,唯一要更改的就是端口号(mysql)和密码(之前配置文件中修改的)
//在登陆页面,使用用户(admin)和密码(zabbix)登陆,登陆后设置语言环境为中文。

在这里插入图片描述

**报错提示: 提示:Unable to create the configuration file.
解决方法:配置文件有误,可能因为Selinus没有改,或者配置文件没有权限修改
提示:timezone 解决方法:时区配置写错 提示:Zabix Server not running
解决方法:SELinux没有修改

五、部署被监控主机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
[root@zabbixclient_web1 zabbix-3.4.4]# make && make install 

-----修改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             //谁可以监控本机(主动监控模式)
    Hostname=zabbixclient_web1                    //被监控端自己的主机名
    EnableRemoteCommands=1                      //监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
    UnsafeUserParameters=1                           //是否允许自定义key监控
    [root@zabbixclient_web1 ~]# zabbix_agentd        //启动agent服务

**********拷贝启动脚本(非必须操作,可选做),有启动脚本可以方便管理服务,启动与关闭服务。启动脚本位于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监控系统
实现以下目标: 监控CPU 监控内存 监控进程 监控网络流量 监控硬盘
主机是Zabbix监控的基础,Zabbix所有监控都是基于Host主机。
使用火狐浏览器登录http://192.168.2.5,通过Configuration(配置)–>Hosts(主机)–>Create Host(创建主机)添加被监控Linux主机
在这里插入图片描述
在这里插入图片描述

添加被监控主机时,需要根据提示输入被监控Linux主机的主机名称(最好与电脑的主机名一致,但也允许不一致)、主机组、IP地址等参数,端口是不用动的,因为启动agent,就会有10050端口启用添加信息之后,不要点击添加,点击主机旁边的模板
在这里插入图片描述
为被监控主机添加监控模板Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据,对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机即可

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

在这里插入图片描述

找到需要监控的数据后,可以点击后面的Graph查看监控图形即可。

七、自定义Zabbix监控项目
步骤:创建自定义key–>创建监控项目–>创建监控图形–>将监控模板关联到主机创建自定义key
1)自定义的key文件一般存储在/usr/local/etc/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,允许自定义监控key,来读取该目录下的所有文件 。

web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
Include=/usr/local/etc/zabbix_agentd.conf.d/                   //加载配置文件目录
web1 ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
web1 zabbix_agentd.conf.d]# vim count.line.passwd               //文件名随意
UserParameter=count.line.passwd,wc -l /etc/passwd | awk ' {print $1} '
//自定义key语法格式: UserParameter=key名称,命令或者脚本绝对路径,格式固定

-----测试自定义key是否正常工作

]# killall  zabbix_agentd          //先杀死进程
[root@zabbixclient_web1 ~]# zabbix_agentd         //重启agent服务
[root@zabbixclient_web1 ~]# zabbix_get -s 127.0.0.1 -k count.line.passwd

注意:如zabbix_get命令执行错误,提示Check access restrictions in Zabbix agent configuration,则需要检查agent配置文件是否正确

2)创建监控项目--------------------登录Zabbix Web监控控制台,通过Configuration(配置)–>Template(模板)–>Create template(创建模板),填写模板名称,新建模板群组。
在这里插入图片描述
创建完成模板后,默认模板中没有任何应用、项目、触发器、图形等资源。这里需要点击模板后面的Application(应用集)链接打开创建应用的页面,点击Application(应用集)后,会刷新出下图所示页面,在该页面中点击Create application(创建应用集)按钮。设置应用名称
在这里插入图片描述在这里插入图片描述

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

接下来,还需要给项目设置名称及对应的自定义key
在这里插入图片描述
3)创建监控图形
为了后期可以通过图形的方式展示监控数据,还需要在模板中创建图形,设置方法与前面的步骤一致,在监控模板后面点击Graph(图形)即可创建图形,设置监控图形基于什么监控数据。
在这里插入图片描述
4)将监控模板关联到主机,监控模板制作完成后,就可以将模板链接到主机实现监控功能了。首先找到被监控主机Configuration(配置)–>Hosts(主机)
在这里插入图片描述
点击需要的被监控主机链接,打开监控主机设置页面,在Template(模板)页面中选择需要链接到该主机的模板,在此选择刚刚创建的模板count_line.passwd添加即可
在这里插入图片描述
总结:
源码安装zabbix,server,agentd,proxy
get send
配置文件Zabbix_server.conf:DBHost、DBName、DBUser、DBPasswd
Zabbix_agentd.conf:server=、serveractive=、hostname、unsafeparameter=1、
Include=/usr/local/etc/zabbix_agetd
起服zabbix_server、zabbix_agentd
cp -r frontend/php/* ---->LNMP
页面配置
添加主机
给主机添加监控模版
查看数据、图形
可以自定义监控:
Vim count.line.pass
Userparameter=key1,命令
Zabbix_get -s ip -k key1
网页操作:创建监控模版、创建应用集、创建监控项、创建图形、将监控模版和主机绑定

八、Zabbix进阶操作
实现Zabbix报警功能–>Zabbix自动发现–>Zabbix主动监控–>拓扑图与聚合图形—>自定义监控案例:创建triggers—>设置Media Types(配置邮箱)—>配置Actio
创建触发器,强烈建议使用英文的语言环境,通过Configuration–> Templates,找到我们之前创建的count.line.passwd模板,点击模板后面的triggers
在这里插入图片描述
设置触发器名称,如图所示,点击add添加表达式,填写表达式:监控项为账户数量,最近300秒账户数量大于26(根据系统账户数量实际填写)
在这里插入图片描述在这里插入图片描述

选择触发器报警级,Add创建该触发器
在这里插入图片描述
注意:实际生产环境不同级别会发送消息给不要同的人,注意问题的级别和发送的人员设置

创建Media,通过Administration(管理)–>Media Type–>选择Email,也可增加模块设置别的发送类型,微信等
在这里插入图片描述
设置邮件服务器信息,设置邮件服务器及邮件账户信息;为用户添加Media在Administration–>Users(用户)中找到选择admin账户,点击Admin账户后,在弹出的界面中选择Media菜单–>点击Add报警媒介,如果是外部邮件需要开启安全认证和用户密码的填写

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
点击Add(添加)后,在Meida Type中填写报警类型,收件人,时间等信息,时间格式为图中的时间表示周一到周七,0点到24点

创建Action动作,定义当触发器被触发时的时候,执行什么行为。通过Configuration–>Actions–>Create
action
配置Action动作的触发条件,填写Action动作的名称,配置什么触发器被触发时会执行本Action(账户数量大于26),并Remove 掉A项未配置的条目
在这里插入图片描述在这里插入图片描述

配置Action动作的具体行为(发送信息或执行远程命令),无限次数发送邮件,60秒1次,发送给Admin用户
在这里插入图片描述-------------->在这里插入图片描述

测试效果,在被监控主机创建账户(让账户数量大于26),然后登录监控端Web页面,在仪表盘中查看问题报警(需要等待一段时间)
在这里插入图片描述并在服务器上查看报警邮件

Zabbix自动发现:创建自动发现规则—>创建Action—>添加新的agentd机器测试
创建自动发现规则,通过Configuration–>Discovery–>Create discovery rule,填写自动发现的IP范围(逗号隔开可以写多个),多久做一次自动发现(默认为1小时,仅实验修改为1m),配置检查的方式:Ping、HTTP、FTP、Agent的自定义key等检查
在这里插入图片描述

通过Configuration–> Actions Event source–>Discovery–>Create action创建动作并配置动作,添加动作名称,添加触发动作的条件
在这里插入图片描述在这里插入图片描述
点击操作(触发动作后要执行的操作指令),操作细节:添加主机到组,添加模板链接

在这里插入图片描述
以上创建完成后,可以创建一台新的主机,验证zabbix是否可以自动发现该主机。

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

#Server=127.0.0.1,192.168.2.5     //注释该行,允许谁监控本机
StartAgents=0      //被动监控时启动多个进程,设置为0,则禁止被动监控,不启动端口
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           //启动服务,不会有端口出现使用命令:ps aux | grep zabbix可以看到进程

2)创建主动监控的监控模板
通过Configuration(配置)–>Templates(模板)–>选择Template OS Linux–>全克隆,克隆该模板,新建一个新的模板。
新模板名称为:Template OS Linux ServerActive

在这里插入图片描述

将模板中的所有监控项目全部修改为主动监控模式,通过Configuration–>Templates–>选择新克隆的模板,点击后面的Items–>点击全选,选择所有监控项目,点击批量更新,将类型修改为:Zabbix Agent
在这里插入图片描述

批量修改监控项的监控模式后,并非所有监控项目都支持主动模式,批量修改后,会发现有几个没有修改主动模式成功,说明,这些监控项目不支持主动模式,关闭即可。可以点击类型排序,方便操作,点击状态即可关闭。
在这里插入图片描述
在Zabbix监控服务器,添加被监控的主机(主动模式),设置主机名称:zabbixclient_web2(必须与被监控端的配置文件Hostname一致),将主机添加到Linux servers组,IP地址修改为0.0.0.0,端口设置为0

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值