十一章——搭建Zabbix监控系统(应用——linux防护与群集)

三期总目录链接

目录

 一、介绍Zabbix  

(一)概述 

(二)、Zabbix重要的组件和进程、架构

1、重要的组件由以下几个组件部分构成

2、Zabbix进程

3、zabbix的监控架构

二、Nabbic案例

(一)yum安装Nabbic

1、安装MariaDB 

2、安装Nabbic

3.、检查和编辑配置文件 

4.安装zabbix web接口

(二)、zabbix监控网络案例

 1、web平台基本配置

 2、修改中文乱码

3、监控linux服务器192.168.1.3

4、被监控端 windows server 192.168.1.21

5、监控linux的httpd服务

复习题


 一、介绍Zabbix  

(一)概述 

 Zabbix是一个基于Web界面的企业级开源监控套件,提供分布式系统监控与网络监视功能。具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表、图表的绘制等功能。监测的对象可以是Linux或Windows服务器,也可以是路由器、交换机等网络设备,通过SNMP(Simple Network Management Protocol,简单网络管理协议)、Zabbix Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能,并提供通知机制使系统管理员可以快速定位、解决系统中存在的各种问题。

      Zabbix的特点有:数据收集、灵活的國值定义高度可配置的告警、实时绘图、Web 监控能力、广泛的可视化选项、历史数据存储、容易配置、使用模板、网络发现、快速的 web 接口、Zabbix API、权限系统、功能齐全且易于扩展的代理(agent)、二进制守护进程、为复杂环境准备

(二)、Zabbix重要的组件和进程、架构

1、重要的组件由以下几个组件部分构成

1.1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行
1.2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据
1.3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上
1.4、Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端
1.5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端
注:zabbix node也是 zabbix server的一种 

2、Zabbix进程

默认情况下包含5个程序另外abbix_java_gateway是可选,这个需要另外安装

2.1、zabbix_agentd:客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等
2.2、zabbix_get:单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查
2.3、zabbix_sender:用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据
2.4、zabbix_server:zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据
2.5、zabbix_proxy:zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提主动(或被动)地提交到server上
2.6、zabbix_java_gateway:zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy

3、zabbix的监控架构

在实际监控架构中,zabbix根据网络环境、监控规模等 分了三种架构

3.1、server-client架构:是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
3.2、master-node-client架构:架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。
3.3、server-proxy-client架构:proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。

二、Nabbic案例

(一)yum安装Nabbic

 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可

1、安装MariaDB 

[root@Nabbix ~]# yum -y install mariadb-server mariadb
......
...
[root@Nabbix ~]# systemctl start mariadb     #启动服务
[root@Nabbix ~]# systemctl enable mariadb    #开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@Nabbix ~]# netstat -anpt|grep mysqld   #查看端口
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1787/mysqld  

[root@Nabbix ~]# mysqladmin -u root password 123    #设置密码为123
[root@Nabbix ~]# mysql -u root -p123                #进入数据库
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;        #查看库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> quit             #退出
Bye

2、安装Nabbic

--创建本地yum源
[root@Nabbix ~]# which createrepo
/usr/bin/createrepo
[root@Nabbix ~]# mkdir /other

上传zabbix相关软件到目录 /other/  中

[root@Nabbix other]# ll zabbix*
-rw-r--r-- 1 root root  361808 9月  10 21:27 zabbix-agent-3.4.1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 2046420 9月  10 21:27 zabbix-server-mysql-3.4.1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 2637704 9月  10 21:27 zabbix-web-3.4.1-1.el7.noarch.rpm
-rw-r--r-- 1 root root    6088 9月  10 21:27 zabbix-web-mysql-3.4.1-1.el7.noarch.rpm

编辑yum配置   先查看自己的配置名称

[root@Nabbix other]# vim /etc/yum.repos.d/centos7.repo
......
...


[other]
name=zabbix
baseurl=file:///other
enabled=1
gpgcheck=0


保存退出

 注意:这里需要上传相关的安装包否则使用yum安装时会报错,上传到/other文件夹中

创建软件数据库目录

[root@Nabbix other]# createrepo /other
Spawning worker 0 with 4 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@Nabbix other]# yum makecache
已加载插件:fastestmirror, langpacks
aaa                                                                                            | 3.6 kB  00:00:00     
other                                                                                          | 2.9 kB  00:00:00     
(1/5): other/filelists_db                                                                      | 9.7 kB  00:00:00     
(2/5): other/other_db                                                                          | 2.1 kB  00:00:00     
(3/5): other/primary_db                                                                        | 4.8 kB  00:00:00     
(4/5): aaa/filelists_db                                                                        | 3.1 MB  00:00:00     
(5/5): aaa/other_db                                                                            | 1.2 MB  00:00:00     
Loading mirror speeds from cached hostfile
元数据缓存已建立


[root@localhost other]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
...........
....



zabbix web需要数据库。在mariadb中创建数据库zabbix,授权用户zabbix管理,增强安全性

[root@Nabbix ~]# mysql -u root -p123
.....
..
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '123.com';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye

  导入数据库脚本

[root@Zabbix other]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz |mysql -uzabbix -p123.com zabbix

3.、检查和编辑配置文件 

[root@Zabbix ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak    #备份

[root@Zabbix ~]# vim /etc/zabbix/zabbix_server.conf
.....
..
 91  DBHost=localhost
......
101 DBName=zabbix
.....
117 DBUser=zabbix
........
125 DBPassword=123.com
....

保存退出

在agent配置文件 /usr/local/etc/zabbix_agentd.conf,指定zabbix server的ip地址,每台agent主机都要配置,本地服务器中不做修改

   备份

[root@Zabbix ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
[root@Zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf
......
...
 97 Server=127.0.0.1        #客户端被动等待指定服务器来查询数据
.....
....
138 ServerActive=127.0.0.1  #客户端主动提交数据到指定服务器
....
..
149 Hostname=Zabbix server

保存退出

启动server、agent、httpd

[root@Zabbix ~]# systemctl start zabbix-server

[root@Zabbix ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.

[root@Zabbix ~]# systemctl start zabbix-agent

[root@Zabbix ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.

[root@Zabbix ~]# systemctl start httpd

[root@Zabbix ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

[root@Zabbix ~]# netstat -anpt|grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      11856/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      11759/zabbix_server 
tcp6       0      0 :::10050                :::*                    LISTEN      11856/zabbix_agentd 
tcp6       0      0 :::10051                :::*                    LISTEN      11759/zabbix_server 

[root@Zabbix ~]# netstat -anpt|grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      11896/httpd   

4.安装zabbix web接口

编辑apache服务针对zabbix的前端配置为/etc/httpd/conf.d/zabbix.conf 设置时区与当前系统时区一致

[root@Zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf
....
...
 19         php_value date.timezone Asia/Shanghai
....

保存退出

[root@Zabbix ~]# systemctl restart httpd

浏览器输入: http://192.168.1.1/zabbix

 系统环境检测:确保软件都符合要求

输入信息: 

Database name:zabbix

User:zabbix

Password:123.com

 监控平台信息:Name:zabbix监控平台

返回汇总信息,确认无误

登录界面

默认用户: Admin (大写A)

默认密码:zabbix

(二)、zabbix监控网络案例

zabbix监控服务器(建议使用图形化192.168.1.1/24
linux 192.168.1.3/24
windows server 192.168.1.21/24

 1、web平台基本配置

修改初始密码 

修改密码:123.com

language :中文支持 Chinese(zh_CN)

 创建用户

 2、修改中文乱码

中文显示时,有可能出现乱码现象。主要由字体导致

上传字体

[root@Zabbix ~]# ls simkai.ttf 
simkai.ttf

[root@Zabbix ~]# cp simkai.ttf /usr/share/zabbix/fonts/
[root@Zabbix ~]#  ls /usr/share/zabbix/fonts/
graphfont.ttf  simkai.ttf

将graphfont更改为simkai,刷新界面即可

[root@Zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php  #进入文件进行修改
......
...
 47 define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name
.....


保存退出

3、监控linux服务器192.168.1.3

修改 agent 的配置文件/etc/zabbix/zabbix_agentd.conf

ServerServerActive配置项均指定的是zabbix服务器地址,但是其作用并不相同
Server:用于客户端被动等待指定服务器来查询数据
ServerActive:用于客户端主动提交数据到指定的服务器
Hostname:必须与Zabbix web上配置一致,否则Zaobix主动监控无法正常工作

[root@linux ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm
......
...
[root@linux ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
[root@C-07 ~]# vim /etc/zabbix/zabbix_agentd.conf
....
....
 95 Server=192.168.1.1
......
...
136 ServerActive=192.168.1.1
.....
.. 
147 Hostname=192.168.1.3        #ip地址必须与zabbixweb上配置一致,否则主动监控无法正常工作
....
..

保存

[root@linux ~]# systemctl start zabbix-agent.service
[root@linux ~]# systemctl enable  zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@linux ~]# netstat -anpt|grep "agent"
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      12198/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      12198/zabbix_agentd 

3.1、zabbix web界面配置

 添加成功后等待5分钟左右可能不需要5分钟

 

 显示ZBX为绿色说明添加成功,点击图形

 

4、被监控端 windows server 192.168.1.21

在Windows服务器上安装agent 程序
  将Windows 客户端压缩包zabbix_agents_3.2.0.win.zip解压,在解压文件的bin目录下会有 win32 win64 两个文件夹,根据Windows系统的版本自行进行选择

一、在 C盘 新建文件 zabbix 文件
二、将win64文件夹里面的客户端程序文件复制至C:\zabbix
三、将conf文件中的zabbix_agentd.win.conf配置文件同样复制C:\zabbix

修改配置文件zabbix_agentd.win.conf我使用的方法是先把配置文件复制到linux服务器上更改完成后上传到windows服务器上

Server=192.168.1.1
ServerActive=192.168.1.1
Hostname=192.168.1.21
cmd命令安装
-c指定配置文件
-i安装
-s启动
-x停止
-d卸载

C:\Users\Administrator>cd c:\zabbix               #进入文件夹

c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -i     #安装agent
zabbix_agentd.exe [2592]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [2592]: event source [Zabbix Agent] installed successfully

c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -s     #指定agent配置文件并启动
zabbix_agentd.exe [780]: service [Zabbix Agent] started successfully

4.1、zabbix web界面

 linux 服务器显示红色原因是因为我把linux服务器已经关机了

windows服务显示ZBX为绿色说明添加成功

5、监控linux的httpd服务

[root@linux ~]# yum -y install httpd    安装httpd
[root@linux ~]# systemctl start httpd

创建监控脚本存放目录/etc/zabbix/zebbix_scripts,然后在该目录下编写脚本名称为check_httpd.sh的监控脚本

 在zabbix_agentd.conf 配置文件中设置UnsafeUserParameters=1,默认为0,改为1后用户自定义的脚本中可以包含特殊字符

[root@linux ~]# mkdir /etc/zabbix/zabbix_scripts     #新建文件
[root@linux ~]# vim /etc/zabbix/zabbix_scripts/check_httpd.sh     #写入脚本

#!/bin/bash
result=$(ps -ef | grep httpd | grep -v grep)

if [ -n "$result" ]
then
        echo '1'
else
        echo '0'
fi


保存退出

[root@linux ~]# chmod +x /etc/zabbix/zabbix_scripts/check_httpd.sh
[root@linux ~]# vim /etc/zabbix/zabbix_agentd.conf
......
...
248 UnsafeUserParameters=1      #添加内容
....
..

保存退出

   在/etc/zabbix/zabbix_agentd.d/目录下编辑 userparameter_httpd.conf  的文件,并在文件中设置自定义监控项,格式为“UserParameter=<键值>,<命令>”。这里我们自定义键值为“check_httpd“要执行的命令为执行check_httpd.sh这个脚本

[root@linux ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@linux zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@linux zabbix_agentd.d]# vim userparameter_httpd.conf   #进入空文件

UserParameter=check_httpd,sh /etc/zabbix/zabbix_scripts/check_httpd.sh  #输入内容保存退出
保存退出

[root@linux zabbix_agentd.d]# systemctl restart zabbix-agent    #重启agent服务

5.1、zabbix web监控平台

 点击下面的添加,验证

 成功配置完成监测linux服务器的httpd服务

复习题

1. Zabbix监控系统主要由哪几个重要组件构成的?

 Zabbix Server、Database Storage、Web interface、Proxy、Agent

2. Zabbix监控系统所包含的zabbix_get与zabbix_sender进程的作用分别是什么?

zabbix_get:单独使用的命令

zabbix_sender:用于发送数据给server或者proxy

3. Zabbix监控系统包含哪几种监控架构?分别适用于什么网络环境?

  server-client架构:适用于网络比较简单,设备比较少的监控环境

 master-node-client架构:适用于跨网络、跨机房、设备较多的大型环境

server-proxy-client架构:适用于跨机房、跨网络的中型网络架构的监控

4. 简述YUM安装Zabbix监控系统的流程

第一步—安装MariaDB  第二步—安装Zabbix   第三步—检查和编辑配置文件    第四步—安装zabbix web接口

5. 在zabbix_server.conf配置文件中通过哪些配置项指定数据库的名称、用户和密码?

DBName=zabbix        #数据库名称
DBUser=zabbix        #用户名
DBPassword=123.com   #密码

6. zabbix.conf 配置文件中的php_value date.timezone配置项的作用是什么?

作用:修改时区

7. zabbix一般使用什么协议监控路由器或交换机?

SNMP协议

8. 简述zabbix_agentd.conf配置文件中Server配置项与ServerActive配置项的区别

Server:用于客户端被动等待指定服务器来查询数据
ServerActive:用于客户端主动提交数据到指定的服务器

9 在Windows系统的cmd中执行zabbix_agentd.exe -c zabbix_agentd.win.conf -s命令的作用什么?

作用:指定agent配置文件并启动

10. zabbix_agentd.conf配置文件中UnsafeUserParameters配置项的作用是什么?

作用:用户自定义的脚本中可以包含特殊字符

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘浪初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值