三期总目录链接
目录
4、被监控端 windows server 192.168.1.21
一、介绍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
Server与ServerActive配置项均指定的是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配置项的作用是什么?
作用:用户自定义的脚本中可以包含特殊字符