玩转Linux之搭建zabbix监控系统及排错

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玩转Linux之搭建zabbix监控系统及排错相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

为何要了解监控架构

例如:我们八人组成团队叫“鬼八仙”;要和人家打群架,人家十三人组成团队叫“十三太保”,由名字得知,我们是干不过人家的,即便干过人家,我们的损失绝对大过人家。

因此,根据不同的网络环境、监控规模等综合因素,选择适合的监控架构。

  1. 直接连接架构又叫server-client架构,适用于网络环境简单、监控规模少的场合,打个比方,好比“绝代双骄”,只有两个人。
  2. proxy架构,适用于中型网络的监控。
  3. Node架构,翻译中文节点,每个node有自己的配置文件和数据库,当主服务器发生故障,节点仍可保证架构的完整性,适用于大型分布式监控环境,北京、天津等有好多个网络区域需要监控,既保证延迟少,又要在发生故障能不影响其他节点。

案例

在这里插入图片描述

温馨提示:采用zabbix作为监控服务器,监控对象为Linux服务器、Windows服务器、网络设备。交换机采用GNS3模拟器模拟。

一、搭建网络环境,确保网络连通

switch配置

Sw2#en //进入用户模式
Sw2#conf t //进入特权模式
Sw2(config)#int ran f0/0 -3 //进入f0/0到f0/3接口
Sw2(config-if-range)# no sh //开启接口
Sw2(config-if-range)#exit //退出接口配置模式

Sw2(config)#int vlan 1 //进入vlan1
Sw2(config-if)# ip add 192.168.2.254 255.255.255.0 //设置vlan1ip地址
Sw2(config)# no sh //开启接口

测试网络环境: 测试路由器能ping通各设备Windows、Linux主机及zabbix服务器

二、配置Zabbix服务器192.168.2.1
注意:实验环境,关闭防火墙、setenfoce设置为宽容模式
例如:

1、 安装MariaDB(配置yum仓库省略)

[root@localhost ~]# mount /dev/cdrom /mnt/ //挂载系统光盘
[root@localhost ~]# yum -y install mariadb-server mariadb //安装mariadb
[root@localhost ~]# systemctl start mariadb.service //启动mariadb
[root@localhost ~]# systemctl enable mariadb.service //设置自启动
[root@localhost ~]# mysqladmin -u root password ‘123456’ //设置mysql-root密码

2、 安装zabbix

[root@localhost ~]# umount /mnt //卸载系统盘
[root@localhost ~]# eject
[root@localhost ~]# mount /dev/cdrom /mnt/ //挂载zabbix安装专用包
已给朋友们上传CSDN,链接是zabbix监控系统系列安装包

[root@localhost ~]# yum clean all //上步用另一个yum仓库安装,必须清空yum源,否则,报错
[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
//安装zabbix及所需软件,若也监控zabbix服务器本身需安装代理

[root@localhost ~]# mysql -u root -p //登录数据库

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; //创建zabbix所需数据库

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by ‘123456’; //创建zazbbix所需用户

3、 编辑配置文件

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz | mysql -uzabbix -p zabbix //导入数据库脚本(输入设置得zabbix密码)
[root@localhost ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak //备份zabbix主配置文件
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf //编辑主配置文件

参考配置如下:
在这里插入图片描述

4、安装zabbix Web接口

[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf //修改web时区文件
在这里插入图片描述
[root@localhost ~]# systemctl start httpd //重启httpd服务

5、登录zabbix管理平台(图形化界面)。

打开浏览器访问URL:http://zabbix IP地址/zabbix
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
登录控制界面
在这里插入图片描述
在这里插入图片描述
解决中文乱码

[root@localhost ~]# cp /mnt/simkai.ttf /usr/share/zabbix/fonts/ //复制光盘中的字体包到本地
[root@localhost ~]# chmod 755 /usr/share/zabbix/fonts/simkai.ttf //设置权限
[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php //修改php配置文件
将第47行字体名改成simkai
在这里插入图片描述

三、用zabbix监控设备

  1. 监控linux主机(在需要监控的Linux主机安装代理程序)
    注意:编辑 zabbix agent的配置文件/etc/zabbix_agentd.conf,必须指定 zabbix server的IP地址,在每台安装了 agent的主机上都要配置,这里要指定zabbix服务器的IP地址,如果是在同一台服务器上可以不做修改。

被监控Linux系统主机配置
安装zabbix代理程序: rpm -ivh /mnt/zabbix-agent-3.2.6-1.el7.x86_64.rpm
编辑agent配置文件: vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.2.1   // 客户端被动等待指定服务器来查询数据(填zabbix服务器地址)
ServerActive=192.168.2.1 // 客户端主动提交数据到指定的服务器(填zabbix服务器地址)
Hostname=linux-server001  //修改

[root@localhost ~]# systemctl start zabbix-agent.service //启动代理程序
[root@localhost ~]# systemctl enable zabbix-agent.service //设置开机自启

Zabbix服务器管理网页设置
在这里插入图片描述
在这里插入图片描述
查看监测视图
在这里插入图片描述

  1. 监控网络设备(注意:图片是路由器监控,switch方法是一样的)
    switch配置
    switch(config) # snmp-server community centos RO //设置被服务器轮询的只读共同体
    switch(config) # snmp-server enable traps //允许发送trap消息
    switch(config) # snmp-server host 192.168.2.1 centos //设置发送trap消息的共同体
    注意:个别设备,红色命令部分会报错,如下图:
    在这里插入图片描述
    解决方案:命令换成switch(config) # snmp-server enable traps config
    Zabbix服务器管理页面设置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建图形视图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看监测视图
在这里插入图片描述

  1. 监控Windows主机(以Windows7为例,其他Windows版本方法一样)
    1)Windows主机设置
    解压 Windows客户端压缩包 zabbix_agents_3.2.0.win.zip,在bin目录下会有win32和win64两个文件夹,根据 Windows系统的版本自行进行选择。
    为方便配置,在c盘根目录创建目录zabbix,找到/bin目录——选择32/64版本(根据自己机器而定)——将目录下的文件,以及conf/Zabbix_agentd.win.conf文件复制到本机的C:/Zabbix目录。
    在这里插入图片描述
    注意:必须以administrator(系统管理员用户)运行,推荐用写字板打开,(记事本,字符格式会乱)修改zabbix——agentd.win.conf文件
    Server=192.168.2.1 //zabbix服务器地址
    ServerActive=192.168.2.1 //zabbix服务器地址
    Hostname=windows-server001 //保持和下面步骤,zabbix管理页面配置名称相同
    在这里插入图片描述
    在这里插入图片描述
    温馨提示:
    -i安装 -s 启动-c指定配置 -x停止 -d卸载
    如果报错,可能创建的文件夹默认是只读,去掉只读的勾选;也可能是当前登录用户权限不够,非系统管理员。如下图:
    在这里插入图片描述
    选择以管理员身份运行
    在这里插入图片描述

2)Zabbix服务器管理页面设置在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看监测视图
在这里插入图片描述
4. zabbix自定义监控项目(可以监控某个服务,如:web、FTP、mysql)
1)在被监控主机上操作
创建存放监控脚本的目录
mkdir -p /etc/zabbix/zabbix_scripts/
创建名为check_apache.sh的监控脚本
vim /etc/zabbix/zabbix_scripts/check_apache.sh //注意脚本名里不要出现要监控的进程名

#!/bin/bash
result=`ps -ef |grep  httpd | grep -v grep`
if [ -n "$result" ]   //脚本参数 -n判断是否存在
then
        echo "1"
else
        echo "0"
fi  

修改配置允许在脚本里有特殊字符
vim /etc/zabbix/zabbix_agentd.conf
第284行,去掉#号,并将参数0改成1
在这里插入图片描述
在/etc/zabbix/zabbix_agent.d/目录下创建名为userparameter_ apache.conf的文件
在此文件中添加自定义监控项,格式为UserParameter=<键值>,<命令>
vim /etc/zabbix/zabbix_agentd.d/userparameter_apache.conf
在这里插入图片描述
重启zabbix代理服务:systemctl restart zabbix-agent
Zabbix服务器管理页面设置(先单击添加监控项,我已经添加成功了,所以下面是“更新”,首次设置,左下角是“添加”)
在这里插入图片描述
反向验证:关闭web服务(模拟异常)
在这里插入图片描述
在这里插入图片描述
正向验证:启动web服务,红色标记位置变成1


常见报错

1、Zabbix 代理[127.0.0.1]收到空响应

在这里插入图片描述
鼠标放到红色英文处提示:Received empty response from Zabbix Agent at [127.0.0.1]. Assuming that agent dropped connection because of access permissions.

翻译:在Zabbix 代理[127.0.0.1]收到空响应。假设代理由于访问权限而断开连接。
分析:接口地址必须填写被监控端的地址,代理地址127.0.0.1网络设备不能设置这个地址,因此填写正确的地址就可以解决问题。

解决方案:改成安装代理程序的接入口地址,即Windows主机地址192.168.2.3,刷新几次即可
在这里插入图片描述

2、没到达主机192.168.2.3的路由
在这里插入图片描述
翻译红色英文提示:从代理端获取数值失败,没到达主机192.168.2.3的路由

分析:IP地址问题,经查发现两问题
一、Windows主机忘记配置ip地址;二、Windows主机安装代理步骤,指定agent配置文件的ip地址填错;

解决方案:虚拟机环境,只能恢复Windows快照重做。

3、Linux系统被监控端无法启动代理程序
在这里插入图片描述
可以跟踪系统日志,一大堆信息,找到关键提醒,需要一个本地策略允许接入,没有PID文件。
在这里插入图片描述
前条提示,很明显,防火墙或setenfoce拒绝了服务的这项请求,后一条,一般是没有ip地址,典型的复合性问题,这两个问题同时解决,才能实现。

解决方案:关闭防火墙,setenfoce设置为宽容模式,配置ip即可

以上是关于玩转Linux之搭建zabbix监控系统及排错的主要内容,如果未能解决你的问题,请参考以下文章

简单实用的Tomcat集群搭建技法及排错

玩转Linux系统之搭建Nginx+Tomcat群集实现负载均衡

玩转Linux系统之轻松搭建Nginx服务

玩转Linux系统之轻松搭建Mysql读写分离集群

玩转Linux系统之轻松搭建Redis集群

玩转Linux系统之轻松搭建Mysql主从复制集群