Top

NSD PROJECT3 DAY04

  1. 案例1:部署zabbix监控服务器
  2. 案例2:制作Zabbix客户端RPM软件包
  3. 案例3、Zabbix自动化监控
  4. 案例4、自定义Zabbix监控项目
  5. 案例5、监控报警
  6. 案例6:Zabbix分布式监控
  7. 案例7:Grafana数据可视化
  8. 案例8:部署企业私有镜像仓库Habor

1 案例1:部署zabbix监控服务器

1.1 问题

本案例要求部署在华为云上部署一台Zabbix监控服务器,监控其他主机。

  • 安装LNMP环境
  • 源码安装Zabbix
  • 安装监控端主机,修改基本配置
  • 初始化Zabbix监控Web页面
  • 修改PHP配置文件,满足Zabbix需求
  • 监控Zabbix_server自身系统状态

1.2 方案

准备如表-1所示的实验环境,配置主机名称、IP地址。

表-1 主机列表

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一、部署LNMP环境

1)、购买华为云服务器

基础配置:无
网络配置:手动分配IP地址 192.168.1.51
高级配置:云服务器名称 zabbix-server
确认配置:1台

2)、更新/etc/hosts

[root@ecs-proxy ~]# cat >> /etc/hosts <<EOF
192.168.1.51 zabbix-server
EOF

3)、更新/root/ansible/hosts配置文件

[root@ecs-proxy ~]# cat >> /root/ansible/hosts <<EOF
[zabbix]
192.168.1.51
EOF

将最新的/etc/hosts配置文件更新到所有的云主机上

[root@ecs-proxy ~]# cd  /etc/ansible
[root@ecs-proxy ansible]# ansible all -m copy -a 'src=/etc/hosts dest=/etc'

4)、安装LNMP所需软件包

[root@zabbix-server ~]# yum -y install gcc pcre-devel openssl-devel
[root@zabbix-server ~]# scp root@192.168.1.252:/root/project3/DAY04/nginx-1.12.2.tar.gz /root
[root@zabbix-server ~]# tar -xf /root/nginx-1.12.2.tar.gz
[root@zabbix-server ~]# cd /root/nginx-1.12.2/
[root@zabbix-server nginx-1.12.2]# ./configure --with-http_ssl_module
[root@zabbix-server nginx-1.12.2]# make && make install
[root@zabbix-server nginx-1.12.2]# yum -y install php php-mysql php-fpm
[root@zabbix-server nginx-1.12.2]# yum -y install mariadb mariadb-devel mariadb-server

5)、修改Nginx配置文件

配置Nginx支持PHP动态网站,因为有大量PHP脚本需要执行,因此还需要开启Nginx的各种fastcgi缓存,加速PHP脚本的执行速度。

[root@zabbix-server ~]# 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;     #读取请求的超时时间
… …
server {
listen 8090;                    #将监听端口更改为8090
… …

location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
… …

6)、启动服务

[root@zabbix-server nginx-1.12.2]# systemctl enable --now mariadb
[root@zabbix-server nginx-1.12.2]# systemctl enable --now php-fpm
[root@zabbix-server nginx-1.12.2]# /usr/local/nginx/sbin/nginx
[root@zabbix-server nginx-1.12.2]# echo /usr/local/nginx/sbin/nginx >> /etc/rc.local
[root@zabbix-server nginx-1.12.2]# chmod +x /etc/rc.local

步骤二、部署Zabbix服务端

1)、源码安装Zabbix Server

多数源码包都是需要依赖包的,zabbix也一样,源码编译前需要先安装相关依赖包。

[root@zabbix-server nginx-1.12.2]# yum -y install net-snmp-devel curl-devel autoconf libevent-devel
[root@zabbix-server nginx-1.12.2]# scp root@192.168.1.252:/root/project3/DAY04/zabbix-3.4.4.tar.gz /root
[root@zabbix-server nginx-1.12.2]# tar -xf /root/zabbix-3.4.4.tar.gz -C /root
[root@zabbix-server nginx-1.12.2]# cd /root/zabbix-3.4.4/
[root@zabbix-server zabbix-3.4.4]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
[root@zabbix-server zabbix-3.4.4]# make && make install

–enable-server安装部署zabbix服务器端软件

–enable-agent安装部署zabbix被监控端软件

–enable-proxy安装部署zabbix代理相关软件

–with-mysql指定mysql_config路径

–with-net-snmp允许zabbix通过snmp协议监控其他设备(如交换机、路由器等)

–with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态

2)、创建并初始化数据库

[root@zabbix-server zabbix-3.4.4]# mysql
mysql> create database zabbix character set utf8;
#创建数据库,数据库名称为zabbix,支持中文字符集
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
#创建可以访问数据库的账户与密码,用户名是zabbix,密码是zabbix

[root@zabbix-server zabbix-3.4.4]# cd /root/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导入这些数据即可(注意导入顺序)
#-u指定数据库用户名,-p指定数据库密码

3)、修改zabbix_server配置并启动监控服务

修改zabbix_server配置文件,设置数据库相关参数,启动zabbix_server服务

[root@zabbix-server mysql]# sed -n ‘38p;95p;111p;119p’ /usr/local/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log #38行,日志的位置,排错使用,仅查看以下即可(默认已经配置OK)
DBHost=localhost # 85行,定义数据库服务器在哪台电脑(localhost本机)
DBName=zabbix #95行,设置数据库名称。(默认已经配置OK)
DBUser=zabbix #111行,设置数据库账户。(默认已经配置OK)
DBPassword=zabbix #119行,设置数据库密码

[root@zabbix-server mysql]# useradd -s /sbin/nologin zabbix
[root@zabbix-server mysql]# zabbix_server
[root@zabbix-server mysql]# echo zabbix_server >> /etc/rc.local #设置开机自启
[root@zabbix-server mysql]# chmod +x /etc/rc.local
#确认连接状态,端口10051
[root@zabbix-server mysql]# netstat -antpu | grep zabbix_server
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 13890/zabbix_server

提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,一定要先使用killall zabbix_server关闭服务后,再重新启动一次。

4)、修改Zabbix_agent配置文件,启动Zabbix_agent服务。

自定义的key文件一般存储在/usr/local/etc/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,允许自定义监控key,来读取该目录下的所有文件 。

[root@zabbix-server mysql]# vim /usr/local/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log          #30行,定义日志文件的位置(默认已经配置OK)
Server=127.0.0.1,192.168.1.51           #93行,允许哪些主机监控本机
ServerActive=127.0.0.1,192.168.1.51    #134行,允许哪些主机通过主动模式监控本机
Hostname=Zabbix_server #145行,设置本机主机名
Include=/usr/local/etc/zabbix_agentd.conf.d/        #264行,加载配置文件目录。
UnsafeUserParameters=1 #280行,自定义监控可以传递参数。默认为0,表示不允许自定义key。

[root@zabbix-server mysql]# zabbix_agentd #启动监控agent
[root@zabbix-server mysql]# echo zabbix_agentd >> /etc/rc.local #设置开机自启
[root@zabbix-server mysql]# netstat -antpu | grep zabbix_agentd #查看端口信息为10050

tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 14095/zabbix_agentd

5)、部署访问页面

[root@zabbix-server mysql]# cp -r /root/zabbix-3.4.4/frontends/php/* /usr/local/nginx/html/
[root@zabbix-server mysql]# chmod -R 777 /usr/local/nginx/html/

6)、设置监听器,添加后端服务器。

【服务器列表】—>【弹性负载均衡ELB】—>【(自定义ELB名称)】—>【监听器】—>【添加监听器】,如图-1所示。


图-1

配置后端服务器组名称,如图-2所示。


图-2

点击刚创建的监听器名称->后端服务器组->添加,如图-3所示。


图-3

添加后端服务器,并监听端口8090,如图-4、图-5所示。


图-4


图-5

7)、访问Zabbix Web界面,http://华为云公网IP:8090/

根据错误提示,修改PHP配置文件,满足Zabbix_server的Web环境要求。

#第一次访问,初始化PHP页面会检查计算机环境是否满足要求,如果不满足会给出修改建议

#默认会提示PHP的配置不满足环境要求,需要修改PHP配置文件

[root@zabbix-server mysql]# yum -y install php-gd php-xml php-ldap  php-bcmath php-mbstring
[root@zabbix-server mysql]# vim /etc/php.ini
max_execution_time = 300         #384行,最大执行时间
max_input_time = 300             #394行,服务器接收数据的时间限制
memory_limit = 128M              #405行,内存容量限制(默认已经配置,确认下即可)
post_max_size = 32M              #672行,POST数据最大容量
date.timezone = Asia/Shanghai   #878行,设置时区
[root@zabbix-server mysql]# systemctl restart php-fpm

修改完PHP配置文件后,再次使用浏览器访问zabbix-server服务器,则会提示如图-6所示信息。


图-6

在初始化数据库页面,填写数据库相关参数,如图-7,图-8所示。


图-7


图-8

在登陆页面,使用用户(admin)和密码(zabbix)登陆,如图-9所示。


图-9

登陆后在Zabbix界面点击右上角,设置语言环境为中文Chinese(zh_CN),如图-10、图-11所示。


图-10


图-11

2 案例2:制作Zabbix客户端RPM软件包

2.1 问题

本案例要求使用zabbix-3.4.4版本的源码软件,生成对应的RPM软件包。

安装rpm-build软件包,编写SPEC配置文件,创建新的RPM软件包。

2.2 步骤

步骤一、安装rpm-build软件

1)、安装rpm-build软件包

[root@nginx-0001 ~]# yum -y install rpm-build

2)、生成rpmbuild目录结构。

#有报错,无需理会,可以看到rpmbuild目录已经创建完成

[root@nginx-0001 ~]# rpmbuild -ba nginx.spec
error: failed to stat /root/nginx.spec: No such file or directory

[root@nginx-0001 ~]# ls /root/rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

3)、准备工作,将源码软件复制到SOURCES目录。

[root@nginx-0001 ~]# scp root@192.168.1.252:/root/project3/DAY04/zabbix-3.4.4.tar.gz /root/rpmbuild/SOURCES/

4)、创建并修改SPEC配置文件

[root@nginx-0001 ~]# cat /root/rpmbuild/SPECS/zabbix.spec
Name:zabbix                        #源码包软件名称。【不能错】
Version:3.4.4                      #源码包软件的实际版本号。【不能错】
Release: 22                  #发布序列号,标明第几次打包,后面可使用%{release}引用
Summary: zabbix agentd      #软件包的内容概要。自定义

#Group: #软件分组。(一个组中可以有多个软件包,输入组名安装软件包,可都安装。)
License: GPL #软件授权方式,通常就是GPL
URL: www.zabbix.com #网址
Source0: zabbix-3.4.4.tar.gz #源码包文件名。 【不能错】

#BuildRequires: #源码编译的依赖。(写和写都不能解决依赖,仅起到标注作用。)
#Requires #yum安装的依赖。

%description #定义rpm包的描述信息
This is zabbix rpm from dayu

%post #rpm包安装后执行的脚本。今后有人在使用这个软件包安装时,就会触发下面的脚本内容。
useradd -s /sbin/nologin zabbix

%prep #rpm包安装前执行的脚本
%setup -q #自动解压源码并cd

%build #定义编译软件包时的操作
./configure --enable-agent #配置源码【需要修改】
make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot}

%files
%doc #对哪个目录打包用来做rpm包
/usr/local/sbin/zabbix_agentd
/usr/local/bin/zabbix_get
/usr/local/bin/zabbix_sender
/usr/local/etc/zabbix_agentd.conf.d
/usr/local/etc/zabbix_agentd.conf
/usr/local/share/man/man1/zabbix_get.1
/usr/local/share/man/man1/zabbix_sender.1
/usr/local/share/man/man8/zabbix_agentd.8

%changelog

2、使用配置文件创建RPM包

1)、安装依赖软件包

yum -y install gcc pcre-devel openssl-devel

2)、rpmbuild创建RPM软件包

[root@nginx-0001 ~]# rpmbuild -ba /root/rpmbuild/SPECS/zabbix.spec
[root@nginx-0001 ~]# ls /root/rpmbuild/RPMS/x86_64/
zabbix-3.4.4-22.x86_64.rpm zabbix-debuginfo-3.4.4-22.x86_64.rpm

3 案例3、Zabbix自动化监控

3.1 问题

本案例要求配置Zabbix自动发现机制。

  • 沿用案例二制作的rpm包,为三台Nginx部署Zabbix客户端。
  • 创建Web监测
  • 创建自动发现规则
  • 创建自动发现后的动作,添加主机、为主机链接模板。
  • 3.2 方案

    当Zabbix需要监控的设备越来越多,手动添加监控设备越来越有挑战,此时,可以考虑使用自动发现功能,自动添加被监控主机,实现自动批量添加一组监控主机功能。

    3.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一、为三台Nginx部署Zabbix客户端。

    1)、将Zabbix客户端软件分发到三台Nginx服务器上。

    [root@ecs-proxy ansible]# ansible web -m copy -a "src=/root/project3/DAY04/zabbix-3.4.4-22.x86_64.rpm dest=/root/"
    

    2)、安装软件包

    [root@ecs-proxy ansible]# ansible web -m shell -a "yum -y install /root/zabbix-3.4.4-22.x86_64.rpm"
    [root@ecs-proxy ansible]# chmod +x /root/project3/DAY04/zabbix_agent.sh
    [root@ecs-proxy ansible]# ansible web -m script -a "/root/project3/DAY04/zabbix_agent.sh"
    

    3)、Zabbix客户端启动是否成功

    [root@nginx-0001 ~]# netstat -antpu |grep zabbix_agent
    tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 27128/zabbix_agentd
    

    [root@nginx-0002 ~]# netstat -antpu | grep zabbix_agent
    tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 11430/zabbix_agentd

    [root@nginx-0003 ~]# netstat -antpu |grep zabbix_agent
    tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1454/zabbix_agentd

    步骤二、创建Web监测

    监控网站的指标:平均下载速度、响应时间、HTTP状态码

    zabbix提供了web监测功能,监控到站点的响应时间,还可以根据站点返回的状态码等。

    1)、创建模板,如图-12所示

    模板名称可自定义,可选择现有群组,也可以在下方写新模板的名称,会自动创建。


    图-12

    创建完成后,点击群组,能够快速刚刚创建的模版,点击Web监测,如图-13所示。


    图-13

    2)、在Web监测中创建Web场景,如图-14所示


    图-14

    名称,自定义填写。客户端模拟用户去访问网站使用的浏览器类型。


    图-15

    添加步骤,监测目前的nginx-0001、nginx-0002、nginx-0003网站。如图-16所示。





    图-16

    3)、关联模版

    将Zabbix Server设备开启,点击状态下“停用的”即可开启,如图-17所示。


    图-17

    关联刚才新创建的模版,如图-18所示。


    图-18

    添加完成后,点击【监测中】->【Web监测】,查看由哪台主机进行监测。如图-19所示。当点击名称,即可看到网页检测的数据图。


    图-19

    因为字体的原因,打开的页面显示出很多乱码。需要向/usr/local/nginx/html/fonts中导入字体。

    [root@zabbix-server ~]# scp 192.168.1.252:/root/project3/DAY04/simkai.ttf /usr/local/nginx/html/fonts/
    [root@zabbix-server ~]# ls /usr/local/nginx/html/fonts/
    DejaVuSans.ttf  simkai.ttf
    [root@zabbix-server ~]# mv /usr/local/nginx/html/fonts/simkai.ttf /usr/local/nginx/html/fonts/DejaVuSans.ttf
    mv: overwrite ‘/usr/local/nginx/html/fonts/DejaVuSans.ttf’? yes
    

    导入字体刷新页面,即可看到下载速度的图表和响应时间的图表,如图-20所示。

    图-20

    步骤二、自动发现规则

    1)、创建自动发现规则

    通过Configuration(配置)-->Discovery(自动发现)-->Create discovery rule(创建发现规则),如图-21所示。

    图-21

    2)填写规则

    填写自动发现的IP范围(逗号隔开可以写多个),多久做一次自动发现(默认为1小时,仅实验修改为1m),如图-22所示。

    图-22

    3、创建动作

    1)、创建Action动作

    通过Configuration(配置)--> Actions(动作)--> Actions Event source(事件源):自动发现(Discovery)-->Create action(创建动作),如图-23所示。

    图-23

    2)配置Action动作具体行为

    配置动作,添加动作名称,添加触发动作的条件。如图-24所示。

    图-24

    点击操作(触发动作后要执行的操作指令),操作细节:与模板链接(HTTP模板 OS Linux模版)。如图-25所示。

    图-25

    【注意:每台被监控主机必须要属于一个主机组,在这里会自动生成一个Discovered hosts群组,把自动发现的主机加入。】

    通过Configuration(配置)--> Hosts(主机),如图-26所示。

    图-26

    4 案例4、自定义Zabbix监控项目

    4.1 问题

    使用Zabbix实现自定义监控,实现以下目标:监控nginx-0003主机登录用户数量。需要使用Zabbix自定义key的方式实现自定义监控,参考如下操作步骤:

    • 创建自定义key
    • 创建监控项目
    • 创建监控图形

    4.2 步骤

    实现此案例需要按照如下步骤进行。

    步骤一、被监控主机创建自定义key(在192.168.1.13上操作)

    1)、创建自定义key

    Zabbix虽然自带了许多Key,能满足大多数的监控需求。但是真正在生产上还是有很多不足的。所以Zabbix还提供了一种自定义Key来实现这种需求。

    自定义key语法格式为:UserParameter=自定义key名称,命令。

    自定义的key文件一般存储在/usr/local/etc/zabbix_agentd.conf.d/目录,这里还需要修改zabbix_agentd.conf文件,允许自定义监控key,来读取该目录下的所有文件 。

    【注意,之前在自动化案例中已经将该配置的注释去掉,此处只是为了确认。】

    [root@nginx-0003 ~]# sed -n '264p' /usr/local/etc/zabbix_agentd.conf
    Include=/usr/local/etc/zabbix_agentd.conf.d/
    [root@nginx-0003 ~]# cat /usr/local/etc/zabbix_agentd.conf.d/count.login.num
    UserParameter=count.login.num,w --no-header | wc -l
    

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

    [root@nginx-0003 ~]# killall zabbix_agentd
    [root@nginx-0003 ~]# zabbix_agentd
    [root@nginx-0003 ~]# zabbix_get -s 127.0.0.1 -k count.login.num
    2
    

    步骤二、创建监控模版

    1)添加监控模板

    登录Zabbix Web监控控制台,通过Configuration(配置)-->Template(模板)-->Create template(创建模板),填写模板名称,新建模板群组。如图-27,图-28所示。

    图-27

    图-28

    2)创建应用集

    创建完成模板后,默认模板中没有任何应用集、监控项、触发器、图形等资源。这里需要点击模板后面的Application(应用集)链接打开创建应用的页面。如图-29所示。

    图-29

    点击Application(应用集)后,在该页面中点击Create application(创建应用集)按钮。如图-30所示。

    图-30

    设置应用名称,名称可以任意,如图-31所示。

    图-31

    3)创建监控项目item(监控项)

    与创建应用一样,在模板中还需要创建监控项目。点击items(监控项),并在刷新出的新页面中选择Create items(创建监控项)创建项目。如图-32、图-33所示。

    图-32

    图-33

    接下来,还需要给项目设置名称(名称可以任意)及对应的自定义key(必须与前面自定义的监控key名称一致)。如图-34所示。

    图-34

    4)创建图形

    为了后期可以通过图形的方式展示监控数据,还需要在模板中创建图形,设置方法与前面的步骤一致,在监控模板后面点击Graph(图形)即可创建图形,设置监控图形基于什么监控数据。如图-35,图-36所示。

    图-35

    图-36

    5)将模版链接到被监控主机nginx-0003上。

    将完整的监控模板制作完成后,就可以将模板链接到主机实现监控功能了。首先找到被监控主机Configuration(配置)-->Hosts(主机)。如图-37所示。

    图-37

    点击需要的被监控主机链接,打开监控主机设置页面,在Template(模板)页面中选择需要链接到该主机的模板,在此选择刚刚创建的模板count_num添加即可。如图-38所示。

    图-38

    6)查看监控数据图形

    点击Monitoring(监控中)-->Craphs(图形),根据需要选择条件,查看监控图形。如图-39所示。

    图-39

    5 案例5、监控报警

    5.1 问题

    沿用前面的Zabbix练习环境,使用Zabbix实现报警功能。

    • 注册163网易邮箱账号,并且申请授权码
    • 设置邮件服务器及收件人邮件
    • 当系统登录用户数量超过5人时发送报警邮件

    5.2 步骤

    步骤一、注册163网易邮箱账号,申请授权码

    授权码是用于登录第三方邮件客户端的专用密码,启用授权码,避免密码泄漏造成邮箱安全隐患,使用邮件客户端更安心。

    1)登陆网易邮箱,【设置】—>【POP3/SMTP/IMAP】,如图-40所示。

    图-40

    2)将两个服务开启。(开启需要手机发送短信。发送完后,点击“我已发送”),如图-41所示。

    图-41

    出现授权码,用于第三方邮件客户端登录。如图-42所示。

    图-42

    步骤二、创建触发器规则

    1)、创建触发器

    通过Configuration(配置)--> Templates(模板),找到我们在案例四中创建的模板count_num,点击模板后面的triggers(触发器)。如图-43所示。

    图-43

    点击创建触发器按钮,如图-44所示。

    图-44

    2)配置触发器

    设置触发器名称,点击add[添加]表达式,填写表达式:监控项为登录系统的用户数量,最近账户数量大于5。如图-45、图-46所示。

    图-45

    图-46

    步骤三、设置邮件

    1)创建Media

    通过Administration(管理)-->Media Type(报警媒体类型)-->选择Email(邮件)。如图-47所示。

    图-47

    设置邮件服务器信息,设置邮件服务器及发件人邮件账户信息。如图-48所示。

    【注意:此处的密码为邮箱的授权码】

    图-48

    2)为用户添加Media(设置收件人信息)

    在Administration(管理)-->Users(用户)中找到选择Admin账户。如图-49所示。

    图-49

    点击Admin账户后,在弹出的界面中选择Media(报警媒介)菜单-->点击Add(添加)报警媒介。如图-50所示。

    图-50

    点击Add(添加)后,在Meida Type(类型)中填写报警类型,收件人,时间等信息。如图-51所示。

    图-51

    步骤四、创建Action动作

    1)Action动作

    Action(动作)是定义当触发器被触发时的时候,执行什么行为。

    通过Configuration(配置)-->Actions(动作)-->Create action(创建动作),注意事件源选择触发器。如图-52所示。

    图-52

    2)配置Action动作的触发条件

    填写Action动作的名称,配置什么触发器被触发时会执行本Action动作(登录用户数量大于5)。如图-53所示。

    图-53

    3)配置Action动作的具体行为

    配置动作的具体操作行为(发送信息或执行远程命令),无限次数发送邮件,60秒1次,发送给Admin用户,如图-54、图-55所示。

    图-54

    图-55

    4)购买弹性公网IP,按需付费,并绑定zabbix-server主机。如图-56、图-57所示。

    图-56

    图-57

    5)、开启25端口

    为了提升华为云IP地址发邮件的质量,基于安全考虑,TCP 25端口出方向默认被封禁,无法使用TCP 25端口连接外部地址。如果存在特殊场景,您必须在云服务器上使用TCP 25端口进行对外连接,请提交25端口解封申请。

    【工单】—>【新建工单】—>【弹性云服务器】—>【25端口解封】—>【新建工单】

    填入zabbix-server主机的弹性公网IP,不需要通过手机、邮件联系,6遵守许可,点击提交即可。如图-58所示。

    图-58

    6)、测试效果

    开启终端登录nginx-0003(登录用户数大于5),然后登录监控端Web页面,在仪表盘中查看问题报警(需要等待一段时间)。并查看自己的QQ邮箱。如图-59所示。

    图-59

    [练习]

    告警主机: {HOSTNAME1}

    告警时间: {EVENT.DATE} {EVENT.TIME}

    告警等级: {TRIGGER.SEVERITY}

    告警信息: {TRIGGER.NAME}

    告警项目: {TRIGGER.KEY1}

    问题详情: {ITEM.NAME} : {ITEM.VALUE}

    当前状态: {TRIGGER.STATUS} : {ITEM.VALUE1}

    事件ID: {EVENT.ID}

    6 案例6:Zabbix分布式监控

    6.1 问题

    本案例要求部署Zabbix分布式。

    • Zabbix分布式Proxy安装
    • Zabbix分布式监控Linux

    6.2 方案

    Zabbix Proxy可以代替Zabbix Server检索客户端的数据,然后把数据汇报给Zabbix Server,并且在一定程度上分担了Zabbix Server的压力Zabbix Proxy可以非常简便的实现了集中式、分布式监控。

    Zabbix Proxy 使用场景:

    监控远程区域设备

    监控本地网络不稳定区域

    当 Zabbix 监控上千设备时,使用它来减轻 Server 的压力

    简化分布式监控的维护

    6.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一、Zabbix分布式Proxy安装

    1)、购买华为云服务器

    基础配置:无
    网络配置:手动分配IP地址 192.168.1.52
    高级配置:云服务器名称 zabbix-proxy
    确认配置:1台
    基础配置:无
    网络配置:手动分配IP地址 192.168.1.53
    高级配置:云服务器名称 zabbix-agentd
    确认配置:1台
    

    2)、安装软件

    [root@zabbix-proxy ~]# scp root@192.168.1.252:/root/project3/DAY04/zabbix-3.4.4.tar.gz /root
    [root@zabbix-proxy ~]# yum -y install net-snmp-devel curl-devel autoconf libevent-devel
    [root@zabbix-proxy ~]# yum -y install mariadb mariadb-server mariadb-devel
    [root@zabbix-proxy ~]# systemctl enable --now mariadb
    [root@zabbix-proxy ~]# useradd -s /sbin/nologin zabbix
    [root@zabbix-proxy ~]# tar -xf zabbix-3.4.4.tar.gz
    [root@zabbix-proxy ~]# cd zabbix-3.4.4/
    [root@zabbix-proxy zabbix-3.4.4]#./configure --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl
    [root@zabbix-proxy zabbix-3.4.4]# make && make install
    

    查看Zabbix Proxy的版本
    [root@zabbix-proxy zabbix-3.4.4]# /usr/local/sbin/zabbix_proxy –version

    3)、Mysql数据库初始化

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

    MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@‘127.0.0.1’ identified by ‘zabbix123’;
    Query OK, 0 rows affected (0.00 sec)

    MariaDB [(none)]> use zabbix;
    MariaDB [zabbix]> source /root/zabbix-3.4.4/database/mysql/schema.sql;

    4)、Zabbix分布式Proxy配置

    [root@zabbix-proxy ~]# sed -n “24p;43p;85p;150p;161p;176p;184p;198p” /usr/local/etc/zabbix_proxy.conf
    Server=192.168.1.51    #第24行,zabbix server服务器的地址或主机名
    Hostname=shproxy    #第43行,代理服务器名称, 需要与zabbix server添加代理时候proxy name一致。
    LogFile=/tmp/zabbix_proxy.log      #第85行,代理服务器的日志。
    DBHost=127.0.0.1     #第150行,数据库地址。
    DBName=zabbix     #第161行,数据库名。
    DBUser=zabbix       #第176行,数据库用户名称。
    DBPassword=zabbix123   #第184行,数据库登陆的密码
    DBPort=3306        #第198行,数据库的端口。
    

    [root@zabbix-proxy ~]# zabbix_proxy
    [root@zabbix-proxy ~]# netstat -atnpu | grep zabbix_proxy
    tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 28582/zabbix_proxy

    5)、创建代理

    通过管理–> agent代理程序,点击创建代理,如图-60、图61所示。


    图-60

    注意:agent代理程序名称一定要与192.168.1.52(zabbix-proxy主机)配置文件中Hostname设置的名称一致。


    图-61

    步骤二、Zabbix分布式监控Linux

    1)、部署一台Zabbix客户端

    可以按照以下步骤操作,也可以使用案例2制作的RPM包完成Zabbix客户端的快速部署。

    [root@zabbix-agent ~]# yum -y install pcre-devel
    [root@zabbix-agent ~]# useradd -s /sbin/nologin Zabbix
    [root@zabbix-agent ~]# scp root@192.168.1.252:/root/project3/DAY04/zabbix-3.4.4.tar.gz  /root
    [root@zabbix-agent ~]# tar -xf /root/zabbix-3.4.4.tar.gz
    [root@zabbix-agent ~]# cd /root/zabbix-3.4.4/
    [root@zabbix-agent zabbix-3.4.4]# ./configure --enable-agent
    [root@zabbix-agent zabbix-3.4.4]#make && make install
    [root@zabbix-agent zabbix-3.4.4]#sed -n ‘30p;93p;134p;145p;264p;280p’ /usr/local/etc/zabbix_agentd.conf
    LogFile=/tmp/zabbix_agentd.log
    Server=192.168.1.52              #此处指向zabbix-proxy主机的IP地址
    ServerActive=192.168.1.52         #此处指向zabbix-proxy主机的IP地址
    Hostname=zabbix-agent
    Include=/usr/local/etc/zabbix_agentd.conf.d/
    UnsafeUserParameters=1
    

    [root@zabbix-agent zabbix-3.4.4]# zabbix_agentd
    [root@zabbix-agent zabbix-3.4.4]# netstat -atnpu | grep zabbix_agentd
    tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 11940/zabbix_agentd

    2)、创建主机

    通过Configuration(配置)–> Hosts(主机),如图-62、图-63所示。


    图-62

    由agent代理程序监测选择创建好的agent代理程序(shproxy)。


    图-63

    在Template(模板)页面中选择需要链接到该主机的模板,在此选择模板。如图64所示。


    图-64

    3)、查看监控数据图形

    点击Monitoring(监控中)–>Craphs(图形),根据需要选择条件,查看监控图形。如图-65所示。


    图-65

    7 案例7:Grafana数据可视化

    7.1 问题

    本案例要求部署Granfana

    • 安装Grafana与配置
  • Grafana展示Zabbix数据
  • 7.2 方案

    Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现。权威的资料网站是官网(http://docs.grafana.org/)。

    7.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一、安装Grafana与配置

    1)安装软件

    [root@zabbix-server ~]# scp 192.168.1.252:/root/project3/DAY04/grafana-6.3.6-1.x86_64.rpm /root
    [root@zabbix-server ~]# yum localinstall /root/grafana-6.3.6-1.x86_64.rpm
    [root@zabbix-server ~]# systemctl enable grafana-server --now
    [root@zabbix-server ~]# netstat -anptu | grep grafana
    tcp6 0 0 :::3000 :::* LISTEN 20920/grafana-serve
    

    2)创建监听器并添加后端服务器【监听端口3000】,如图-66、图-67、图-68所示。

    图-66

    图-67

    图-68

    3)、访问http://公网IP:3000,登录grafana管理界面。如图-69所示。

    登录用户名admin 密码admin

    第一次登录时,需要修改密码。

    图-69

    4)安装插件,支持Grafana连接zabbix-server

    Grafana是一个纯静态的仪表盘,本身并没有数据,需要配置数据源从哪里获取,Grafana支持从Zabbix中获取数据。Grafana优化了图形的展现,可以用来做监控大屏。

    方式一:在线安装插件 (需要连接外网,较慢。)

    [root@zabbix-server ~]# grafana-cli -help
    #列出远端可用的插件
    [root@zabbix-server ~]# grafana-cli plugins list-remote
    #安装插件
    [root@zabbix-server ~]# grafana-cli plugins install alexanderzobnin-zabbix-app 3.12.2
    installing alexanderzobnin-zabbix-app @ 3.12.2
    from: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.12.2/download
    into: /var/lib/grafana/plugins
    

    ? Installed alexanderzobnin-zabbix-app successfully

    Restart grafana after installing plugins . <service grafana-server restart>
    [root@zabbix-server ~]# systemctl restart grafana-server #重启服务

    方式二:手动下载离线安装插件

    若在线方式安装超时,可以手动下载安装

    第一步:访问官网,找到要下载的插件,并且选择版本,下载。

    第二步:将插件的压缩包释放到/var/lib/grafana/plugins默认目录下,重启服务即可。

    刷新之后,在主页中会出现一个App,点击后面的【Enable now】。如图-70所示。


    图-70

    激活插件,点击【Enable】,如图-71所示。。


    图-71

    5)安装好插件alexanderzobnin-zabbix-app,点击【Data Source】就可以添加数据来源。如图-72、图-73所示。


    图-72


    图-73

    在搜索框里输入zabbix即可快速找到,如图-74所示。


    图-74

    在URL中输入Zabbix的接口地址,如:http://192.168.1.51:8090/api_jsonrpc.php

    在Username和Password分别输入Zabbix的登录用户及密码。如图-75所示。


    图-75

    Grafana的logo,即当前页为Grafana的主页,在任何页面点击Grafana的logo,都会跳转到主页。如图-76所示。


    图-76

    新建按钮,用于创建Dashaboard,文件夹、以及高如外部的Dashboard。如图-77所示。


    图-77

    用于查看或管理Dashboard。如图-78所示。


    图-78

    Explore(探索),主要用于快速编写查询语句,来查询数据中的数据。如图-79所示。


    图-79

    告警设置,可以设置邮件、钉钉、短信的告警。如图-80所示。


    图-80

    设置。包括这是Data Sources(数据源)、Users(用户)、Teams(创建团队)、Plugin(插件查找)、perferences(个人性设置) API keys(API密钥)。如图-81所示。


    图-81

    管理设置,包括Users(用户创建),Org(组织创建)、Settings(设置参数查看)、stats(Grafana本身状态信息统计)、upgrade(Grafana 软件升级)。如图-82所示。


    图-82

    步骤二、Grafana展示Zabbix数据

    1)创建仪表盘,如图-83所示。


    图-83

    自定义仪表盘名称,保存仪表盘。如图-84、图-85所示。


    图-84


    图-85

    2)、添加图形(CPU负载),如图-86。


    图-86

    创建图表,如图-87所示。


    图-87

    显示192.168.1.11(nginx-0001)主机的负载,如图-88所示。

    Item使用正则表达式,匹配所有的负载。


    图-88

    3)、更改标题,如图-89、图-90所示。


    图-89


    图-90

    4)、优化图表,如图-91所示。优化完成后,进行保存。


    图-91

    5)、添加图形(服务器网卡流量)。对现有的图表,进行复制更改,如图-92所示。


    图-92

    对复制出来的图标进行编辑,如图-93、图-94、图-95所示。


    图-93


    图-94


    图-95

    8 案例8:部署企业私有镜像仓库Habor

    8.1 问题

    本案例要求在华为云服务器上侯建私有镜像仓库

    • 部署私有镜像仓库harbor
  • 部署docker主机测试
  • 8.2 方案

    私有镜像仓库有许多优点

    1)节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;

    2)提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

    VMware公司开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服务。

    准备如表-2所示的实验环境,配置主机名称、IP地址。

    表-2 主机列表

    8.3 步骤

    实现此案例需要按照如下步骤进行。

    步骤一、购买华为云服务器更新ecs-proxy配置文件

    1)、购买华为云服务器

    基础配置:无
    网络配置:手动分配IP地址 192.168.1.67
    高级配置:云服务器名称 harbor
    确认配置:1台
    基础配置:无
    网络配置:手动分配IP地址 192.168.1.68
    高级配置:云服务器名称 docker
    确认配置:1台
    

    2)、更新/etc/hosts

    [root@ecs-proxy ~]# cat >> /etc/hosts <<EOF
    192.168.1.67 harbor
    192.168.1.68 docker
    EOF
    

    3)、更新/root/ansible/hosts配置文件

    [root@ecs-proxy ~]# cat >> /root/ansible/hosts <<EOF
    [harbor]
    192.168.1.67
    [docker]
    192.168.1.68
    EOF
    #将最新的/etc/hosts配置文件更新到所有的云主机上
    [root@ecs-proxy ansible]# ansible all -m copy -a 'src=/etc/hosts dest=/etc'
    

    4)部署docker安装源

    [root@ecs-proxy ansible]# mkdir /var/ftp/localrepo/docker
    [root@ecs-proxy absible]# cp -a /root/project3/DAY04/docker/* /var/ftp/localrepo/docker
    [root@ecs-proxy ansible]# createrepo --update /var/ftp/localrepo
    

    5)分发实验所需软件包

    Dokcer Compose 是用于定义和运行多容器 Docker 应用程序的工具。

    Harbor的每个组件都是以Docker容器的形式构建的,所以使用Docker Compose来对它进行部署。

    [root@ecs-proxy ansible]# ansible harbor -m copy -a "src=/root/project3/DAY04/docker-compose dest=/root"
    [root@ecs-proxy ansible]# ansible harbor -m copy -a "src=/root/project3/DAY04/harbor-offline-installer-v1.2.0.tgz dest=/root"
    

    步骤二、部署私有镜像仓库harbor

    1)、开启路由转发

    [root@harbor ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
    [root@harbor ~]# sysctl -p
    

    2)、安装docker服务,并启动

    [root@harbor ~]# yum -y install docker-ce
    [root@harbor ~]# systemctl start docker
    [root@harbor ~]# systemctl enable docker
    

    3)、部署harbor

    [root@harbor ~]# mv /root/docker-compose /usr/local/bin/
    [root@harbor ~]# chmod +x /usr/local/bin/docker-compose
    [root@harbor ~]# tar -xf harbor-offline-installer-v1.2.0.tgz -C /usr/local/
    [root@harbor ~]# cd /usr/local/harbor
    [rootharbor harbor]# ls
    common docker-compose.notary.yml harbor_1_1_0_template harbor.v1.2.0.tar.gz LICENSE prepare
    docker-compose.clair.yml docker-compose.yml harbor.cfg install.sh NOTICE upgrade
    

    4)修改配置文件

    #访问harbor管理界面的地址,改为本机的IP地址
    [root@harbor harbor]# sed -i '/^hostname/s/reg.mydomain.com/192.168.1.67/' /usr/local/harbor/harbor.cfg
    [root@harbor harbor]# sed -i '121 s/80:80/8099:80/' /usr/local/harbor/docker-compose.yml
    #默认是访问80端口,但因为80端口与Nginx集群冲突,故改变访问端口为8099
    [root@harbor harbor]#sed -i '24 s/$ui_url/$ui_url:8099/' /usr/local/harbor/common/templates/registry/config.yml
    

    [root@harbor harbor]# ./install.sh

    ✔ ----Harbor has been installed and started successfully.----

    Now you should be able to visit the admin portal at http://192.168.1.67.
    For more details, please visit https://github.com/vmware/harbor .

    [root@harbor harbor]# netstat -antpu | grep 8099
    tcp6 0 0 :::8099 ::

    87: 企业监控系统部署 、 搭建Harbor私有仓库 、 总结和答疑相关推荐

    1. 1+X 云计算运维与开发(中级)案例实战——搭建harbor私有仓库并实现主从同步

      1+X 云计算运维与开发(中级)案例实战--搭建harbor私有仓库并实现主从同步 前言 思路 实操 1.(个人习惯)修改主机名,添加主机映射 2. 配置镜像加速器 3. 生成CA证书,并分发证书 4 ...

    2. 搭建Harbor私有仓库

      1 首先装好docker: 由于之前已安装过,所以直接开起就行 2 . 安装python2.7以上版本 之前编译安装过7.3的,直接用吧 3 . 安装docker-compose docker容器管理 ...

    3. Docker harbor私有仓库部署与管理

      Docker harbor私有仓库部署与管理. 前言 一.什么是Harbor 二.Harbor的特性 三.Harbor的构成 四.Harbor部署 4.1 环境准备 4.2 部署Docker Comp ...

    4. Docker容器之harbor私有仓库部署与管理

      Docker容器之harbor私有仓库部署与管理 前言 一.Harbor概述 二.Harbor的特性 三.Harbor的构成 四.Harbor私有仓库搭建 (1)安装docker-compose (2 ...

    5. 搭建Harbor私有镜像仓库

      Docker容器应用的开发和运行离不开可靠的镜像管理,部署一个私有的镜像仓库是十分有必要的.虽然Docker官方提供了docker-registry用于构建私有的镜像仓库.但它的功能没有Harbor丰 ...

    6. Docker容器私有仓库——Harbor私有仓库的搭建

      Docker容器私有仓库--Harbor私有仓库的搭建 一.Harbor介绍 1.Harbor概念 2.Harbor的核心组件 3.Harbor的优点 二.Harbor搭建的环境准备 1.当前Harb ...

    7. 天兔(Lepus 3.8)数据库监控系统部署

      天兔(Lepus 3.8)数据库监控系统部署 转载自:http://www.ywnds.com/?p=8160 一.安装LAMP基础环境 首先向大家阐述LAMP(Linux+Apache+MySQL ...

    8. Lepus(天兔)数据库监控系统部署

      使用系统版本 CentOS 7.6 3.10.0-957.el7.x86_64 GNU/Linux 使用软件版本说明 mariadb-5.5.60-1.el7_5.x86_64 php-5.4.16- ...

    9. k8s-kubeadm和Harbor私有仓库部署

      部署k8s-kubeadm 文章目录 环境准备 需求: 环境部署 部署K8S集群 //设定kubectl //所有节点部署网络插件flannel //测试 pod 资源创建 部署 Dashboard ...

    最新文章

    1. NetBeans工具学习之道:NetBeans的(默认)快捷键
    2. Flex与.NET互操作(八):使用FluorineFx网关实现远程访问
    3. Java中三种交换值得方式
    4. InfluxDB中文文档
    5. mysql004子查询.相关子查询.不相关子查询
    6. 如何使用 C# 中的 HashSet
    7. 苹果进行iPhone问世后最重大转型:硬件时代转互联网服务
    8. 华中科技计算机基础第五次,华中科技大学c++第5次上机作业
    9. 查看计算机数字证书,数字证书认不到怎么办?
    10. Mean-shift超像素分割
    11. 南航计算机学院考博难么,考研专硕真的不能考博吗?看看过来人是咋说的
    12. Qt 常用文件对话框及消息对话框使用
    13. oracle中chr(39),oracle中chr含义
    14. 云智慧全智能计算机,东方所推出INV3062T型云智慧采集系统
    15. 小程序中时间计算(时、分、秒)
    16. 使用css做一个简单的车轮滚滚效果
    17. 两万字,清华刘云浩教授回答新生关于AI的90个问题
    18. TCP/UDP 端口及部分端口的作用
    19. 王宝强离婚成了谁的狂欢|严肃解读数据背后的媒体传播路径
    20. 12.3 收敛级数的性质

    热门文章

    1. 网络协议栈TSO/UFO/GSO/LRO/GRO/RSS特性
    2. 自己理解三叉树TernarySearchTrie
    3. linux的简体中文
    4. Android App工程结构
    5. php鼠标滑过跳出别的,鼠标经过出现气泡框实现方法
    6. Zimbra禁止接收带有加密的文件邮件 提醒病毒(Heuristics.Encrypted.PDF)
    7. Python提取全国水雨情信息(大江大河和、大型水库和实时雨情)
    8. [1]数据分析中变量取对数的意义
    9. 微积分——什么是导数
    10. HDU 1885 Key Task 国家压缩+搜索