搭建Zabbix监控系统

举报
大虾好吃吗 发表于 2022/08/09 14:55:05 2022/08/09
【摘要】 要想实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好地途径。就目前而言,由服务器的地方就少不了监控系统。现有的监控系统软件很多,但是Zabbix可以灵活地监控服务器资源,并且集Cacti与Nagio两者的优点于一身且功能更强大,实现企业级分布式监控,所以在市场应用更广。

         🍉要想实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好地途径。就目前而言,由服务器的地方就少不了监控系统。现有的监控系统软件很多,但是Zabbix可以灵活地监控服务器资源,并且集Cacti与Nagio两者的优点于一身且功能更强大,实现企业级分布式监控,所以在市场应用更广。

Zabbix概述

 🍕Zabbix是一个基于Web界面企业及开源监控套件。

  • 具备功能

主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细报表图表绘制。

  • 监测对象

Linux 服务器 、Windows服务器、路由器、交换机等网络设备 其官方网站是http://www.zabbix.com

  • 监控架构

  1. server-client:适用于网络比较简单,设备较少的监控环境。
  2. master-node-client:适用于跨网络、跨机房、设备较多的大型环境。
  3. server-proxy-client:适用于跨网络、跨机房的中型网络架构。

案例实施

🍕Zabbix提供两种安装方式:YUM安装与编译安装。由于CetnOS官方YUM源中并不提供Zabbix软件包以及相关依赖包,因此,如果想用YUM安装Zabbix需要通过🌮🍕Zabbix官方源或第三方提供的YUM源实现。

实施环境

 🍘目标:首先配置Zabbix服务器,通过 Zabbix服务器监控linux服务器和windows服务器。

 🍘前提:关闭防火墙、selinux,如图配置IP地址。

image-20220801212540469.png

 🍘配置Zabbix之前先搭建Zabbix服务器的yum源。

............//将rpm文件指定到/zabbix目录中
[root@localhost ~]# mkdir /zabbix
[root@localhost ~]# mount /dev/cdrom /media
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cp /media/* /zabbix/
............//生成yum源目录文件
[root@localhost ~]#  cd /zabbix/
[root@localhost zabbix]# createrepo .
............//指定本地yum源路径为/zabbix目录
[root@localhost zabbix]# cd
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/a.repo
[a]
name=a
baseurl=file:///zabbix
gpgcheck=0

安装MariDB

 🍙在CentOS7系统中光盘镜像中默认提供的数据库软件不是MySQL而是MariaDB,因此在LAMP架构中使用MariaDB来充当“M”的角色,其余的组件还是保持原有的Apache与PHP。MariaDB是MySQL数据库源码的一个分支版本,与MySQL在大多数方面是兼容的。

 🍙通过部署下面命令安装并启动MariaDB,设置数据库管理员密码为"pwd123",验证数据库是否成功安装。

[root@localhost ~]# yum -y install mariadb-server mariadb
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# mysqladmin -u root password 'pwd123'
[root@localhost ~]# mysql -uroot -ppwd123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
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)]> 

安装Zabbix

 🍣安装Zabbix时会安装很多依赖包,其中包括httpd与PHP相关依赖包,所以直接安装Zabbix即可。

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

 🍣安装Zabbix Web时需要数据库,在MariaDB中手动创建数据库名为zabbix的数据库,并授权给zabbix用户使用,以增加数据库的安全性。

[root@localhost ~]# mysql -u root -ppwd123
MariaDB [(none)]> create database zabbix  character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'pwd456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye

🍣导入数据库SQL脚本文件。

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:                                 //输入zabbix用户密码后稍等片刻,等待导入数据
[root@localhost ~]# 

编辑配置文件

 🍣通过编辑配置文件,配置指定数据库的名称、用户、密码。

[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf 
DBHost=localhost                    //需要去掉注释
DBName=zabbix
DBUser=zabbix
DBPassword=pwd456                   //需要去掉注释,并设置zabbix用户密码

 🍣编辑zabbix agent的配置文件/usr/local/etc/zabbix_agentd.conf,必须指定zabbix server的IP地址,在每台安装agent的主机上都要配置。这里要指定服务器的IP地址,现在在同一台服务器上,所以不修改!

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

 🍣执行以下命令启动zabbix-server、zabbix-agent与httpd。

[root@localhost ~]# systemctl start zabbix-server
[root@localhost ~]# systemctl enable zabbix-server
[root@localhost ~]# systemctl start zabbix-agent
[root@localhost ~]# systemctl enable zabbix-agent
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

安装zabbix web接口

  • 编辑Apache服务器针对Zabbix的前端配置文件,设置时区与当前系统一致。

[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf 
        php_value date.timezone Asia/Shanghai           //文件中直接删掉注释修改时区为上海即可
[root@localhost ~]# systemctl restart httpd

image-20220801213016833.png

  • 单机"Next step"按钮,进入系统环境检测界面,全部符合后进入下一步。

image-20220801213154085.png

  • 根据之前配置好的zabbix数据库填写授权信息。密码提示:“pwd456”。

image-20220801213431745.png

  • 数据库连接成功配置后,填写连接Zabbix 服务信息。

image-20220801213629985.png

  • 返回一个汇总的配置信息查看无误后下一步即可。

image-20220801213741095.png

  • 提示安装完成。

image-20220801213814132.png

  • 登录zabbix页面,默认用户名为Admin、密码zabbix。

image-20220801214001811.png

Zabbix基本配置

Zabiix用户管理

  • 为了增强安全性,需要修改Zabbix服务器默认用户Admin的初始密码。使用默认用户名Admin登录Zabbix服务器,选择"Administration"→"users"→"Admin"进入用户配置界面。

image-20220802173424854.png

  • 单击"change passwrod"按钮来更改密码,语言界面显示改为中文,然后单击"update"按钮提交,刷新界面生效。

image-20220802174555078.png

  • 单击用户界面中的“创建用户”按钮,即可弹出创建用户界面,添加相应的信息即可创建新用户。

image-20220802175027559.png

  • 创建用户的时候还可以选择添加相应的群组,点击”添加“即可。

image-20220802175220135.png

修改Zabbix中文乱码

  • 安装Zabbix后,当显示语言为中文时,可能会出现中文乱码情况,这主要是字体导致的问题,如果要解决,需要下载合适的字体,并将其上传到Zabbix服务器上。

image-20220802210145863.png

  • 下载标准中文字体(simkai.ttf),将其上传到Zabbix服务器的文档根目录中,YUM安装的默认安装目录在/usr/share/zabbix中。

[root@localhost ~]# cp /media/simkai.ttf /usr/share/zabbix/fonts/
[root@localhost ~]# ls /usr/share/zabbix/fonts/
graphfont.ttf  simkai.ttf
[root@localhost ~]# chmod 777 /usr/share/zabbix/fonts/simkai.ttf
  • 通过以下命令修改PHP界面的字体文件,将原本的graphfont更改为simkai,然后刷新界面即可正常显示中文。

[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php 
define('ZBX_GRAPH_FONT_NAME',           'simkai');              //直接修改后面单引号的内容即可

image-20220802210949464.png

Zabbix监控Linux服务器

  • 如果希望监控Linux服务器,可以使用agent的方式,在Linux服务器上安装zabbix的agent。(被监控端操作)

[root@localhost ~]# mount /dev/cdrom /media/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# ls /media
simkai.ttf           zabbix-agent-3.2.6-1.el7.x86_64.rpm
zabbix-3.2.6.tar.gz  zabbix_agents_3.2.0.win.zip
[root@localhost ~]# rpm -ivh /media/zabbix-agent-3.2.6-1.el7.x86_64.rpm 
  • 修改agent配置文件,其中Server与ServerActive配置项指定zabbix服务器地址,但是作用并不相同。Server用于客户端被动等待指定服务器来查询数据,ServerActive用与客户端主动提交数据到指定的服务器。Hostname必须与Zabbix Web上名称一致,否则Zabbix 主动监控无法正常工作。

[root@localhost ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/.zabbix_agentd.conf.bak
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.10
ServerActive=192.168.1.10
Hostname=linux-001
  • 启动agent服务并设置开机启动,默认端口为10050。

[root@localhost ~]# systemctl start zabbix-agent
[root@localhost ~]# 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@localhost ~]# netstat -anpt | grep agent
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      7669/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      7669/zabbix_agentd  
  • 在zabbix服务器上添加主机。

 🍥登录Zabbix web界面,选择“配置”→“主机”→“创建主机”。添加主机名称为“linux-001”、群组为“Linux servers”的主机然后在agent代理程序接口处添加Linux服务器的IP地址192.168.1.20。

image-20220802213406683.png

 🍥然后左上角,选择“模板”,将链接的模板选择为"Template OS Linux",单击“添加”按钮,完成主机的添加。

image-20220802213912297.png

  • 稍等一会,就可以看到下图中可用性列中"ZBX"为绿色,则表示添加成功。此刻也可以去查看”检测中“→“图形”,选择监测的群组和主机即可查看到服务器状态。

image-20220802214353361.png

Zabbix监控windows服务器

  • 在windows服务器上安装agent程序

 🍭将下载的压缩包解压,在解压文件的bin目录下会有win32和win64两个文件夹,根据windows系统的版本自行进行选择,将客户端程序文件复制至C:\zabbix

,将conf文件中的zabbix_agentd.win.cof配置文件同样复制至C:\zabbix。在配置文件中修改如下配置项:(推荐使用写字板或标准文本工具编辑)

Server=192.168.1.10
ServerActive=192.168.1.10
Hostname=win-001

🍭注意:需在C盘创建一个zabbix的目录,把下图中文件导入进入后在编辑文件zabbix_agentd.win.cof。

image-20220802215457361.png

  • 使用cmd命令行进行安装启动agent。

image-20220802215828808.png

🍭agent常用参数:-c,指定配置文件;-i,安装;-s,启动;-x,停止;-d,卸载。

  • 到zabbix服务器上添加主机。

🍭登录zabbix web界面,选择“配置”→“主机”→“创建主机”。添加主机名为“win-001”,同时创建新群组“Windows servers”,在agent代理程序接口处添加Windows服务器的IP地址192.168.1.30。

image-20220802220410688.png

 🍭选择”模板“界面,将链接的模板选择为“Template OS Windows”,单击“添加”按钮,安装主机的添加。稍等片刻即可查看到

image-20220802220642856.png

🍭在检测中选项也会查看到一些关于win-001的监控状态。

image-20220802221340708.png

Zabbix 自定义监控项

 🍦Zabbix自带的默认模板里包括了很多监控项,也可以根据需求自定义监控项。下面以创建自定义监控项的方式,以创建监控httpd进程为例,介绍Zabbix自定义监控项。

 🍦首先需要在被监控端(centos7系统)创建监控脚本存放目录/etc/zabbix/zabbix_scripts,然后在该目录下编写脚本名称为check_httpd.sh的监控脚本。

[root@localhost ~]# mkdir /etc/zabbix/zabbix_scripts
[root@localhost ~]# 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 '2'
fi

 🍦修改zabbix_agentd.conf配置文件。

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1                  //去注释,默认0修改为1

 🍦在/etc/zabbix/zabbix_agentd.d/目录下创建userparameter_httpd.conf文件夹,并在文件中设置自定义监控项。

[root@localhost ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@localhost zabbix_agentd.d]# vim userparameter_httpd.conf
UserParameter=check_httpd,sh /etc/zabbix/zabbix_scripts /check_httpd.sh
[root@localhost ~]# systemctl restart zabbix-agent              //重启后生效

 🍦登录Zabbix web,选择要增加监控项的主机,选择监控项→创建监控项,主机选择”linux-001“,名称为“httpd监控”,键值为”check_httpd“,配置后点击下方添加按钮即可。

image-20220803132121654.png

image-20220803132416238.png

 🍦添加成功后,在最新数据中查看是否获取到数据。

image-20220803132712611.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。