【zabbix】监控平台详解~

附:分布式拓扑图

logstash、filebeat都是收集日志;

elasticsearch存储日志;

kibana是展示日志、可视化

1、监控

1.1 监控的功能:

  • 在需要的时刻,提前预警即将出现的问题,避免故障发生
  • 实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速可以找到问题的根源, 从而及时处理问题
  • 可以实现网站,应用或者服务器的故障自愈, 保证高可用性
  • 以图形或易观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势

1.2 监控的内容

监控一切需要监控的资源,包括:服务器,网络设备,业务应用,云服务等

分类 实例内容
硬件监控 通过远程控制卡 : DeLL的iDRAC,HP的ILO和IBM的IMM等 使用IPMI(服务器管理口) 来完成物理设备的监控工作。通常必须要监控包括温度、硬盘故障等 路由器,交换机(端口,光衰,日志),打印机等
系统监控 cpu(命令:top) 内存(命令:free) 硬盘使用率(命令:df) 硬盘IO(命令:iostat) 系统负载 进程数(命令:ps aux)
服务监控 nginx,apache, php-fpm,mysql.memcache,redis ,tomcat,JVM,TCP连接数
性能监控 网站性能,服务器性能,数据库性能,存储性能
日志监控 系统会产生系统日志,应用程序会有应用的访问日志、错误日志,服务有运行日志等, 可以使用ELK来进行日志监控
安全监控 用户登录数,passwd文件变化,本地所有文件改动 Nginx+Lua编写一个WAF通过kibana可以图形化的展示不同的攻击类型的统计。
网络监控 IP,端口,URL,DB,ping包,IDC带宽网络流量,网络流出速率,网络入流量, 网络出流是.网络使用率,SMTP.POP3

1.3 监控软件

开源监控软件:cacti、nagios、zabbix、smokeping、open-falcon等。本章节主要介绍zabbix

2、zabbix ⭐⭐⭐⭐⭐

官网:www.zabbix.com/cn

zabbix是可视化界面,zabbix游离在所有的应用程序之外,它不对客户提供服务,而是对运维人员提供服务

如果是之前版本的zabbix 实现高可用,需要与keepalived结合

2.1 zabbix 功能

Zabbix 是一个高度成熟完善的网络监控解决方案,包含了下面多种功能:

  1. 数据收集
  2. 灵活的阈值定义
  3. 高度可配置化的告警
  4. 实时图形
  5. web监控功能
  6. 丰富的可视化选项
  7. 历史数据存储
  8. 配置简单
  9. 使用模板
  10. 网络发现
  11. 权限管理系统
  12. 二进制守护进程

2.2 zabbix 组件

主要介绍下面四大组件:

  1. server

    • zabbix server
    • web 前端页面
    • 数据库
  2. agent

  3. proxy

  4. java gateway

2.2.1 server 监控端(端口号10051)

基本的 Zabbix Server 的功能分解成为三个不同的组件。分别是:Zabbix server、Web前端和数据库。

2.2.1.1 zabbix server

  1. Zabbix server 是 Zabbix 软件的核心组件
  2. Zabbix Agent 向其报告可用性、系统完整性信息和统计信息。
  3. Zabbix server也是存储所有配置信息、统计信息和操作信息的核心存储库。
  4. Zabbix server也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。

2.2.1.2 WEB 前端界面

  • WEB 界面是 Zabbix server 的一部分,用于实现展示和配置的界面通常(但不一定)和 Zabbix server 运行在同一台物理机器上
  • 基�� Apache(Nginx)+PHP 实现,早期只支持LAMP架构,从Zabbix5.0开始支持LNMP。(有可能是apache,也可能是nginx,不固定)

2.2.1.3 数据库database

  • 所有配置信息以及 Zabbix 采集到的数据都被持久存储在数据库中
  • 可以支持MySQL、PostgreSQL、Oracle 等多种数据库

2.2.2 AGENT 被监控端/客户端(端口号10050)

  • Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序
  • 并将收集的数据发送给Zabbix server。从Zabbix5.0开始支技Zabbix Agent2

2.2.3 PROXY 代理端进程

  • Zabbix Proxy 可以代替 Zabbix Server 采集性能和可用性数据
  • Zabbix Proxy 在 Zabbix 的部署是可选部分,不是必须。
  • Zabbix Proxy 的部署可以很好的分担单个Zabbix server的负载

2.2.4 java gateway

Zabbix 要监控 tomcat 服务器和其它JAVA程序,需要使用 Java gateway 做为代理,才能从JAVA程序中获取数据

2.3 zabbix 术语

  1. 被监控: 即 Zabbix 监控的主机或设备

  2. 监控项item:即 Zabbix 监控的相关指标,比如:CPU利用率,内存使用率,TCP连接数等

    • 监控内容:cpu 利用率
  3. 应用集Application:为方便管理众多的监控项,可将多个同类型的监控项进行归类,纳入一个集合中,即应用集

  4. 触发器Trigger:相当于设置一个判断条件,比如设置一个阈值,如磁盘利用率超过80%等,如果达到这个阈值,就会触发告警。当触发条件后,会导致一个触发事件,这个事件会执行一个或多个动作

  5. 动作:就是处理动作,比如发邮件、也可以自愈等

  6. 告警:当触发器和处理动作二者结合起来时,就构成了的告警机制, 比如cpu的使用率达到80%以上,触发了报警动作,系统将自动发送一封邮件到指定的邮箱。然后运维可以及时的去处理此错误 host---> items---> triggers --> action

  7. Web 监测:对WEB服务进行检测,比如:访问指定网站是否可正常访问

  8. 模板 Template⭐⭐: 可以方便地应用于多个主机的一组实体的集合。而这些实体包括:

    • items(监控项)
    • applications(应用集)
    • triggers(触发器)
    • graphs(图形)
    • screens (聚合图形,自Zabbix 2.0起)

3、编译安装 zabbix

官方手册

www.zabbix.com/documentati...

  1. 安装依赖关系
js 复制代码
[root@7-2 ~]# yum install gcc libxml2-devel   net-snmp net-snmp-devel   curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel    libevent-devel    java-1.8.0-openjdk-devel  -y 
  1. 建立管理用户
js 复制代码
 [root@7-2 ~]# groupadd zabbix   //创建zabbix组用户
 [root@7-2 ~]# useradd -g zabbix zabbix
  1. 解压包
js 复制代码
 [root@7-2 ~]# cd /data    //切换目录
 ​
 ********加载软件安装包*******
 [root@7-2 data]# tar xf zabbix-4.0.30.tar.gz
 ​
 #解压
 [root@7-2 data]# cd zabbix-4.0.30/
 ​
 ******或者也可以下包*****
 #下载安装包
 wget https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.30.tar.gz
  1. 编译安装
js 复制代码
 ./configure --help   //可以查看帮助
 ​
 [root@7-2 zabbix-4.0.30]# ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java     //这一步指定检测环境,生成makefile文件;--prefix指定了软件的安装目录
 ​
 [root@7-2 zabbix-4.0.30]# make && make install
 ​
 [root@7-2 zabbix-4.0.30]#  cd /apps/zabbix_server    //切换到安装目录
 [root@7-2 zabbix_server]#  ls
 bin  etc  lib  sbin  share         //sbin是主进程,etc里面是配置文件
 [root@7-2 zabbix_server]#  cd sbin
 [root@7-2 sbin]#  ls
 zabbix_agentd  zabbix_java  zabbix_server
  1. 添加客户端
js 复制代码
 ./configure --prefix=/apps/zabbix --enable-agent
 在别的机器上   客户机需要安装的  客户端
  1. 安装mariadb

数据库可以安装在本地也可以分离

js 复制代码
 [root@7-2 ~]# yum install mariadb-server.x86_64  -y
 [root@7-2 ~]# systemctl start mariadb
 ​
 [root@7-2 ~]# mysql_secure_installation       //安全加固脚本,对应的就是那些yes或者no
 #输入当前密码,安装好还没有密码,直接回车
 #是否要设置root密码 y   abc123
 #是否移除匿名用户 y
 #是否不允许远程登录 y
 #是否移除测试数据 y
 #是否刷新 y
 ​
 ​
 [root@7-2 ~]# mysql -uroot -pabc123
 create database zabbix character set utf8 collate utf8_bin;    //collate排序规则
 create user zabbix@localhost identified by 'zabbix';
 grant all privileges on zabbix.* to zabbix@localhost;     //grant授权
 set global log_bin_trust_function_creators = 1;
 MariaDB [(none)]> show databases;
 +--------------------+
 | Database           |
 +--------------------+
 | information_schema |
 | mysql              |
 | performance_schema |
 | zabbix             |    //zabbix数据库
 +--------------------+
 ​
 MariaDB [(none)]> select user,host from mysql.user;
 +--------+-----------+
 | user   | host      |
 +--------+-----------+
 | root   | 127.0.0.1 |
 | root   | ::1       |
 | root   | localhost |
 | zabbix | localhost |    //zabbix用户
 +--------+-----------+
  1. 导入zabbix数据库文件
js 复制代码
 [root@localhost mysql]# cd /data/zabbix-4.0.30/database/mysql
 [root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql 
 [root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < images.sql 
 [root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < data.sql     //注意:data.sql 必须最后导入⭐
  1. 安装web apapche
js 复制代码
 [root@localhost mysql]# yum install httpd -y
 [root@localhost mysql]# systemctl start httpd
 [root@localhost mysql]# systemctl status httpd
 [root@localhost zabbix-4.0.30]# cd /data/zabbix-4.0.30/frontends/php/     //frontends是前端的意思
 ​
 [root@localhost php]# cp -a /data/zabbix-4.0.30/frontends/php/ /var/www/html/zabbix/     //后面的zabbix可以自己定义,也是要访问的页面。注意,前面最好写绝对路径
 # 将前端页面拷贝过去
  1. 修改zabbix配置
js 复制代码
 vim /apps/zabbix_server/etc/zabbix_server.conf
 118行  取消注释,修改密码  其他不用修改
 118  DBPassword= zabbix
 ​
 grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf
 LogFile=/tmp/zabbix_server.log
 DBName=zabbix_server
 DBUser=zabbix
 DBPassword=zabbix
 LogSlowQueries=3000
  1. 使用绝对路径,启动客户端和服务端
js 复制代码
 /apps/zabbix_server/sbin/zabbix_server    #服务端
 /apps/zabbix_server/sbin/zabbix_agentd    #客户端
  1. 升级php 版本
js 复制代码
 打开浏览器 访问  192.168.125.120/zabbix     //ip后面不需要加冒号!!!
 ​
 ​
 yum  install php-gettext php-xml php-net-socket php-gd php-mysql  -y
 ​
 ​
 ​
 修改php 软件的配置
 vim /etc/php.ini
 384 max_execution_time = 300
 394 max_input_time = 600
 672 post_max_size = 16M
 878 date.timezone = Asia/Shanghai
 ​
 ​
 systemctl  restart  httpd

会出现以下报错, 按上面的方法 安装软件,修改配置

12.下载配置文件

js 复制代码
 [root@7-2 php]# cd /var/www/html/zabbix/conf/
 `第一种方法:`
 *******加载zabbix.conf.php*******
 [root@7-2 conf]# ls
 maintenance.inc.php  zabbix.conf.php  zabbix.conf.php.example     //指定目录下,必须要有zabbix.conf.php文件,可以touch个同名的空文件,但是必须要有,不然会报错。
 ​
 `第二种方法:`
 cp zabbix.conf.php   /var/www/html/zabbix/conf/ -a
 复制好了  直接刷新页面!!!

13.准备service 文件

js 复制代码
 [root@localhost system]# pkill zabbix_server    //先停止 zabbix-server⭐
 ​
 [root@localhost system]# vim /usr/lib/systemd/system/zabbix-server.service
 ​
 [Unit]
 Description=Zabbix Server
 After=syslog.target
 After=network.target
 ​
 [Service]
 Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_server.conf"
 EnvironmentFile=-/etc/default/zabbix-server
 Type=forking
 Restart=on-failure
 PIDFile=/tmp/zabbix_server.pid
 KillMode=control-group
 ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE
 ExecStop=/bin/kill -SIGTERM $MAINPID
 RestartSec=10s
 TimeoutSec=infinity
 User=zabbix
 Group=zabbix
 ​
 [Install]
 WantedBy=multi-user.target
 ​
 ​
 [root@localhost ~]# chown zabbix:zabbix  /apps/zabbix_server/ -R
 [root@localhost system]# systemctl daemon-reload
 [root@localhost system]# systemctl start zabbix-server.service
 [root@localhost system]# systemctl status zabbix-server.service
 ​
 /apps/zabbix_server/sbin/zabbix_agentd    //绝对路径

14.修改中文

  1. 修改字体 以及图表的中文乱码问题

去win主机的c盘

C:\Windows\Fonts

bash 复制代码
 # pwd
 cd /var/www/html/zabbix/assets/fonts   //上传楷体字体文件到这里
 ********上传SIMKAI.ttf*******
 ​
 # chown zabbix.zabbix ./* #更改权限为zabbix用户和组
 # ll
 总用量 12260
 drwxr-xr-x 2 zabbix zabbix 4096 12月 14 11:28 ./
 drwxr-xr-x 5 zabbix zabbix 4096 11月 25 17:06 ../
 -rw-r--r-- 1 zabbix zabbix 756072 11月 25 17:05 DejaVuSans.ttf
 -rw-r--r-- 1 root root 11787328 3月 2 2019 simkai.ttf
 #后缀必须小写 ttf
 ​
 #修改配置文件中的 字体设置
 vim /var/www/html/zabbix/include/defines.inc.php
 ​
 #72 define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
 72 define('ZBX_GRAPH_FONT_NAME', 'SIMKAI');  // font file name
 ​
 ​
 #113 define('ZBX_FONT_NAME', 'DejaVuSans');
 113 define('ZBX_FONT_NAME', 'SIMKAI');     //注意区分字母大小写,否则效果出不来

4、配置文件

官方源安装:配置文件位置

配置文件 位置
server 服务端 /etc/zabbix/zabbix_server.conf
agent 客户端 /etc/zabbix/zabbix_agentd.conf

5、主动模式和被动模式⭐⭐⭐

被动模式,是默认的模式。

server和proxy都是区分主动和被动,都是相对于agent而言。

  1. 不含proxy(proxy不是必选项)

    • 主动模式:agent主动推送给server服务端
    • 被动模式:server或者proxy,去拉取agent。默认是被动模式。
  1. 包含proxy

    • 主动模式:agent主动连接proxy,proxy再转给server
    • 被动模式:agent被动等待proxy连接,proxy再转给server

注意:使用proxy,建议不要和server使用同一个数据库,这样容易造成数据丢失。

小拓展:访问流程

java客户端先访问java gateway,后面如果有proxy,网关就将访问交给proxy,如果没有proxy,直接就给server服务器。

6、实验

6.1 实验一:添加主机(被动模式)

默认的被动模式

实验环境:

7-2 server 192.168.125.120

7-3 agent 192.168.125.130

6.1.1 安装zabbix-agent客户端

  1. 安装依赖环境
ini 复制代码
 [root@node2 ~]# yum install gcc libxml2-devel   net-snmp net-snmp-devel   curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel    libevent-devel    java-1.8.0-openjdk-devel  -y
  1. 解压安装包 编译
csharp 复制代码
 [root@node2 ~]# cd /data
 ********加载zabbix-4.0.30.tar.gz安装包***********
 [root@node2 data]# tar xf zabbix-4.0.30.tar.gz 
 [root@node2 data]# cd zabbix-4.0.30/
 [root@node2 zabbix-4.0.30]# ./configure --prefix=/apps/zabbix --enable-agent
 [root@node2 zabbix-4.0.30]# make -j2 && make install
  1. 准备service文件
js 复制代码
 [root@node2 zabbix-4.0.30]# useradd -s /sbin/nologin  zabbix    //新建用户
 ​
 [root@node2 zabbix-4.0.30]# vim /usr/lib/systemd/system/zabbix-agent.service 
 [Unit]
 Description=Zabbix Agent
 After=syslog.target
 After=network.target
 [Service]
 Environment="CONFFILE=/apps/zabbix/etc/zabbix_agentd.conf"
 EnvironmentFile=-/etc/default/zabbix-agent
 Type=forking
 Restart=on-failure
 PIDFile=/tmp/zabbix_agentd.pid
 KillMode=control-group
 ExecStart=/apps/zabbix/sbin/zabbix_agentd -c $CONFFILE
 ExecStop=/bin/kill -SIGTERM $MAINPID
 RestartSec=10s
 User=zabbix
 Group=zabbix
 [Install]
 WantedBy=multi-user.target
 ​
 ​
 ​
 ​
 [root@node2 zabbix-4.0.30]#systemctl daemon-reload
 [root@node2 zabbix-4.0.30]#systemctl start  zabbix-agent.service
 [root@node2 zabbix-4.0.30]#systemctl status zabbix-agent.service
 ​
 [root@node2 zabbix-4.0.30]#yum install tree -y
 [root@node2 zabbix-4.0.30]#cd /apps/zabbix
 [root@7-5 zabbix]# tree
 .
 ├── bin
 │   ├── zabbix_get
 │   └── zabbix_sender
 ├── etc
 │   ├── zabbix_agentd.conf     //配置文件
 │   └── zabbix_agentd.conf.d   //子配置文件
 ├── lib
 │   └── modules
 ├── sbin
 │   └── zabbix_agentd
 └── share
     └── man
         ├── man1
         │   ├── zabbix_get.1
         │   └── zabbix_sender.1
         └── man8
             └── zabbix_agentd.8
 ​
 10 directories, 7 files

6.1.2 修改配置文件

js 复制代码
 [root@7-5 etc]# cd /apps/zabbix/etc
 [root@7-5 etc]# cp zabbix_agentd.conf zabbix_agentd.conf.bak   //备份
 [root@node2 etc]#vim  zabbix_agentd.conf
 94 Server=192.168.125.120   #指向当前zabbix server
 ##### Passive checks related #被动检查相关配置
 ​
 ​
 ### Option: ListenPort
 ListenPort=10050 #监听端口  默认的无需修改
 ​
 ​
 119 StartAgents=3
 #启动3个进程收集数据
 ​
 146 Hostname=192.168.125.130      //对应图形化界面中的主机名称⭐⭐⭐⭐
 #指定名称 一般使用 IP地址, 等会需要使用
 ​
 [root@7-5 etc]# grep '^[a-Z]' zabbix_agentd.conf   //注意是以小a到大Z开头的,或者也可以使用[[:alpha:]],代表任意字母
 LogFile=/tmp/zabbix_agentd.log
 Server=192.168.125.120
 ServerActive=127.0.0.1
 Hostname=192.168.125.130
 ​
 [root@node2 zabbix-4.0.30]#systemctl restart  zabbix-agent.service
 [root@node2 etc]#systemctl status zabbix-agent.service 
 # 可以看到三个监听线程
 ● zabbix-agent.service - Zabbix Agent
    Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
    Active: active (running) since 五 2024-07-19 15:55:42 CST; 11s ago
   Process: 6348 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
   Process: 6350 ExecStart=/apps/zabbix/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
  Main PID: 6353 (zabbix_agentd)
    CGroup: /system.slice/zabbix-agent.service
            ├─6353 /apps/zabbix/sbin/zabbix_agentd -c apps/zabbix/etc/zabbix_agentd.conf
            ├─6354 /apps/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]
            ├─6355 /apps/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]
            ├─6356 /apps/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]
            ├─6357 /apps/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]
            └─6358 /apps/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
 ​
 7月 19 15:55:42 node2 systemd[1]: Starting Zabbix Agent...
 7月 19 15:55:42 node2 systemd[1]: Started Zabbix Agent.

6.1.3 web页面主控端添加被监控主机

在zabbix web管理界面添加上一步安装了zabbix agent的linux主机。

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

2. 添加模板

不添加模板是不会监控的

  1. 选择内置模板
  1. ZBX变绿,证明添加主机实验成功。

6.1.4 使用zabbix_get命令获取数据

除了使用上述的图形化界面收集数据,也可以使用zabbix_get命令去测试

js 复制代码
 server端:
 [root@localhost data]#/apps/zabbix_server/bin/zabbix_get -s 192.168.125.130 -p 10050 -k "agent.ping"      //注意,agent和ping中间连接符是.点
 1    //代表没问题,主机之间互通

zabbix_get选项:

选项 含义
-s 指明主机
-k 指明监控项,-k 后面的就是键值
-p 端口

6.2 实验二:主动模式

0是主动,1是被动,默认是主动0

谁主动去连接别人,谁就会主动开启随机端口。 比如7-1去连7-2,7-2的是固定端口,7-1会开启随机端口

实验环境:

7-2 server 192.168.125.120

7-1 agent主动 192.168.125.100

6.2.1 安装zabbix-agent客户端

  1. 安装依赖环境
js 复制代码
[root@node2 ~]# yum install gcc libxml2-devel   net-snmp net-snmp-devel   curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel    libevent-devel    java-1.8.0-openjdk-devel  -y
  1. 解压安装包 编译
js 复制代码
 [root@node2 ~]# cd /data
 ********加载zabbix-4.0.30.tar.gz安装包***********
 [root@node2 data]# tar xf zabbix-4.0.30.tar.gz 
 [root@node2 data]# cd zabbix-4.0.30/
 [root@node2 zabbix-4.0.30]# ./configure --prefix=/apps/zabbix --enable-agent
 [root@node2 zabbix-4.0.30]# make -j2 && make install
  1. 准备service文件
js 复制代码
 [root@node2 zabbix-4.0.30]# useradd -s /sbin/nologin  zabbix    //新建用户
 ​
 [root@node2 zabbix-4.0.30]# vim /usr/lib/systemd/system/zabbix-agent.service 
 [Unit]
 Description=Zabbix Agent
 After=syslog.target
 After=network.target
 [Service]
 Environment="CONFFILE=/apps/zabbix/etc/zabbix_agentd.conf"
 EnvironmentFile=-/etc/default/zabbix-agent
 Type=forking
 Restart=on-failure
 PIDFile=/tmp/zabbix_agentd.pid
 KillMode=control-group
 ExecStart=/apps/zabbix/sbin/zabbix_agentd -c $CONFFILE
 ExecStop=/bin/kill -SIGTERM $MAINPID
 RestartSec=10s
 User=zabbix
 Group=zabbix
 [Install]
 WantedBy=multi-user.target
 ​
 ​
 ​
 ​
 [root@node2 zabbix-4.0.30]#systemctl daemon-reload
 [root@node2 zabbix-4.0.30]#systemctl start  zabbix-agent.service
 [root@node2 zabbix-4.0.30]#systemctl status zabbix-agent.service

6.2.2 修改配置文件

修改zabbix agent为主动模式

js 复制代码
 [root@node2 zabbix]#grep  -in "^[a-Z]"  /apps/zabbix/etc/zabbix_agentd.conf
 30:LogFile=/tmp/zabbix_agentd.log
 94:Server=192.168.125.120  //谁可以来获取数据
 119:StartAgents=3
 135:ServerActive=192.168.125.120    //谁是主,谁是我的server⭐
 146:Hostname=192.168.125.100     //本机的主机名
 ​
 ​
 [root@node2 zabbix]#vim  /apps/zabbix/etc/zabbix_agentd.conf
 修改第135  作为
 94:Server=192.168.125.120      #谁可以来获取数据
 135:ServerActive=192.168.125.120  #主动模式的zabbix server地址,这个设置相当于设置master是谁,就是server端
 146:Hostname=192.168.125.100      #当前主机名字
 ​
 [root@node2 zabbix]#systemctl restart   zabbix-agent.service

6.2.3 生成主动模式模板

所有的模板基本上都是被动模式的模板,因为默认就是被动模式。

  1. 将模板改成主动模式的,可以使用克隆
  1. 点击全克隆
  1. 修改模板名称,后缀可以加上active(主动)

4. 点监控项,修改多个监控项。可以将类型改为主动、修改时间等,最后批量更新。

7、自定义模板⭐⭐⭐⭐⭐

自定义模板的前提是,必须要安装zabbix的server端和agent端。

7.1 修改agent配置文件,添加自定义项

js 复制代码
 [root@localhost zabbix]# vim  /apps/zabbix/etc/zabbix_agentd.conf
 ​
 283 ### Option: UserParameter
 284 #       User-defined parameter to monitor. There can be several user-defined parameters.
 285 #       Format: UserParameter=<key>,<shell command>
 286 #       See 'zabbix_agentd' directory for examples.
 287 #
 288 # Mandatory: no
 289 # Default:
 290 # UserParameter=
 ​
 UserParameter=test,/usr/bin/echo  hello     //key值是前面的test是参数名,echo hello是参数值
 #修改290 行或者新加一行  命令最好绝对路径
 ​
 [root@localhost zabbix]# systemctl restart   zabbix-agent.service 

7.2 zabbix_get验证

在web页面之前,可以先在虚拟机中进行验证。因为web页面数据加载比较慢

js 复制代码
 server端:
 `软链接:`
 [root@localhost zabbix]# ln -s /apps/zabbix_server/bin/zabbix_get /usr/bin   //做软链接,后面就可以直接使用zabbix_get命令
 ​
 `命令验证:`
 [root@localhost data]#/apps/zabbix_server/bin/zabbix_get -s 192.168.125.130 -p 10050 -k "test"
 hello

7.3 添加脚本

js 复制代码
 agent端:
 [root@localhost data]# vim tcp.sh
 #!/bin/bash
 num=$1
 if [ $num == "cpu" ];then
  echo 88
 fi

验证:

js 复制代码
 server端:
 [root@localhost data]# /apps/zabbix_server/bin/zabbix_get -s 192.168.125.xxx -p 10050 -k "test[cpu]"

7.4 web界面 添加模板

新建模板:模板名称(不能有中文)

7.5 应用集

应用集不重要,可写可不写

7.6 监控项

添加监控项:监控项名称可以有中文

7.7 触发器

触发器会设置一个阈值,当达到这个阈值时,就会触发告警,告警也可以按照事件的严重性进行设置。

7.8 添加图形

创建图形,一个模板内会有多个监控项和触发器,但是可以只有一个图形。

重点:zabbix怎么自定义模板?⭐

js 复制代码
 模板由应用集、监控项、触发器、图形组成。
 1、首先,修改agent配置文件,加入监控项的键
 2、在server端使用zabbix_get,测试是否能获取到数据
 3、在web页面添加模板
 4、在模板中设置监控项、触发器、图形等

8、重点总结:

1、五大性能命令

  • cpu(命令:top)
  • 内存(命令:free)
  • 硬盘使用率(命令:df)
  • 硬盘IO(命令:iostat)
  • 进程数(命令:ps aux)

2、zabbix 端口号

  • server 10051
  • agent 10050
  • java网关 10052

3、zabbix

  • server 服务端
  • agent 客户端
  • java-gateway 检测java程序
  • proxy 代理

4、主动模式和被动模式

主动模式和被动模式,都是相对于agent而言

  • 当不含proxy时

    • 主动:agent主动连接server
    • 被动:agent被动等待server连接
  • 当包含proxy时

    • 主动:agent主动连接proxy,proxy再转给server

    • 被动:agent被动等待proxy连接,proxy再转给server

    公司一般用主动模式:把监控项改成主动,把server-active改成server的ip。被动模式对server压力太大了。

5、重点:zabbix怎么自定义模板?⭐

vbscript 复制代码
 模板由应用集、监控项、触发器、图形组成。
 1、首先,修改agent配置文件,加入监控项的键
 2、在server端使用zabbix_get,测试是否能获取到数据
 3、在web页面添加模板
 4、在模板中设置监控项、触发器、图形等

6、检测验证的命令

zabbix_get

snmpwalk是SNMP的一个工具

7、最常问的问题:怎么发现zabbix

  • API接口
  • 手动添加
  • 自动发现

8、怎么监控mysql主从复制

用zabbix去监控从节点的io线程和sql线程

相关推荐
小黑爱编程19 分钟前
【LInux】HTTPS是如何实现安全传输的
linux·安全·https
BeyondESH24 分钟前
Linux线程同步—竞态条件和互斥锁(C语言)
linux·服务器·c++
鱼饼6号39 分钟前
Prometheus 上手指南
linux·运维·centos·prometheus
Asher Gu1 小时前
Linux系统编程入门 | 模拟实现 ls -l 命令
linux
c无序1 小时前
【Linux进程控制】进程程序替换
linux
小安运维日记3 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
CoolTiger、6 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
学习3人组7 小时前
CentOS 中配置 OpenJDK以及多版本管理
linux·运维·centos
厨 神8 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku0668 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构