案例:搭建Zabbix监控系统
前言:Zabbix可以灵活地监控服务器资源,并且集Cacti与Nagio两者的优点于一身且功能更强大,实现企业级分布式监控,所以在市场应用更广。
目录
🍇Zabbix概述
🍇案例实施
🍒搭建yum源
🍒安装MariDB
🍒安装Zabbix
🍒编辑配置文件
🍒安装zabbix web接口
🍇Zabbix基本配置
🍒Zabiix用户管理
🍒修改Zabbix中文乱码
🍒Zabbix监控Linux服务器
🍒Zabbix监控windows服务器
🍇Zabbix 自定义监控项
🍤:博客主页
🍤:选择大于努力
🍤:如果这个博主有幸得到你的喜欢,在此求关注❤️!
Zabbix概述
Zabbix是一个基于Web界面企业及开源监控套件。
🍤具备功能
主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细报表图表绘制
🍤监测对象
Linux 服务器 、Windows服务器、路由器、交换机等网络设备 其官方网站是Zabbix
🍤监控架构
server-client:适用于网络比较简单,设备较少的监控环境。master-node-client:适用于跨网络、跨机房、设备较多的大型环境。server-proxy-client:适用于跨网络、跨机房的中型网络架构。
案例实施
Zabbix提供两种安装方式:YUM安装与编译安装。由于CetnOS官方YUM源中并不提供Zabbix软件包以及相关依赖包,因此,如果想用YUM安装Zabbix需要通过Zabbix官方源或第三方提供的YUM源实现。
🍤实施环境
目标:首先配置Zabbix服务器,通过 Zabbix服务器监控linux服务器和windows服务器。
前提:关闭防火墙、selinux,如图配置IP地址。
搭建yum源
🍤配置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
🍤打开浏览器访问http://192.168.1.10/zabbix,打开Zabbix前端安装向导,如下图所示。
🍤单机"Next step"按钮,进入系统环境检测界面,全部符合后进入下一步。
🍤根据之前配置好的zabbix数据库填写授权信息。密码提示:“pwd456”。
🍤数据库连接成功配置后,填写连接Zabbix 服务信息。
🍤返回一个汇总的配置信息查看无误后下一步即可。
🍤提示安装完成。
🍤登录zabbix页面,默认用户名为Admin、密码zabbix。
Zabbix基本配置
Zabiix用户管理
🍤为了增强安全性,需要修改Zabbix服务器默认用户Admin的初始密码。使用默认用户名Admin登录Zabbix服务器,选择"Administration"→"users"→"Admin"进入用户配置界面。
🍤单击"change passwrod"按钮来更改密码,语言界面显示改为中文,然后单击"update"按钮提交,刷新界面生效。
🍤单击用户界面中的“创建用户”按钮,即可弹出创建用户界面,添加相应的信息即可创建新用户。
🍤创建用户的时候还可以选择添加相应的群组,点击”添加“即可。
修改Zabbix中文乱码
🍤安装Zabbix后,当显示语言为中文时,可能会出现中文乱码情况,这主要是字体导致的问题,如果要解决,需要下载合适的字体,并将其上传到Zabbix服务器上。
🍤下载标准中文字体(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'); //直接修改后面单引号的内容即可
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。
🍤然后左上角,选择“模板”,将链接的模板选择为"Template OS Linux",单击“添加”按钮,完成主机的添加。
🍤稍等一会,就可以看到下图中可用性列中"ZBX"为绿色,则表示添加成功。此刻也可以去查看”检测中“→“图形”,选择监测的群组和主机即可查看到服务器状态。
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。
🍤使用cmd命令行进行安装启动agent。
agent常用参数:-c,指定配置文件;-i,安装;-s,启动;-x,停止;-d,卸载。
🍤到zabbix服务器上添加主机。
登录zabbix web界面,选择“配置”→“主机”→“创建主机”。添加主机名为“win-001”,同时创建新群组“Windows servers”,在agent代理程序接口处添加Windows服务器的IP地址192.168.1.30。
🍤选择”模板“界面,将链接的模板选择为“Template OS Windows”,单击“添加”按钮,安装主机的添加。稍等片刻即可查看到
🍤而在检测中选项也会查看到一些关于win-001的监控状态。
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“,配置后点击下方添加按钮即可。
🍤添加成功后,在最新数据中查看是否获取到数据。