教你如何部署Zabbix监控平台

目录

1、Zabbix工作原理

1.1、重要组件说明

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

注:zabbix server、proxy、 agent 都有自己的配置文件以及log文件,重要的参数需要在这里配置

1.2、监控系统运行流程

■ agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端
■ zabbix_server将数据存储到数据库中,zabbix_web(图形化界面)根据数据在前端(web页面)进行展现和绘图

1.2.1、agentd收集模式

■ 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
■ 被动:server向agent请求获取监控项的数据,agent返回数据

1.2.2、主动检测通信过程

zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems 数据值server或者proxy,zabbix 多久获取一次active items? 它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分

1.2.2.1、获取ACTIVE ITEMS列表

Agent打开TCP连接( 主动检测变成Agent打开)
Agent请求items检测列表
Server返回items列表
Agent处理响应
关闭TCP连接

1.2.2.2、Agent开始收集数据主动检测提交数据过程

Agent建立TCP连接
Agent提交items列表收集的数据
Server处理数据,并返回响应状态
关闭TCP连接

1.2.3、被动监测通信过程

Server打开一个TCP连接
Server发送请求agent.ping\n
Agent接收到请求并且响应1
Server处理接收到的数据1
关闭TCP连接

注:被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了

1.3、主动被动实际监控应用

实际监控中是用主动的还是被动,主要涉及两个地方

■ 新建监控项目时,选择的是zabbix代理还是zabbix 端点代理程式(主动式),前者是被动模式,后者是主动模式
■ agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启

一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式

1.4、常用的监控架构平台

1.4.1、server-agentd 模式

最简单的架构,常用于监控主机比较少的情况下

1.4.2、server-proxy-agentd 模式

这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力

2、Zabbix部署安装流程

部署配置
zabbix-server:192.168.140.50
zabbix-client:192.168.140.60

注:Zabbix安装需要在LAMP平台上安装,因此第一步是部署LAMP架构

2.1、服务器端关闭防火墙,安装依赖包

[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# setenforce 0
[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.1.2、修改apache和php配置文件

[root@zabbix-server ~]# ln -s /etc/httpd/conf/httpd.conf /etc/    #创建软连接
[root@zabbix-server ~]# vim /etc/httpd.conf

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

[root@zabbix-server ~]# vim /etc/php.ini    #yum安装,所以默认在etc下

在这里插入图片描述

2.1.3、开启apache和mariadb

[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# netstat -anpt | grep 3306
[root@zabbix-server ~]# netstat -anpt | grep 80

在这里插入图片描述

2.2、初始化数据库

[root@zabbix-server ~]# mysql_secure_installation

在这里插入图片描述

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

在这里插入图片描述

2.2.1、测试php网页是否可以开启

MariaDB [(none)]> exit
Bye
[root@zabbix-server ~]# vim /var/www/html/index.php

在这里插入图片描述

2.2.2、打开浏览器验证

在这里插入图片描述

2.2.3、测试php与MariaDB的联动性

注:因为zabbix监控需要独立数据库,创建名为zabbix的数据库

■ MySQL数据库编码格式
● nysql字段varchar区分大小写utf8_bin、utf8_general_ci编码区别
■ 在mysq1中存在着各种utf8编码格式:
● utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写
● utf8_genera_ci不区分大小写,ci为case insensitive的缩写, 即大小写不敏感
● utf8_general_cs区分大小写,cs为case sensitive的缩写, 即大小写敏感
● 用utf8_genera ci没有区分大小写,导致这个字段的内容区分大小写时出问题,比如作为区分大小写的code或者验证码时就出问题了
● utf8_general_cs这个选项一般没有,所以只能用utf8_bin区分大小写
[root@zabbix-server ~]# mysql -uroot -p123456
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;  #创建名为zabbix的数据库,设置字符集和编码集
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'admin123';
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'admin123';
MariaDB [(none)]> flush privileges;   #刷新权限
MariaDB [(none)]> exit

在这里插入图片描述

[root@zabbix-server ~]# vim /var/www/html/index.php

在这里插入图片描述

2.2.4、浏览器验证

在这里插入图片描述

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

在这里插入图片描述

[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
[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 ~]# mysql -uroot -p123456
MariaDB [(none)]> show databases;

在这里插入图片描述

MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;

在这里插入图片描述

MariaDB [zabbix]> select * from users\G     #查看表中的信息

在这里插入图片描述

2.3.5、修改zabbix配置文件

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log      #zabbix服务器端的日志存放路径
49:LogFileSize=0                                                    #初始化文件大小为0
72:PidFile=/var/run/zabbix/zabbix_server.pid      #PID文件的存放路径
82:SocketDir=/var/run/zabbix                                #对外的访问入口
100:DBName=zabbix                                              #数据库的默认名称
116:DBUser=zabbix                                                #数据库的用户名称
125:DBPassword=admin123                                 #修改此行即可
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                                           #慢日志查询时间

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

在这里插入图片描述

[root@zabbix-server ~]# vim /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]# ls
[root@zabbix-server fonts]# systemctl enable zabbix-server  
[root@zabbix-server fonts]# systemctl start zabbix-server
[root@zabbix-server fonts]# netstat -anpt | grep zabbix 

在这里插入图片描述

2.3.6、登录http://192.168.140.50/zabbix/setup.php

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

2.3.7、连接数据库

在这里插入图片描述

2.3.8、起zabbix服务器名称

在这里插入图片描述

2.3.9、信息总览并完成

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

2.4、登录zabbix

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

3、客户机端配置

3.1、设置yum源

[root@zabbix-client ~]# vim /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

在这里插入图片描述

3.2、安装zabbix-agent

[root@zabbix-client ~]# yum install -y zabbix-agent  --nogpgcheck

3.3、修改客户端配置

[root@zabbix-client ~]# vim /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.50
123 StartAgents=3                                           #不为0,不禁止被动模式
139:ServerActive=192.168.140.50
150:Hostname=client                                       #客户端在服务器端的名字
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf   

3.4、开启客户端

[root@zabbix-client ~]# systemctl enable zabbix-agent.service
[root@zabbix-client ~]# systemctl restart zabbix-agent.service
[root@zabbix-client ~]# netstat -anpt | grep zabbix

在这里插入图片描述

3.4.1、监控语言设置为中文

在这里插入图片描述

3.4.2、再次刷新浏览器

在这里插入图片描述

3.5、zabbix server同时需要把自己设置为客户端,设置过程同上

[root@zabbix-server ~]# yum install -y zabbix-agent  --nogpgcheck
[root@zabbix-server ~]# vim /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.50
139:ServerActive=192.168.140.50
150:Hostname=server                                     #客户端在服务器端的名字
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf 
[root@zabbix-server ~]# systemctl enable zabbix-agent.service
[root@zabbix-server ~]# systemctl restart zabbix-agent.service
[root@zabbix-server ~]# netstat -anpt | grep zabbix

在这里插入图片描述

3.5.1、服务器端创建被监控主机

配置->主机->创建主机

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

3.5.2、创建模板

配置->主机->名称->选中主机->模板
在这里插入图片描述
在这里插入图片描述

3.6、zabbix-server上设置邮箱报警信息

[root@zabbix-server ~]# yum -y install mailx  
[root@zabbix-server ~]# vim /etc/mail.rc
 70 set from=770274980@qq.com
 71 set smtp=smtp.qq.com
 72 set smtp-auth-user=770274980@qq.com
 73 set smtp-auth-password=htzuvdvfsrnjbebi
 74 set smtp-auth=login

在这里插入图片描述

3.6.1、编写发邮件的脚本

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts    #切换目录
[root@zabbix-server alertscripts]# vi mailx.sh              #编写发邮件脚本
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n'  '\n'`
subject=`echo $2 | tr '\r\n'  '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

在这里插入图片描述

[root@zabbix-server alertscripts]# touch /tmp/mailx.log
[root@zabbix-server alertscripts]# cd
[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/

3.6.2、测试脚本

在这里插入图片描述

3.6.3、查看zabbix

在这里插入图片描述

3.7、Zabbix-server网页上配置邮件报警

管理->报警媒体类型->创建媒体类型
在这里插入图片描述

3.7.1、管理->用户->点击Admin->报警媒介

在这里插入图片描述

3.7.2、配置->动作->创建动作->删除默认标签,修改触发条件

在这里插入图片描述

3.8、重启服务,禁用客户机网卡,进行测试

[root@zabbix-server ~]# systemctl restart zabbix-server
[root@zabbix-server ~]# systemctl restart zabbix-agent.service
[root@zabbix-client ~]#  ifconfig ens33 down     #禁用网卡

在这里插入图片描述

3.8.1、查看邮件

在这里插入图片描述

3.8.2、排除故障,再次查看邮件

[root@zabbix-client ~]#  ifconfig ens33 up
[root@zabbix-client ~]# systemctl restart network

在这里插入图片描述

4、总结

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题

猜你喜欢

转载自blog.csdn.net/weixin_50344814/article/details/112741245
今日推荐