zabbix5.0配置与使用

目录

网站可用性与监控范畴

网站可用性

监控范畴

zabbix简介与概念

zabbix的环境搭建:LNMP

zabbix 服务端

Zabbix 中文乱码问题

监控一台客户端主机

自动发现,自动注册,被动模式,主动模式(对agent2来说)

分布式监控

SNMP监控

使用范围

安装snmp程序

配置snmp程序

测试snmp

在web界面进行配置

附录

监控硬件设备

脚本的使用

学习心得

通过zabbix-proxy自动注册的客户端


网站可用性与监控范畴

网站可用性

  在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。

    1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
    2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
    3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
    4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
    5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
    6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒

监控范畴

监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控

zabbix5.0配置与使用_第1张图片


zabbix简介与概念

一、zabbix简介
1、zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让运维人员能够快速定位。

2、zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置。

    被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端。

    server端:通过收集SNMP和agent发送来的数据,将数据写入到后台数据库中(例如:mysql,oracle),在通过web展示出来。

3、运行环境

    zabbix server 需要运行在LAMP或者是LNMP的环境下;

    agent可以部署在目前常见的OS中,例如linux,windows,HPUX,Solaris,Sun;

    SNMP可以支持常见的网络设备。

 官方给出了zabbix根据不同环境与平台所需要的硬件需求:

zabbix5.0配置与使用_第2张图片


二、zabbix构成
zabbix主要由以下5个组件构成:

1、Server

zabbix server是zabbix的核心组件,server内部存储了所有的配置信息、统计信息和操作信息。zabbix agent会向zabbix server报告可用性、完整性及其他统计信息。

2、web页面

web页面也是zabbix的一部分,通常和zabbix server位于一台物理设备上,但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理。

3、数据库

zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容。

4、proxy

zabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy,则其会替代zabbix server采集数据信息,可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbix server负载过重,或者是企业设备跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景。

5、Agent

zabbix agent通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控的数据发送给zabbix server。

三、zabbix监控对象
zabbix支持监控各种系统平台,包括Linux和Windows等主流操作系统,也可以借助SNMP或者是SSH协议监控路由交换设备。
zabbix如果部署在服务器上,可以监控其CPU、内存、网络性能等硬件参数,也可以监控具体的服务或者应用程序、服务运行情况及性能。

硬件监控:Zabbix IPMI Interface ,通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。

系统监控:Zabbix Agent Interface ,通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。

Java监控:Zabbix JMX Interface ,通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JVM虚拟机时,使用这种方法是非常不错的选择。

网络设备监控:Zabbix SNMP Interface ,通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。

应用服务监控:Zabbix Agent UserParameter

MySQL数据库监控:percona-monitoring-plulgins   

URL监控:Zabbix Web 监控

四、zabbix常用术语
zabbix的学习需要掌握一些zabbix的常用术语,zabbix常用术语列举如下:

1、主机(host)

要监控的设备,可以由IP或者是主机名(必须可解析)指定。

2、主机组(host group)

主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用。

3、监控项(item)

一个特定监控指标的相关数据,比如内存的大小、CPU的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个key来标识。

4、触发器(trigger)

一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。

5、事件(event)

触发器触发的一个特定事件,或者是zabbix定义的一个自动上线注册主机的事件。

6、动作(action)

指根据配置,zabbix对于触发器触发的特定事件进行处理的具体措施,如执行某个脚本,或者是向管理员邮箱发送邮件等等。

7、报警升级(escalation)

发送警报或者是执行远程命令的自定义方案。

8、媒介(media)

发送通知(告警)的手段,如微信、邮件、钉钉等等。

9、通知(notification)

通过指定的媒介,向用户发送的有关事件的信息。

10、远程命令(remote command)

指运维人员提前写好的命令,可以让被监控主机在触发事件后执行。

11、模板(template)

用于快速定义被监控主机的预设条目集合,通常包括了监控项、触发器、应用等,模板可以直接链接至某个主机。

12、应用(application)

一组监控项的集合。

13、web场景(web scennario)

用于检测web站点可用性的一个或多个HTTP请求。

14、前端(frontend)

zabbix的web接口

zabbix的环境搭建:LNMP

安装nginx1.22
#检查软件安装情况
[root@zabbix-proxy ~]# rpm -qa|grep -e mysqld -e mariadb -e php -e nginx -e zabbix 
rpm -e `rpm -qa|grep nginx` --nodeps
rm -f /etc/yum.repos.d/*
[root@m03 ~]# cat >/etc/yum.repos.d/nginx.repo<<'EOF'    #EOF加单引号可以让$releasever/$basearch/保持不变
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
[root@m03 ~]# yum install nginx --enablerepo=nginx-stable -y
[root@m03 ~]# mv  /etc/nginx/conf.d/default.conf   /etc/nginx/conf.d/default.conf.bak
[root@m03 ~]# cat >/etc/nginx/conf.d/zbx.oldboylinux.cn.conf<<'EOF'  #动态请求转发php的配置
server {
server_name localhost;
listen 80;
root /data/blog;
index index.php index.html;

location ~ \.php$ {
#root /data/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
[root@m03 ~]# nginx -t
[root@m03 ~]# systemctl start nginx&&systemctl enable nginx

安装php7.2
rpm -e `rpm -qa|grep webtatic` --nodeps
rpm -e `rpm -qa|grep php` --nodeps
curl -s -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
##配置安装源
yum install epel-release -y     #此源可以下载webtatic源的rpm包
wget https://mirror.webtatic.com/yum/el7/webtatic-release.rpm --no-check-certificate   #下载webtatic-release.rpm包
rpm -Uvh webtatic-release.rpm   #安装源-webtatic.repo,webtatic源可以下载新的php软件包
yum install php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd -y
###rpm -qa |egrep 'nginx|php72w'
###php配置   修改php用户和准备php会话保持目录
[root@m03 ~]# sed -nr '/^(user|group)/p' /etc/php-fpm.d/www.conf   #查看配置
user = apache
group = apache
[root@m03 ~]# sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf #r选项使用扩展正则表达式
[root@m03 ~]# egrep '^(user|group)' /etc/php-fpm.d/www.conf    #egrep=grep -E可以使用扩展正则表达式
user = nginx
group = nginx
[root@m03 ~]# grep 'var/lib/php/session' /etc/php-fpm.d/www.conf
php_value[session.save_path] = /var/lib/php/session
[root@m03 ~]# mkdir -p /var/lib/php/session
[root@m03 ~]# chown nginx.nginx /var/lib/php/session
[root@m03 ~]# php-fpm -t
[19-Oct-2022 05:24:01] NOTICE: configuration file /etc/php-fpm.conf test is successful
[root@oldboy ~]# systemctl start php-fpm.service&&systemctl enable php-fpm.service
[root@oldboy ~]# mkdir /data/blog -p
[root@oldboy ~]# cat>/data/blog/phpinfo.php< phpinfo();
?>
EOF
[root@oldboy ~]# chown -R nginx. /data/blog/
zabbix5.0配置与使用_第3张图片

安装nginx与php的脚本  #脚本内内联重定向需要对$进行转义,否则重定向的是变量的值,非变量本身
rpm -e `rpm -qa|grep nginx` --nodeps
rm -f /etc/yum.repos.d/*
cat>/etc/yum.repos.d/nginx.repo</etc/nginx/conf.d/zbx.oldboylinux.cn.conf</data/blog/phpinfo.php<
EOF
chown -R nginx. /data/blog/

#EPEL到底是什么,为何经常要安装epel-release软件包
EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额
外的软件包,适用于RHEL、CentOS和Scientific Linux.

我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富,很多
时候需要自己编译很痛苦,而EPEL恰恰可以解决这两方面的问题。EPEL的全称叫 Extra Packages for 
Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 
等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。

安装数据库    ##安装mariadb且使用安全策略
[root@m03 ~]# rpm -e `rpm -qa|grep mysql` --nodeps&&rm -rf /var/lib/mysql/
[root@m03 ~]# yum install -y mariadb-server
[root@m03 ~]# systemctl start mariadb.service&&systemctl enable mariadb
[root@localhost ~]# mysql_secure_installation                 #数据库初始化

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):    ##初始密码为空
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

#创建zabbix数据库与登录账号
[root@m03 ~]# mysql -uroot -p< create database zabbix charset utf8 collate utf8_bin;
grant all on zabbix.* to 'zabbix'@'localhost' identified by '1' ;
EOF

编写数据库连接测试文件:
[root@localhost blog]# cat >/data/blog/mysqli.php<<'EOF'
//$link_id=mysqli_connect('主机名','用户','密码');
$link_id=mysqli_connect('localhost','zabbix','1') or
mysqli_error();
if($link_id){
echo "mysql successful by oldboy !";
}else{
echo mysqli_error();
}
//这是php单行注释
?>
EOF
zabbix5.0配置与使用_第4张图片

zabbix 服务端

#安装zabbix yum源
来源于:清华大学开源软件镜像站 | Tsinghua Open Source Mirror
#zabbix-release.....rpm zabbix yum源的配置文件
zabbix5.0配置与使用_第5张图片zabbix5.0配置与使用_第6张图片[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
CentOS-Base.repo  epel.repo  nginx.repo  webtatic-archive.repo  webtatic.repo  webtatic-testing.repo
[root@localhost yum.repos.d]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
CentOS-Base.repo  epel.repo  nginx.repo  webtatic-archive.repo  webtatic.repo  webtatic-testing.repo  zabbix.repo
[root@localhost yum.repos.d]# sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo   #国外源替换为清华源
# 安装 zabbix-server
[root@m03 ~]# yum install -y zabbix-server-mysql zabbix-agent2  #安装server与agent2包
# zabbix 数据库导入数据
[root@m03 ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.28/create.sql.gz|mysql -uzabbix -p1 zabbix
# zabbix 服务端 配置连接数据库
[root@m03 ~]# vim /etc/zabbix/zabbix_server.conf     #修改
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1
[root@m03 ~]# grep -n '^DB' /etc/zabbix/zabbix_server.conf
92:DBHost=localhost
101:DBName=zabbix
117:DBUser=zabbix
126:DBPassword=1
#修改后 zabbix 服务端开启的功能 (不用修改)
[root@m03 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
#启动 zabbix-server
[root@m03 ~]# systemctl start zabbix-server.service&&systemctl enable zabbix-server.service
[root@m03 ~]# [root@m03 ~]# ss -lntup |grep zabbix

zabbix前端页面准备

##现有源epel安装的zabbix-web为4.0版本,无法使用
[root@localhost zabbix]# yum list|grep zabbix
fping.x86_64                             3.16-1.el7                    @zabbix-non-supported
zabbix-agent2.x86_64                     5.0.28-1.el7                  @zabbix  
zabbix-release.noarch                    5.0-1.el7                     installed
zabbix-server-mysql.x86_64               5.0.28-1.el7                  @zabbix  
zabbix40.x86_64                          4.0.39-1.el7                  @epel    
zabbix40-web.noarch                      4.0.39-1.el7                  @epel    
zabbix40-web-mysql.noarch                4.0.39-1.el7                  @epel    
iksemel.x86_64                           1.4-2.el7.centos              zabbix-non-supported
iksemel-devel.x86_64                     1.4-2.el7.centos              zabbix-non-supported
iksemel-utils.x86_64                     1.4-2.el7.centos              zabbix-non-supported
pcp-export-pcp2zabbix.x86_64             4.3.2-13.el7_9                updates  
pcp-export-zabbix-agent.x86_64           4.3.2-13.el7_9                updates  
python-pyzabbix.noarch                   0.7.3-2.el7                   epel     
python2-zabbix-api-erigones.noarch       1.2.4-3.el7                   epel     
python36-zabbix-api-erigones.noarch      1.2.4-3.el7                   epel     
uwsgi-stats-pusher-zabbix.x86_64         2.0.18-8.el7                  epel     
zabbix-agent.x86_64                      5.0.28-1.el7                  zabbix   
zabbix-get.x86_64                        5.0.28-1.el7                  zabbix   
zabbix-java-gateway.x86_64               5.0.28-1.el7                  zabbix   
zabbix-js.x86_64                         5.0.28-1.el7                  zabbix   
zabbix-proxy-mysql.x86_64                5.0.28-1.el7                  zabbix   
zabbix-proxy-pgsql.x86_64                5.0.28-1.el7                  zabbix   
zabbix-proxy-sqlite3.x86_64              5.0.28-1.el7                  zabbix   
zabbix-sender.x86_64                     5.0.28-1.el7                  zabbix   
zabbix-server-pgsql.x86_64               5.0.28-1.el7                  zabbix   
zabbix40-agent.x86_64                    4.0.39-1.el7                  epel     
zabbix40-dbfiles-mysql.noarch            4.0.39-1.el7                  epel     
zabbix40-dbfiles-pgsql.noarch            4.0.39-1.el7                  epel     
zabbix40-dbfiles-sqlite3.noarch          4.0.39-1.el7                  epel     
zabbix40-proxy.noarch                    4.0.39-1.el7                  epel     
zabbix40-proxy-mysql.x86_64              4.0.39-1.el7                  epel     
zabbix40-proxy-pgsql.x86_64              4.0.39-1.el7                  epel     
zabbix40-proxy-sqlite3.x86_64            4.0.39-1.el7                  epel     
zabbix40-selinux.noarch                  4.0.39-1.el7                  epel     
zabbix40-server.noarch                   4.0.39-1.el7                  epel     
zabbix40-server-mysql.x86_64             4.0.39-1.el7                  epel     
zabbix40-server-pgsql.x86_64             4.0.39-1.el7                  epel     
zabbix40-web-pgsql.noarch                4.0.39-1.el7                  epel     
zabbix50.x86_64                          5.0.21-1.el7                  epel     
zabbix50-agent.x86_64                    5.0.21-1.el7                  epel     
zabbix50-dbfiles-mysql.noarch            5.0.21-1.el7                  epel     
zabbix50-dbfiles-pgsql.noarch            5.0.21-1.el7                  epel     
zabbix50-dbfiles-sqlite3.noarch          5.0.21-1.el7                  epel     
zabbix50-proxy.noarch                    5.0.21-1.el7                  epel     
zabbix50-proxy-mysql.x86_64              5.0.21-1.el7                  epel     
zabbix50-proxy-pgsql.x86_64              5.0.21-1.el7                  epel     
zabbix50-proxy-sqlite3.x86_64            5.0.21-1.el7                  epel     
zabbix50-selinux.noarch                  5.0.21-1.el7                  epel     
zabbix50-server.noarch                   5.0.21-1.el7                  epel     
zabbix50-server-mysql.x86_64             5.0.21-1.el7                  epel     
zabbix50-server-pgsql.x86_64             5.0.21-1.el7                  epel   

#web页面安装如下
zabbix5.0配置与使用_第7张图片 [root@localhost ~]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
Retrieving https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
error: Failed dependencies:
    dejavu-sans-fonts is needed by zabbix-web-5.0.0-1.el7.noarch       #需要先安装字体
[root@localhost ~]# yum install dejavu-sans-fonts -y
[root@localhost ~]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
Retrieving https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-web-5.0.0-1.el7           ################################# [100%]
[root@localhost ~]# rpm -ql zabbix-web-5.0.0-1.el7.noarch.rpm
package zabbix-web-5.0.0-1.el7.noarch.rpm is not installed
[root@localhost ~]# rpm -qa|grep zabbix-web
zabbix-web-5.0.0-1.el7.noarch
[root@localhost ~]# rpm -ql zabbix-web-5.0.0-1.el7.noarch#软件包和安装软件的rpm包是二个概念
/usr/share/zabbix/report2.php
/usr/share/zabbix/report4.php
/usr/share/zabbix/robots.txt
.............................................
[root@localhost ~]# cp -r /usr/share/zabbix/ /data/blog/          #zabbix前端页面

安装zabbix(zabbix 前端页面连接数据库与zabbix-server)
zabbix5.0配置与使用_第8张图片
#php需要的配置
Minimum required size of PHP post is 16M (configuration option "post_max_size").
Minimum required limit on execution time of PHP scripts is 300 (configuration
option "max_execution_time").
Minimum required limit on input parse time for PHP scripts is 300 (configuration
option "max_input_time").
Time zone for PHP is not set (configuration parameter "date.timezone").
post_max_size 16M
max_execution_time 300
max_input_time 300
date.timezone
[root@m03 ~]# egrep -n '^(max_|date.timezone|post_max)' /etc/php.ini    #最后的配置
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
802:max_file_uploads = 20
877:date.timezone = Asia/Shanghai
[root@m03 ~]# systemctl reload php-fpm.service
zabbix5.0配置与使用_第9张图片

###########################php databases support报错的解决办法###################zabbix5.0配置与使用_第10张图片#安装依赖问题,网上很多解决办法是:
yum install -y php-mysql.x86_64
但是我的服务器会报(每台机子配置不同会有差异):
Error: php72w-common conflicts with php-common-5.4.16-48.el7.x86_64
这是因为之前 yum php72w_x86_64 安装的。所以后面这样装就会报错了。
必须用:
yum install -y php72w-mysql
安装成功后重启php和nginx服务即可。
systemctl restart nginx php-fpm
zabbix5.0配置与使用_第11张图片

############################################################################

web连接数据库
zabbix5.0配置与使用_第12张图片

zabbix页面连接 zabbix服务端
zabbix5.0配置与使用_第13张图片

zabbix5.0配置与使用_第14张图片

zabbix5.0配置与使用_第15张图片

 ​​​zabbix5.0配置与使用_第16张图片

zabbix5.0配置与使用_第17张图片

#web端添加zabbix-server主机
温馨提示:主机名称部分要填写客户端主机名或ip,如果是主机名主机名要能解析

zabbix5.0配置与使用_第18张图片

zabbix5.0配置与使用_第19张图片

此时ZBX为红色,利用agent来监控zabbix-server主机,即运行zabbix-agent2服务,此后变成绿色
[root@zabbix-server ~]# systemctl enable --now zabbix-agent2.service
[root@zabbix-server ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@zabbix-server ~]# systemctl list-unit-files|grep zabbix   #zabbix-server运行的服务
zabbix-agent2.service                         enabled 
zabbix-server.service                         enabled 

#############################################################################

需要运行zabbix-agent2后问题解决,服务端对本机的监控也是使用的agent2
[root@localhost web]# systemctl start zabbix-agent2.service
#############################################################################
 

Zabbix 中文乱码问题

解决zabbix默认图形乱码问题,修改zabbix字体
安装字体
[root@localhost ~]# yum install wqy-microhei-fonts -y
复制字体  #  \cp表示使用原生的cp命令,而不是别名的cp命令
[root@localhost ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf 
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

zabbix5.0配置与使用_第20张图片

监控一台客户端主机

1.Zabbix agent vs agent2
在任何一台服务器上面安装zabbix-agent zabbix-agent2

zabbix agent zabbix agent2
开发语言 C语言 Go语言,和C语言
性能 独立进程方式运行 1个进程多线程技术运行, 减少资源消耗占用较少tcp资源,能够承受更高并发

2.Zabbix Agent[2]监控流程
Linux安装与配置客户端
web添加与配置主机
Linux:在客户端安装zabbix-agent2(rpm)
LInux:修改配置文件 指定Server为zabbix服务端
web页面:配置-->主机中==添加主机与关联模板==
web页面:添加后检测与检查数据
1) 补充:zabbix服务端与客户端配置详解

#zabbix 服务端 说明
[root@m03 ~]# rpm -qa |grep zabbix
zabbix-release-5.0-1.el7.noarch #zabbix yum源软件包
zabbix-server-mysql-5.0.13-1.el7.x86_64 #server
zabbix-agent2-5.0.13-1.el7.x86_64 #agent2
#zabbix服务端
[root@m03 ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server #日志切割
/etc/zabbix/zabbix_server.conf #zabbix服务端配置文件
/usr/lib/systemd/system/zabbix-server.service #systemctl start/stop/restart调用配置文件
/usr/lib/tmpfiles.d/zabbix-server.conf #备份
/usr/lib/zabbix/alertscripts #报警使用的脚本 存放处
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql #zabbix 服务端命令
/usr/share/doc/zabbix-server-mysql-5.0.13/create.sql.gz #zabbix 建表语句
/usr/share/doc/zabbix-server-mysql-5.0.13/double.sql
/usr/share/man/man8/zabbix_server.8.gz #帮助文件
/var/log/zabbix #日志文件
/var/run/zabbix #pid文件存放

#zabbix_server.conf
[root@m03 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log #日志文件
LogFileSize=0 #日志文件大小 0不限制大小
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
##连接数据库部分 zabbix server 连接的数据库
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
#
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log #SNMP相关日志
Timeout=4 #超时时间
AlertScriptsPath=/usr/lib/zabbix/alertscripts #告警脚本的路径
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000 #慢查询日志 超过3000毫秒 select
/show
StatsAllowedIP=127.0.0.1 #谁可以查看服务端状态

zabbix-server配置文件详细传送门:1 Zabbix server

#zabbix-客户端配置文件详解
[root@m03 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1 #zabbix 服务端ip地址
ServerActive=127.0.0.1 #zabbix 客户端主动模式的服务端ip地址
Hostname=Zabbix server #客户端主机名 暂时不改
Include=/etc/zabbix/zabbix_agent2.d/*.conf #类似于nginx incloude功能
ControlSocket=/tmp/agent.sock

监控客户端
# 1. 在192.168.220.128主机安装客户端agent2
[root@localhost ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.0-1.el7.x86_64.rpm
# 2.修改客户端配置
[root@web01 ~]# grep ^Server= /etc/zabbix/zabbix_agent2.conf
Server=192.168.220.118
# 3. 启动
[root@web01 ~]# systemctl enable zabbix-agent2.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbixagent2.
[root@web01 ~]# systemctl start zabbix-agent2.service
# 4. 检查
[root@web01 ~]# ss -lntup |grep 10050
tcp    LISTEN     0      128    [::]:10050              [::]:*                   users:(("zabbix_agent2",pid=1919,fd=6))
[root@web01 ~]# ps -ef |grep zabbix
zabbix     1919      1  0 02:23 ?        00:00:06 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root       2361   1807  0 04:30 pts/0    00:00:00 grep --color=auto zabbix
[root@web01 ~]# telnet 192.168.220.118 10051
Trying 192.168.220.118...
Connected to 192.168.220.118.
Escape character is '^]'.
Connection closed by foreign host.

#############################################################################
zabbix-agent2配置:来源于chaoge视频
对时
yum install ntpdate -y
ntpdate cn.pool.ntp.org     #cn.pool.ntp.org是中国NTP服务器
时区的统一配置
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#设置开机自启动并现在start,等同于systemctl start 服务名&&systemctl enable 服务名 
systemctl enable --now 服务名     

grep -Ev '^#|^$' /etc/zabbix/zabbix-agent2.conf   #E使用扩展正则表达式,v匹配的不显示
 
查看主机名
[root@localhost ~]# hostname
localhost.localdomain
设置主机名#hostnamectl set-hostname 主机名
[root@localhost ~]# hostnamectl set-hostname zbx-agent04
#############################################################################

调试命令
zabbix_get命令是在server端(192.168.220.118)用来检查agent端(192.168.220.128)的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据,以便判断问题症结所在
[root@localhost ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-get-5.0.0-1.el7.x86_64.rpm
[root@localhost ~]# zabbix_agent2 -p| grep system.cpu.load
system.cpu.load[all,avg1]                     [s|0.000000]
[root@localhost ~]# zabbix_get -s 192.168.220.128 -p 10050 -k "system.cpu.load[all,avg1]"
0.020000
You have new mail in /var/spool/mail/root
[root@localhost ~]# zabbix_get -s 192.168.220.128 -k system.hostname
localhost.localdomain
 

zabbix创建自定义key

被监控主机192.168.220.128修改配置文件
##Format: UserParameter=,
[root@localhost ~]# cat /etc/zabbix/zabbix_agent2.d/log_user.conf 
#UserParameter=key,cmd
#UserParameter=check.ngx,sh /server/scripts/xxx.sh
UserParameter=log.user,who|wc -l
[root@localhost ~]# systemctl restart zabbix-agent2.service 
zabbix-agent2(192.168.220.128)客户机上测试   #客户端本地测试键值
[root@zabbix-agent2 ~]# zabbix_agent2 -t 'log.user'
log.user                [s|3]    #s表示类型 文字,3表示结果 键值的结果
zabbix-server192.168.220.118上测试
[root@localhost ~]# zabbix_get -s 192.168.220.128 -p 10050 -k log.user
3


#自定义带参数key(此处展示一个参数,多参数见自动化运维-全链路全架构无死角监控落地.pdf
[root@zabbix-server ~]# cat /etc/zabbix/zabbix_agent2.d/Custom_Key_Value.conf 
UserParameter=log.user,who|wc -l
UserParameter=login_user_check[*],lastlog|grep -w "$1"|awk '{print $$3}'
#如果使用自定义键值传参,awk取列的时候要使用$$列。如果没有传参,awk正常使用即可
[root@zabbix-server ~]# systemctl restart zabbix-agent2.service 
[root@zabbix-server ~]# zabbix_agent2 -t 'login_user_check[root]'
login_user_check[root]                        [s|192.168.220.1]
[root@zabbix-server ~]# zabbix_get -s '127.0.0.1' -k 'login_user_check[root]'
192.168.220.1

zabbix添加自定义模板
#给监控项设置标记,方便分类
温馨提示: zbx 5.x 及之前 应用集,zbx 6.x 叫标记。都是用于分类。
#配置监控项名字,填写:键值
信息类型:这里键值结果都是数字,选择数字(无正负即可),如果有小数选择浮点类型,如果是字符,选择字符串。
更新间隔:这里调整为5s秒,生产环境非必须尽量增长间隔比如1m,10m,1h等等。
net.tcp.port[,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

zabbix5.0配置与使用_第21张图片
zabbix5.0配置与使用_第22张图片
zabbix5.0配置与使用_第23张图片
测试
zabbix5.0配置与使用_第24张图片
zabbix5.0配置与使用_第25张图片
zabbix5.0配置与使用_第26张图片
主机链接模板
zabbix5.0配置与使用_第27张图片
仪表盘检测
如果配置模板内容错误导致主机获取不到数据,可以核对修改模板后从主机删除后重新链接模板

zabbix 5.0配置邮件报警  
在配置了监控项之后,一般模板都会自带监控的告警触发器,而目前要配置的是zabbix在这些触发器触发之后需要做的事情,就是要通过邮件通知到相关的人员
1.设置报警媒介类型 ---管理--报警媒介类型--创建媒体类型
zabbix5.0配置与使用_第28张图片

zabbix5.0配置与使用_第29张图片
 说明:smtp服务器(邮件服务器地址)我这里填写的是163邮件服务器地址,如果你用的是qq 则填写qq的服务器,如图 

zabbix5.0配置与使用_第30张图片

 测试一下是否能发送告警邮件到邮箱
zabbix5.0配置与使用_第31张图片

 测试成功后进行下一步:

2.配置用户告警媒介
管理-用户-admin 

zabbix5.0配置与使用_第32张图片

zabbix5.0配置与使用_第33张图片

 3.添加报警触发器
配置-动作

zabbix5.0配置与使用_第34张图片

 #############################################################################
动作可配置项

zabbix5.0配置与使用_第35张图片

zabbix5.0配置与使用_第36张图片

zabbix5.0配置与使用_第37张图片

zabbix5.0配置与使用_第38张图片

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

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

----------------------

恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
#############################################################################

应用服务监控    ##检查端口
[root@localhost ~]# zabbix_get -s '192.168.220.128' -p 10050 -k 'net.tcp.port[,80]'   #web服务器监控
0
[root@localhost ~]# zabbix_get -s '192.168.220.128' -p 10050 -k 'net.tcp.port[,10050]'
1

自动发现,自动注册,被动模式,主动模式(对agent2来说)

自动发现(agent2为被动模式):zabbix-server主动去发现所有的客户端,然后将客户端的信息登记在服务端的机器上
准备客户端  192.168.220.130
[root@centos8 ~]# systemctl is-active zabbix-agent2.service  #检查服务
active
zabbix服务端  192.168.220.118
[root@localhost ~]# zabbix_get -s '192.168.220.130' -p 10050 -k 'agent.ping'  #检查客户端
1             #客户端存活
自动注册(agent2为主动模式):zabbix-agent2主动上报自己的信息,发给zabbix-server
被动模式:对应agent2来说,就是server来找agent2拿数据
主动模式:agent2主动把数据发给server

自动发现配置
zabbix5.0配置与使用_第39张图片

zabbix5.0配置与使用_第40张图片

自动注册配置   #自动注册客户端配置文件最优配置见后面学习心得的配置说明
###客户端配置
[root@centos8 ~]# hostname
centos8
#修改agent2配置文件
[root@centos8 ~]# egrep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.118    #服务器ip
ServerActive=192.168.220.118   #主动注册需配置服务器ip
Hostname=centos8      ##主机名
HostnameItem=system.hostname     #添加此参数
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
[root@centos8 ~]# systemctl restart zabbix-agent2.service 
#验证通信  服务端进行
[root@localhost ~]# zabbix_get -s '192.168.220.130' -p 10050 -k 'agent.ping'
1
#web端配置
zabbix5.0配置与使用_第41张图片
zabbix5.0配置与使用_第42张图片

zabbix5.0配置与使用_第43张图片

zabbix5.0配置与使用_第44张图片

 ## 服务端日志监控
[root@localhost zabbix]# tail -f /var/log/zabbix/zabbix_server.log 
..................................................
  2258:20221026:141418.966 cannot send list of active checks to "192.168.220.130": host [centos8] not found
  2240:20221026:141433.988 enabling Zabbix agent checks on host "centos8": host became available
#客户端日志
[root@centos8 ~]# tail -f /var/log/zabbix/zabbix_agent2.log 

分布式监控

#分布式监控的作用
1.分担server的集中式压力
agent>proxy>server
2.多机房之间的网络延时问题
#分布式监控配置
主机信息
192.168.220.118    zabbix-server    #centos7.9
192.168.220.128    zabbix-proxy    #centos7.9
192.168.220.130    zabbix-agent2   #centos8.3
#选择性操作--可以将ip与host的对应关系添加到server端的/etc/hosts加速解析
[root@zabbix-server ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.220.118    zabbix-server    #centos7.9
192.168.220.128    zabbix-proxy    #centos7.9
192.168.220.130    zabbix-agent2   #centos8.3

zabbix_proxy主机配置 192.168.220.128
#设置主机名  
[root@localhost ~]# hostnamectl set-hostname zabbix-proxy
[root@localhost ~]# hostname
zabbix-proxy
[root@zabbix-proxy ~]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm   #添加源仓库zabbix.repo
[root@zabbix-proxy ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo   #国外源替换为清华源
[root@zabbix-proxy ~]# yum install zabbix-proxy-mysql zabbix-get -y
[root@zabbix-proxy ~]# yum install mariadb-server mariadb -y
[root@zabbix-proxy ~]# systemctl enable --now mariadb
[root@zabbix-proxy ~]# mysql <<'EOF'           #创建数据库与用户
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix_proxy@'localhost' identified by 'zabbix_proxy';
flush privileges;
EOF
#查看zabbix-proxy-mysql软件包的文件
[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql
/etc/logrotate.d/zabbix-proxy
/etc/zabbix/zabbix_proxy.conf
/usr/lib/systemd/system/zabbix-proxy.service
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.28
/usr/share/doc/zabbix-proxy-mysql-5.0.28/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-5.0.28/COPYING
/usr/share/doc/zabbix-proxy-mysql-5.0.28/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-5.0.28/NEWS
/usr/share/doc/zabbix-proxy-mysql-5.0.28/README
/usr/share/doc/zabbix-proxy-mysql-5.0.28/schema.sql.gz
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix
#导入数据
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.28/schema.sql.gz|mysql zabbix_proxy -uzabbix_proxy -pzabbix_proxy
#修改zabbix_proxy.conf配置文件,注释的地方
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf 
Server=192.168.220.118      #zabbix-server的ip
Hostname=zabbix-proxy       #zabbix-proxy主机名   
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy          #链接的数据库名
DBUser=zabbix_proxy          #数据库用户
DBPassword=zabbix_proxy      #数据库密码
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-proxy log]# systemctl enable --now zabbix-proxy.service    #开启服务
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log    #监控日志
  2786:20221027:021804.771 Starting Zabbix Proxy (active) [zabbix-proxy]. Zabbix 5.0.28 (revision b2b8e2ce82d).
  2786:20221027:021804.771 **** Enabled features ****
  2786:20221027:021804.771 SNMP monitoring:       YES
  2786:20221027:021804.771 IPMI monitoring:       YES
  2786:20221027:021804.771 Web monitoring:        YES
  2786:20221027:021804.771 VMware monitoring:     YES
  2786:20221027:021804.771 ODBC:                  YES
  2786:20221027:021804.772 SSH support:           YES
  2786:20221027:021804.772 IPv6 support:          YES
  2786:20221027:021804.772 TLS support:           YES
  2786:20221027:021804.772 **************************
  2786:20221027:021804.772 using configuration file: /etc/zabbix/zabbix_proxy.conf
  2786:20221027:021804.777 current database version (mandatory/optional): 05000000/05000007
  2786:20221027:021804.778 required mandatory version: 05000000
  2786:20221027:021804.786 proxy #0 started [main process]
  2791:20221027:021804.786 proxy #1 started [configuration syncer #1]
  2791:20221027:021804.800 received configuration data from server at "192.168.220.118", datalen 3662    #提示已连接

#web页面配置
zabbix5.0配置与使用_第45张图片

zabbix5.0配置与使用_第46张图片

zabbix5.0配置与使用_第47张图片连接后显示
zabbix5.0配置与使用_第48张图片注意:web页面可以看到最近出现时间(只要有时间即可),如果长时间没有出现,可以查看代理日志,如果持续出现not found 情况。可以重启下代理和服务端

zabbix_agent2主机配置 192.168.220.130  #centos8.3
#通过源(本次使用清华源)找到适用于centos8版本zabbix-agent2的rpm包
[root@zabbix-agent2 ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/8/x86_64/zabbix-agent2-5.0.0-1.el8.x86_64.rpm
#修改zabbix_agent2.conf配置文件,注释的地方
[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.128         #zabbix-proxy主机ip
ServerActive=192.168.220.128   #zabbix-proxy主机ip,用来自动注册的
Hostname=zabbix-agent2         #zabbix-agent2主机对应的hostname
HostnameItem=system.hostname   #添加此行
HostMetadataItem=system.uname  #添加此行 
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
[root@zabbix-agent2 ~]# systemctl enable --now zabbix-agent2  #开启服务
利用zabbix-proxy主机监测zabbix-agent2
[root@zabbix-proxy ~]# zabbix_get -s '192.168.220.130' -p 10050 -k 'agent.ping'
1
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log
2795:20221027:025141.924 cannot send list of active checks to "192.168.220.130": host [zabbix-agent2] not found
2797:20221027:025345.926 cannot send list of active checks to "192.168.220.130": host [zabbix-agent2] not found
如果长时间提示not found,重启zabbix-proxy主机
[root@zabbix-proxy ~]# systemctl restart zabbix-proxy.service
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log
2918:20221027:025814.299 enabling Zabbix agent checks on host "zabbix-agent2": host became available

#web页面配置
zabbix5.0配置与使用_第49张图片zabbix5.0配置与使用_第50张图片 zabbix5.0配置与使用_第51张图片 通过代理主机实现客户机的监控

参考资料:Zabbix 3.0 从入门到精通(zabbix使用详解) - 惨绿少年 - 博客园
#############################################################################
代理主机的监控不可以由agent代理程序监测,需要直接由zabbix-server监控
[root@zabbix-proxy zabbix]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.108                      #192.168.220.108为zabbix-server地址
ServerActive=192.168.220.108
Hostname=zabbix-proxy
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
#############################################################################
 

SNMP监控

使用范围

无法安装agent  很多前辈的监控软件都可以监控各种设备  都是通过snmp监控

snmp simple network manager protocol 简单网络管理协议

简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

安装snmp程序

yum -y install net-snmp net-snmp-utils

配置snmp程序

sed -i.ori '57a view systemview   included  .1' /etc/snmp/snmpd.conf   # -i.ori选项:修改文件并创建一个以ori为后缀的备份文件
systemctl start snmpd.service

测试snmp

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: m01

说明:

      # snmpwalk 类似 zabbix_get

   # -v 2c  指定使用snmp协议的版本  snmp分为v1 v2 v3

   # -c public  指定暗号

   # sysname  类似zabbix的key

在web界面进行配置

添加新的主机,注意使用snmp接口

zabbix5.0配置与使用_第52张图片

选择模板,注意使用SNMP的模板
zabbix5.0配置与使用_第53张图片

 添加完成就能够在主机中看到snmp监控对的主机

附录

    ##SNMP OID列表 监控需要用到的OID
    http://www.ttlsa.com/monitor/snmp-oid/
    cmdb 资源管理系统

监控硬件设备

https://www.bilibili.com/video/BV1rb411n7a8/

脚本的使用

zabbix5.0配置与使用_第54张图片
zabbix5.0配置与使用_第55张图片
zabbix5.0配置与使用_第56张图片
#自定义脚本与使用
zabbix5.0配置与使用_第57张图片

zabbix5.0配置与使用_第58张图片

zabbix5.0配置与使用_第59张图片

学习心得

zabbix5.0配置与使用_第60张图片

zabbix5.0配置与使用_第61张图片

 此处为自定义的图形
zabbix5.0配置与使用_第62张图片

 自动发现
指定ip
zabbix5.0配置与使用_第63张图片

区间ip
zabbix5.0配置与使用_第64张图片

自动注册
zabbix5.0配置与使用_第65张图片

[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.118
ServerActive=192.168.220.118
Hostname=zabbix-agent2
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
[root@zabbix-agent2 ~]# zabbix_agent2 -t 'system.uname'
system.uname                                  [s|Linux zabbix-agent2 4.18.0-240.22.1.el8_3.x86_64 #1.....] 

通过代理主机添加到服务端web的客户端在自定义监控项的时候,web端获取键值数据会比较慢(数据-proxy数据库-server数据库),若web长时间获取不到客户端数据可以尝试重启proxy服务
测试键值:

zabbix5.0配置与使用_第66张图片

通过zabbix-proxy自动注册的客户端

192.168.220.108     zabbix-proxy
192.168.220.128     zabbix-server
192.168.220.130     zabbix-agent2

192.168.220.128     zabbix-server
[root@zabbix-server ~]# systemctl list-units|grep zabbix
zabbix-agent2.service             loaded active running   Zabbix Agent 2
zabbix-server.service             loaded active running   Zabbix Server
[root@zabbix-server ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf 
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-server ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

192.168.220.108     zabbix-proxy
[root@zabbix-proxy ~]# systemctl list-units|grep zabbix
zabbix-agent2.service               loaded active running   Zabbix Agent 2
zabbix-proxy.service                loaded active running   Zabbix Proxy
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf 
Server=192.168.220.128
Hostname=zabbix-proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.128
ServerActive=192.168.220.128
Hostname=zabbix-proxy
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf

192.168.220.130    zabbix-agent2
[root@zabbix-agent2 ~]# systemctl list-units|grep zabbix
zabbix-agent2.service            loaded active running   Zabbix Agent 2  
[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.108
ServerActive=192.168.220.108
Hostname=zabbix-agent2
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]

web页面添加server

添加agent代理程序
zabbix5.0配置与使用_第67张图片
zabbix5.0配置与使用_第68张图片
等待。。。。
zabbix5.0配置与使用_第69张图片
自定义自动注册的主机名称,即修改/etc/zabbix/zabbix_agent2.conf内的hostname即可。现实环境中最好保持/etc/zabbix/zabbix_agent2.conf内的hostname与主机的hostname保持一致

192.168.220.108   zabbix-proxy
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf 
Server=192.168.220.128
Hostname=zabbix-proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.128
ServerActive=192.168.220.128
Hostname=ceshi            ######自定义hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

192.168.220.130   zabbix-agent2
[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.108
ServerActive=192.168.220.108
Hostname=zheshiyigeceshi           #####自定义hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]

zabbix5.0配置与使用_第70张图片
 

你可能感兴趣的:(zabbix,php,mysql,1024程序员节)