zibbix监控简介与部署,手把手带你部署zabbix

背景

Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。

1.zabbix

1.1 zabbix简介

  • zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  • zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
  • zabbix由2部分构成,zabbix server与可选组件zabbix agent。
  • zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

1.2 zabbix架构

在这里插入图片描述
重要组件说明

1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;
2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3)web interface:zabbix的GUI接口;
4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;

1.3 监控系统运行的流程

一个监控系统运行的大概的流程是这样的:

  • agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。
  • 这里agentd收集数据分为主动和被动两种模式:
    主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
    被动:server向agent请求获取监控项的数据,agent返回数据。

1.4 zabbix特点与功能

1.4.1 zabbix的主要特点

  • 安装与配置简单,学习成本低
  • 支持多语言(包括中文)
  • 免费开源
  • 自动发现服务器与网络设备
  • 分布式监视以及WEB集中管理功能
  • 可以无agent监视
  • 用户安全认证和柔软的授权方式
  • 通过WEB界面设置或查看监视结果
  • email等通知功能

1.4.2 Zabbix主要功能:

  • CPU负荷、内存使用、磁盘使用、网络状况、端口监视与日志监视。

2.zabbix 监控的部署

2.1 相关环境部署

服务器 IP
Zabbix服务器(zabbix-server) 192.168.140.13/24(监控端)
Linux服务器(zabbix-client) 192.168.140.14/24(被监控端)
  • 注意:Zabbix的安装需要公网,Zabbix安装需要在LAMP平台上安装,因此第一步是部署LAMP架构

2.2 部署LAMP架构

2.2.1 关闭防火墙、核心防护

systemctl stop firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.2.2 安装依赖包

  • 首先导入CentOS7-Base-163.repo环境,并重新建立缓存
[root@zabbix-server ~]# cd /etc/yum.repos.d/
[root@zabbix-server yum.repos.d]# ls
backup  CentOS7-Base-163.repo  local.repo
[root@zabbix-server ~]# yum clean all
[root@zabbix-server ~]# yum makecache 

在这里插入图片描述

  • yum安装相关依赖包
[root@zabbix-server ~]# yum install -y httpd mariadb-server mariadb \
php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash

2.2.3 修改apache和php配置文件

[root@zabbix-server ~]# vi /etc/httpd/conf/httpd.conf
95	ServerName www.example.com:80    			//开启域名
164	DirectoryIndex index.php index.html  		//添加index.php

[root@zabbix-server ~]# vi /etc/php.ini 
878	date.timezone = PRC               

2.2.4 开启 apache和mariadb服务

[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl start mariadb.service
[root@zabbix-server ~]# netstat -anpt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      14116/httpd         
[root@zabbix-server ~]# netstat -anpt | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      14411/mysqld 

2.2.5 初始化数据库

[root@zabbix-server ~]# mysql_secure_installation

Enter current password for root (enter for none):# 输入root的当前密码(为none输入)	//按回车即可

Set root password? [Y/n] y			//设置密码,输入y
New password:                      //设置密码为:123456(密码可以随意)
Re-enter new password:             //123456
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] y     //移除匿名账号,y
 ... Success!

Disallow root login remotely? [Y/n] n    //不允许 root 账号远程登录,n
 ... skipping.

Remove test database and access to it? [Y/n] y     //移除test数据库,y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y      //重置权限列表,y
 ... Success!

2.2.6 测试

  • 登录数据库
[root@zabbix-server ~]# mysql -uroot -p123456

在这里插入图片描述

  • 测试 php 网页
[root@zabbix-server ~]# vi /var/www/html/index.php
<?php
phpinfo();
?>

在这里插入图片描述

2.2.7 创建数据库监控信息表并授权

[root@zabbix-server ~]# mysql -uroot -p123456
...
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
//数据库监控信息的表为zabbix,字符集为utf8,每一个字符区分大小写
Query OK, 1 row affected (0.00 sec)

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

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

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
  • 注意:还需要验证php与mysql的联动性
[root@zabbix-server ~]# vi /var/www/html/index.php
<?php
$link=mysql_connect('192.168.140.13','zabbix','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!!";
mysql_close();
?>

在这里插入图片描述

2.3 部署zabbix服务器

2.3.1 添加zabbix源并重新建立缓存

  • 添加阿里云源区域
系统源
[root@zabbix-server ~]# vi /etc/yum.repos.d/CentOS-Base.repo
[Ali]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

zabbix源
[root@zabbix-server ~]# vi /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/\$basearch/
enabled=1
gpgcheck=0

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgcheck=0

[root@zabbix-server ~]# yum makecache

2.3.2 安装zabbix依赖包

[root@zabbix-server ~]# yum install -y php-mbstring php-bcmath

2.3.3 下载zabbix源并安装zabbix服务端软件

[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

获取https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.NmvBlG: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-4.0-2.el7         ################################# [100%]
   
[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-web-mysql  -y  --nogpgcheck

2.3.4 导入zabbix监控数据库

[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -padmin123 zabbix
[root@zabbix-server ~]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf     	
														//查看zabbix未注释的生效行
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
100:DBName=zabbix
116:DBUser=zabbix
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
473:Timeout=4
516:AlertScriptsPath=/usr/lib/zabbix/alertscripts
527:ExternalScripts=/usr/lib/zabbix/externalscripts
563:LogSlowQueries=3000

2.3.5 修改 zabbix 配置文件

[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf
124	DBPassword=admin123

[root@zabbix-server ~]# vi /etc/httpd/conf.d/zabbix.conf 
20	php_value date.timezone Asia/Shanghai		//修改时区,将此行注释去掉修改即可

[root@zabbix-server ~]# vi /usr/share/zabbix/include/defines.inc.php	//添加配置

:%s /graphfont/kaiti/g       //命令行模式直接输入,修改图表中文乱码
  • 从微软系统C:\Windows\Fonts下复制相应的字体 (楷体) 文件到 /usr/share/zabbix/assets/fonts 目录中
    注意字体名称要对应配置文件改为kaiti.ttf,且注意大小写
    在这里插入图片描述
[root@zabbix-server ~]# cd /usr/share/zabbix/assets/fonts/
[root@zabbix-server fonts]# rz -E		//将楷体复制到桌面并修改,直接拉到该目录下
rz waiting to receive.
[root@zabbix-server fonts]# ls
graphfont.ttf  kaiti.ttf.ttf

2.3.6 启动 zabbix 服务并监听端口

[root@zabbix-server ~]# systemctl start zabbix-server
[root@zabbix-server ~]# 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-server ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      54668/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      54668/zabbix_server 

2.3.7 重启 apache 服务

[root@zabbix-server ~]# systemctl restart httpd.service

2.4 访问 zabbix 登录并安装

  • 登录,http://192.168.140.13/zabbix/
    在这里插入图片描述
  • 状态检查
    在这里插入图片描述
  • 连接数据库
    在这里插入图片描述
  • 起zabbix服务器名称
    在这里插入图片描述
  • 信息总览
    在这里插入图片描述
  • 安装完成
    在这里插入图片描述
  • 登录zabbix
    在这里插入图片描述
    在这里插入图片描述

2.5 设置linux版zabbix客户端

2.5.1 关闭防火墙、核心防护

[root@zabbix-client ~]# systemctl stop firewalld
[root@zabbix-client ~]# setenforce 0
[root@zabbix-client ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.5.2 设置yum源

[root@zabbix-client ~]# vi /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

2.5.3 安装zabbix-agent,并修改客户端配置

  • 安装zabbix-agent
[root@zabbix-client ~]# yum -y install zabbix-agent --nogpgcheck
  • 修改 zabbix-agent 客户端配置
[root@zabbix-client ~]# vi /etc/zabbix/zabbix_agentd.conf
13	PidFile=/var/run/zabbix/zabbix_agentd.pid
32	LogFile=/var/log/zabbix/zabbix_agentd.log
43	LogFileSize=0
98	Server=192.168.140.13           //服务端 ip
139	ServerActive=192.168.140.13  	//服务端 ip
150	Hostname=client1         	 	//客户端在服务端的名字
123 StartAgents=3                 	//去掉注释,开启被动模式
268	Include=/etc/zabbix/zabbix_agentd.d/*.conf
  • 启动 zabbix-agent 服务
[root@zabbix-client ~]# 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@zabbix-client ~]# systemctl restart zabbix-agent.service
[root@zabbix-client ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      13456/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      13456/zabbix_agentd 

2.6 设置监控语言设置为中文

在这里插入图片描述
在这里插入图片描述

  • 注意:更改完后刷新页面
    在这里插入图片描述

2.7 服务端创建被监控主机

2.7.1 设置服务端监控自己

  • 即zabbix server需要把自己设置为客户端
##安装服务并配置
[root@zabbix-server ~]# yum -y install zabbix-agent --nogpgcheck
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_agentd.conf
98	Server=192.168.140.13
139	ServerActive=192.168.140.13
150	Hostname=server

##启动服务
[root@zabbix-server ~]# systemctl start zabbix-agent
[root@zabbix-server ~]# 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-server ~]# netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      57034/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      54668/zabbix_server 
tcp6       0      0 :::10050                :::*                    LISTEN      57034/zabbix_agentd 
tcp6       0      0 :::10051                :::*                    LISTEN      54668/zabbix_server 

2.7.2 创建被监控主机

  • 创建第一个
    在这里插入图片描述
    在这里插入图片描述
  • 创建第二个
    在这里插入图片描述
  • 查看创建的被监控主机
    在这里插入图片描述

2.7.3 创建监控主机的内容

  • 创建第一台模板
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 创建第二台模板,与第一台的操作一样
    在这里插入图片描述

3.监控的应用

3.1 邮箱报警设置

  • 在服务器上配置
[root@zabbix-server ~]# vi /etc/mail.rc
...//末尾添加以下配置
set from=1538966762@qq.com		//发送邮箱地址
set smtp=smtp.qq.com		//邮箱使用的smtp服务器的域名
set smtp-auth-user=1538966762@qq.com		//smtp邮件发送时登录的账号
set smtp-auth-password=zymvytiagqynfidf		// QQ邮箱授权码
set smtp-auth=login			//smtp的状态,登录状态
  • 编写发邮件脚本
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/  	//注意:必须在此目录下创建脚本
[root@zabbix-server alertscripts]# vi mailx.sh
#!/bin/bash
#send mail
message=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${message}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

[root@zabbix-server alertscripts]# touch /tmp/mailx.log
  • 授权
[root@zabbix-server ~]# chown -R zabbix.zabbix /tmp/mailx.log 
[root@zabbix-server ~]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh 
[root@zabbix-server ~]# chown -R zabbix.zabbix /usr/lib/zabbix/
  • 脚本测试
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# ./mailx.sh 1538966762@qq.com "test mail" "success"
//test mail 为 主题、success 为内容

在这里插入图片描述

3.2 网页报警设置

3.2.1 创建报警类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2 用户添加报警媒介

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.3 创建动作触发报警

在这里插入图片描述

  • 选择主机 --》再点击主机下的添加
    在这里插入图片描述
    在这里插入图片描述
  • 操作 --》如下配置
默认操作步骤持续时间 60
默认接收人 : {
    
    TRIGGER.STATUS}:{
    
    TRIGGER.NAME}
默认信息:

告警主机:{
    
    HOST.NAME}
告警  IP:{
    
    HOST.IP}
告警时间:{
    
    EVENT.DATE}-{
    
    EVENT.TIME}
告警等级:{
    
    TRIGGER.SEVERITY}
告警信息:{
    
    TRIGGER.NAME}:{
    
    ITEM.VALUE}
事件  ID:{
    
    EVENT.ID}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 在之前的操作里添加恢复操作
恢复操作:{
    
    TRIGGER.STATUS}:{
    
    TRIGGER.NAME}
恢复信息:

恢复主机:{
    
    HOST.NAME}
恢复  IP:{
    
    HOST.IP}
恢复时间:{
    
    EVENT.DATE}-{
    
    EVENT.TIME}
恢复等级:{
    
    TRIGGER.SEVERITY}
恢复信息:{
    
    TRIGGER.NAME}:{
    
    ITEM.VALUE}
恢复  ID:{
    
    EVENT.ID}

在这里插入图片描述
在这里插入图片描述

  • 注意:配置完后重启服务器
[root@zabbix-server ~]# systemctl restart zabbix-server
[root@zabbix-server ~]# systemctl restart zabbix-agent

3.3 邮件报警测试

3.3.1 模拟故障

  • 当禁用客户机网卡时
[root@zabbix-client ~]# ifconfig ens33 down

在这里插入图片描述

  • 查看问题
    在这里插入图片描述

  • 邮箱查看

在这里插入图片描述
在这里插入图片描述

3.3.2 故障恢复

  • 重新开启客户机网卡
[root@zabbix-client ~]# ifconfig ens33 up
  • 查看监测问题
    在这里插入图片描述
  • 查看邮箱
    在这里插入图片描述
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42449832/article/details/112680545