监控平台zabbix介绍与部署

为什么要做监控

作为一个运维,需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等,利用监控系统的数据去了解项目上线发布的结果和健康状态。

利用一个优秀的监控软件,我们可以:

  • 通过一个友好的界面进行浏览整个项目所有的服务器的运行状态(并且是实时展示)
  • 可以在 Web 前端方便的查看监控数据
  • 可以回溯寻找事故发生时系统的问题和报警情况

一个完整的项目:

业务架构:

客户端 ——> 防火墙 ——> 负载均衡层(四层、七层 LVS/HAProxy/nginx)——> Web缓存/应用层(nginx、tomcat)——> 业务逻辑层(php/java动态应用服务) ——> 数据缓存/持久层(redis/mysql)

运维架构:

运维客户端 ——> 跳板机/堡垒机(jumpserver/VPN)——> 监控系统(zabbix、prometheus)、日志系统(ELK、Loki)、存储系统(NFS、Ceph、NAS、SAN)、自动化运维平台(Ansible)、自动发布系统(CI/CD jenkins gitlab)


Zabbix组件   C/S架构:

服务端:

zabbix server(端口10051):zabbix服务端进程,用于接收代理端发来的监控指标数据,配置和管理zabbix应用程序,也是监控系统的告警中心(通过监控项告警触发配置实现)
zabbix database:持久化存储配置信息和监控指标数据(支持mysql postgresql oracle db2 tsdb等)
zabbix web:用于zabbix服务端配置管理界面和监控数据的UI界面的展示(支持LAMP/LNMP)

客户代理端:

zabbix agent(端口10050):部署在被监控的主机上,采集监控指标数据,并发送给zabbix server(数据采集支持主动模式和被动模式)     
  • 主动模式:zabbix agent 主动向 zabbix server 请求监控项列表,并返回监控项所需要采集的监控指标数据给 zabbix server
  •  被动模式:zabbix agent 被动接收 zabbix server 请求的监控指令,zabbix agent 再返回监控项所需要的监控指标数据给 zabbix server
zabbix java gateway:用于获取从通过在JAVA应用暴露的JXM远程端口采集的监控指标数据
zabbix proxy:zabbix代理端进程,部署在zabbix server与zabbix agent之间,代替zabbix server接收zabbix agent发来的监控指标数据并存储在本地数据库,汇总后再转发给zabbix server, 从而可以分担zabbix server的集中式负载压力


Zabbix工作原理:

zabbix agent 等代理端会定期采集被监控主机的指标数据并发送给 zabbix server

zabbix server 接收数据后会存储带 zabbix database 中

管理员可基于 zabbix web 在浏览器页面查看监控数据的图像


如何自定义监控模板?

1)先明确获取监控指标数据的命令或脚本
2)在被监控主机的配置文件目录中(/etc/zabbix/zabbix_agent2.d/)创建以 .conf 为结尾的监控项配置文件,在配置文件文件里自定义监控项的键值,再重载zabbix-agent2服务
   键值配置格式:UserParameter=<键名>,<获取值的命令/脚本路径>
3)在zabbix服务端Web管理页面中依次添加 模板 - 监控项 - 触发器 - 图形
4)将监控模板和被监控主机相关联


配置邮件报警通知:

1)在zabbix服务端Web管理页面【管理】-【媒介】中创建 报警媒介类型 和 消息模板
2)在【用户设置】-【配置】-【报警媒介】中设置 邮件接收人 启用时间 严重级别
3)在【配置】-【动作】-【触发器动作】创建 动作,设置 动作条件 操作细节
4)测试验证

 部署zabbix:

 由于centoss镜像无法使用,可使用以下命令切换阿里云镜像使用(这里先不使用)

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 
mv /etc/yum.repos.d/local.repo /etc/yum.repos.d/repo.bak/

yum clean all && yum makecache

初始化操作(从这里开始) :

systemctl disable --now firewalld

setenforce 0

vim /etc/selinux/config
————————————————————————————
SELINUX=disabled
————————————————————————————

部署 Nginx + PHP 环境并测试 :

mount /dev/sr0 /mnt
df
cd /etc/yum.repos.d/
mv *.repo repo.bak
vim local.repo
______________________________________
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
______________________________________

yum clean all && yum makecache
 df -h
mount /dev/sr0 /mnt/
cd /etc/yum.repos.d/
ls
vim local.repo
______________________________________
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
______________________________________

cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

yum install -y nginx
cd /opt/
ls 
rm -rf *
mkdir php
cd php/
tar php.tar.gz  //传文件包php
tar xf  php.tar.gz
ls
cd .. 
createrepo php/  #自动生成yum数据库依赖关系
cd php/
ls
vim /etc/yum.repos.d/local.repo
______________________________________
[local]
name=local
baseurl=file:///opt/php
enabled=1
gpgcheck=0
______________________________________

yum clean all && yum makecache 

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#安装 php
yum install -y epel-release

yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-ldap php72w-bcmath
修改环境配置
2)修改nginx配置
[root@l1 php]# vim /etc/nginx/conf.d/default.conf

server_name  zbx.zx.com;   #3行
root   /var/www/zbx;  #8行
index   index.php index.html index.htm;  #9行
打开29-35行的配置
root           /var/www/zbx;   #30行
fastcgi_param  SCRIPT_FILENAME  /var/www/zbx$fastcgi_script_name;   #33行

nginx -t

systemctl start nginx
[root@l1 php]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@l1 php]# systemctl start nginx
[root@l1 php]# 

白色底色晃眼,这里换黑了奥 

3)修改php设置
[root@l1 ~]# vim /etc/php-fpm.d/www.conf
————————————————————————————————————
user = nginx    #运行用户都修改为nginx

group = nginx
————————————————————————————————————
 

[root@l1 yum.repos.d]# cd /etc/yum.repos.d/

——————————————————————————————————————————————————
max_execution_time = 300		# 368行
max_input_time = 600			# 378行
post_max_size = 80M				# 656行
date.timezone = Asia/Shanghai	# 877行
——————————————————————————————————————————————————

[root@l1 yum.repos.d]# systemctl start php-fpm.service
[root@l1 yum.repos.d]# 

 4)创建目录和测试文件

mkdir -p /var/www/zbx

vim /var/www/zbx/index.php

——————————————————————————————
<?php
phpinfo();
?>
——————————————————————————————
[root@l1 yum.repos.d]# mkdir -p /var/www/zbx   //创建根目录
[root@l1 yum.repos.d]# vim /var/www/zbx/index.php   //创建测试文件
[root@l1 yum.repos.d]# 

5)测试访问

 浏览器访问

也可以直接ip验证,不做域名解析

(2) 部署数据库

要求 MySQL 5.7 或 Mariadb 10.5 及以上版本

 cat > /etc/yum.repos.d/mariadb.repo << EOF
> [mariadb]
> name = MariaDB
> baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
> gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
> gpgcheck = 1
> enabled=1
> EOF

yum install -y mariadb-server mariadb

systemctl start mariadb

mysql_secure_installation
//##回车 --> n --> Y 设置密码abc123 然后一路Y
[root@l1 yum.repos.d]# cat > /etc/yum.repos.d/mariadb.repo << EOF
> [mariadb]
> name = MariaDB
> baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
> gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
> gpgcheck = 1
> enabled=1
> EOF
[root@l1 yum.repos.d]# yum install -y mariadb-server mariadb
[root@l1 yum.repos.d]# systemctl start mariadb
[root@l1 yum.repos.d]# 
[root@l1 yum.repos.d]# mysql_secure_installation

mysql -u root -pabc123

CREATE DATABASE zabbix character set utf8 collate utf8_bin;  #创建数据库并指定字符集

GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix'; #创建 zabbix 数据库用户并授权

GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';

flush privileges;

show databases;  //显示数据库

[root@l1 yum.repos.d]# mysql -u root -pabc123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.5.25-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.001 sec)

MariaDB [(none)]> 

 (3) 向数据库导入 zabbix 数据

cd /opt
ls
tar xf zabbix-6.0.31.tar.gz

cd zabbix-6.0.31

cd database/mysql/

ls *.sql

for i in schema.sql images.sql data.sql double.sql history_pk_prepare.sql; do mysql -u root -pabc123 zabbix < $i; done

[root@l1 yum.repos.d]# cd /opt
[root@l1 opt]# ls
php
[root@l1 opt]# rz -E
rz waiting to receive.
[root@l1 opt]# tar xf zabbix-6.0.31.tar.gz
[root@l1 opt]# 
[root@l1 opt]# ls
php  zabbix-6.0.31  zabbix-6.0.31.tar.gz
[root@l1 opt]# cd zabbix-6.0.31
[root@l1 zabbix-6.0.31]# cd database/mysql/
[root@l1 mysql]# 
[root@l1 mysql]# ls *.sql
data.sql  double.sql  history_pk_prepare.sql  images.sql  schema.sql
[root@l1 mysql]# for i in schema.sql images.sql data.sql double.sql history_pk_prepare.sql; do mysql -u root -pabc123 zabbix < $i; done
[root@l1 mysql]# 

  (4)编译安装 zabbix Server 服务端

yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make

useradd -s /sbin/nologin -M zabbix

cd /opt/zabbix-6.0.31/

./configure \
 --sysconfdir=/etc/zabbix/ \
 --enable-server \
 --with-mysql \
 --with-net-snmp \
 --with-libxml2 \
 --with-ssh2 \
 --with-openipmi \
 --with-zlib \
 --with-libpthread \
 --with-libevent \
 --with-openssl \
 --with-ldap \
 --with-libcurl \
 --with-libpcre

make install

zabbix_server --version  ##检查版本


[root@l1 mysql]# yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make
[root@l1 mysql]# useradd -s /sbin/nologin -M zabbix
[root@l1 mysql]# cd /opt/zabbix-6.0.31/
[root@l1 zabbix-6.0.31]# ./configure \
 --sysconfdir=/etc/zabbix/ \
 --enable-server \
 --with-mysql \
 --with-net-snmp \
 --with-libxml2 \
 --with-ssh2 \
 --with-openipmi \
 --with-zlib \
 --with-libpthread \
 --with-libevent \
 --with-openssl \
 --with-ldap \
 --with-libcurl \
 --with-libpcre
[root@l1 zabbix-6.0.31]# make install
[root@l1 zabbix-6.0.31]#zabbix_server --version   ##检查版本
zabbix_server (Zabbix) 6.0.31
Revision b6d93755a1b 17 June 2024, compilation time: Jul  3 2024 01:10:52
 
Copyright (C) 2024 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.
 
This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).
 
Compiled with OpenSSL 1.0.2k-fips  26 Jan 2017
Running with OpenSSL 1.0.2k-fips  26 Jan 2017
[root@l1 zabbix-6.0.31]#
 (5) 修改 zabbix server 配置文件,修改数据库的密码
vim /etc/zabbix/zabbix_server.conf

--------------------------------------------------------------------------
LogFile=/var/log/zabbix_server.log		# 38行,指定 zabbix 日志路径
DBPassword=zabbix					# 123行,指定 zabbix 数据库的密码

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

cat > /usr/lib/systemd/system/zabbix-server.service << EOF
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
 
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
 
[Install]
WantedBy=multi-user.target
EOF

 

[root@l1 ~]# vim /etc/zabbix/zabbix_server.conf
--------------------------------------------------------------------------
LogFile=/var/log/zabbix_server.log		# 38行,指定 zabbix 日志路径
DBPassword=zabbix					# 123行,指定 zabbix 数据库的密码

--------------------------------------------------------------------------
[root@l1 ~]# cat > /usr/lib/systemd/system/zabbix-server.service << EOF
> [Unit]
> Description=Zabbix Server with MySQL DB
> After=syslog.target network.target mysqld.service
>  
> [Service]
> Type=simple
> ExecStart=/usr/local/sbin/zabbix_server -f
> User=zabbix
>  
> [Install]
> WantedBy=multi-user.target
> EOF
[root@l1 ~]# 
[root@l1 ~]# 
systemctl daemon-reload
touch /var/log/zabbix_server.log
chown zabbix.zabbix /var/log/zabbix_server.log
systemctl start zabbix-server.service
netstat -lntp | grep 10051

[root@l1 ~]# systemctl daemon-reload
[root@l1 ~]# touch /var/log/zabbix_server.log
[root@l1 ~]# chown zabbix.zabbix /var/log/zabbix_server.log
[root@l1 ~]# systemctl start zabbix-server.service
[root@l1 ~]# netstat -lntp | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      24114/zabbix_server 

(6)部署 Web 前端,进行访问

cd /opt/zabbix-6.0.31/ui
cp -a * /var/www/zbx
chown -R nginx:nginx /var/www/zbx
[root@l1 ~]# cd /opt/zabbix-6.0.31/ui
[root@l1 ui]# cp -a * /var/www/zbx
cp:是否覆盖"/var/www/zbx/index.php"? y
[root@l1 ui]# chown -R nginx:nginx /var/www/zbx
[root@l1 ui]# 

浏览器访问:http://zbx.zl.com/index.php

 (7)安装 zabbix 客户端,实现 zabbix 服务端自我监控

rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm   // #导入agent2 yum源

yum install zabbix-agent2 zabbix-agent2-plugin-* -y #自动安装

systemctl start zabbix-agent2.service

netstat -lntp | grep 10050
[root@l1 ui]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
获取https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.kW2mm4: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-6.0-4.el7         ################################# [100%]
[root@l1 ui]# yum install zabbix-agent2 zabbix-agent2-plugin-* -y
[root@l1 ui]# systemctl start zabbix-agent2.service
[root@l1 ui]# netstat -lntp | grep 10050
tcp6       0      0 :::10050                :::*                    LISTEN      24590/zabbix_agent2 
[root@l1 ui]# 

解决 zabbix-server Web页面中文乱码问题

yum install -y wqy-microhei-fonts  #默认情况下已安装

\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /var/www/zbx/assets/fonts/DejaVuSans.ttf
[root@l1 ui]# yum install -y wqy-microhei-fonts
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: epel.01link.hk
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 wqy-microhei-fonts-0.2.0-0.12.beta.el7.noarch 已安装并且是最新版本
无须任何处理
[root@l1 ui]# \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /var/www/zbx/assets/fonts/DejaVuSans.ttf
[root@l1 ui]# 

 刷新浏览器页面,即可监控本机

 7、添加 zabbix 客户端主机

 192.168.18.20

systemctl stop firewalld
setenforce 0
vim /etc/selinux/config 
[root@l2 ~]# systemctl stop firewalld
[root@l2 ~]# setenforce 0
[root@l2 ~]# vim /etc/selinux/config 
[root@l2 ~]# 

(1)服务端和客户端都配置时间同步

默认情况下时间同步chronyd是开启的,已经是时间同步了

vim /etc/selinux/config 
systemctl status chronyd
[root@l2 ~]# vim /etc/selinux/config 
[root@l2 ~]# 
[root@l2 ~]# timedatectl 
      Local time: 二 2024-07-09 13:50:50 CST
  Universal time: 二 2024-07-09 05:50:50 UTC
        RTC time: 二 2024-07-09 05:50:51
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@l2 ~]# systemctl status chronyd
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2024-07-09 13:46:09 CST; 5min ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 790 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 749 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 770 (chronyd)
    Tasks: 1
   CGroup: /system.slice/chronyd.service
           └─770 /usr/sbin/chronyd

7月 09 13:46:08 l2 systemd[1]: Starting NTP client/server...
7月 09 13:46:08 l2 chronyd[770]: chronyd version 3.4 starting (+CMDMON +NTP +REF...UG)
7月 09 13:46:09 l2 chronyd[770]: Frequency -24.552 +/- 3.819 ppm read from /var/...ift
7月 09 13:46:09 l2 systemd[1]: Started NTP client/server.
7月 09 13:46:16 l2 chronyd[770]: Selected source 193.182.111.143
7月 09 13:46:16 l2 chronyd[770]: System clock wrong by -1.132964 seconds, adjust...ted
7月 09 13:46:14 l2 chronyd[770]: System clock was stepped by -1.132964 seconds
7月 09 13:46:16 l2 chronyd[770]: Selected source 202.112.31.197
7月 09 13:48:33 l2 chronyd[770]: Source 162.159.200.123 replaced with 193.182.111.12
Hint: Some lines were ellipsized, use -l to show in full.
[root@l2 ~]# 

 

为后续操作方便,将服务端和客户端修改主机名

192.168.18.10

hostnamectl set-hostname zbx-server
bash
vim /etc/hosts
————————————————————————————————————
192.168.18.10 zbx-server
192.168.18.20 zbx-agent01
————————————————————————————————————

[root@l1 ~]# hostnamectl set-hostname zbx-server
[root@l1 ~]# bash
[root@zbx-server ~]# vim /etc/hosts
[root@zbx-server ~]# 

192.168.18.20

hostnamectl set-hostname zbx-agent01
bash
vim /etc/hosts
————————————————————————————————————
192.168.18.10 zbx-server
192.168.18.20 zbx-agent01
————————————————————————————————————
[root@l2 ~]# hostnamectl set-hostname zbx-agent01
[root@l2 ~]# bash
bash
[root@zbx-agent01 ~]# vim /etc/hosts
[root@zbx-agent01 ~]# 

 (2)安装 zabbix-agent2

192.168.18.20

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

yum install zabbix-agent2 zabbix-agent2-plugin-*  #一路y
systemctl start zabbix-agent2.service
netstat -lntp | grep zabbix

[root@zbx-agent01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2024-07-09 14:14:01--  http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 117.23.50.194, 58.221.32.104, 221.230.244.112
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|117.23.50.194|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”

100%[============================================>] 2,523       --.-K/s 用时 0.009s  

2024-07-09 14:14:01 (267 KB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])

[root@zbx-agent01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
获取https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.WBB8YQ: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:zabbix-release-6.0-4.el7         ################################# [100%]
[root@zbx-agent01 ~]# yum install zabbix-agent2 zabbix-agent2-plugin-*
。。。。。                    
  zabbix-agent2-plugin-mssql.x86_64 0:6.0.31-release1.el7                             
  zabbix-agent2-plugin-postgresql.x86_64 0:6.0.31-release1.el7                        

完毕!
[root@zbx-agent01 ~]# systemctl start zabbix-agent2.service
[root@zbx-agent01 ~]# netstat -lntp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      9546/zabbix_agent2  
[root@zbx-agent01 ~]# 

(3)修改 agent2 配置文件

192.168.18.20

cd /etc/zabbix
vim zabbix_agent2.conf
——————————————————————————————————————————————————————————
Server=192.168.18.10  #80行指定服务端地址
ServerActive=192.168.18.10   #133行,指定服务端地址
Hostname=zbx-agent01    #144行,指定本机主机名
——————————————————————————————————————————————————————————
systemctl restart zabbix-agent2.service

 

[root@zbx-agent01 ~]# cd /etc/zabbix
[root@zbx-agent01 zabbix]# 
[root@zbx-agent01 zabbix]# vim zabbix_agent2.conf
[root@zbx-agent01 zabbix]# systemctl restart zabbix-agent2.service
[root@zbx-agent01 zabbix]# 

(4)服务端安装 zabbix-get验证客户端数据的连通性

192.168.18.10

yum install -y zabbix-get

zabbix_get -s '192.168.18.20' -p 10050 -k 'agent.ping'

zabbix_get -s '192.168.18.20' -p 10050 -k 'agent.hostname'

zabbix_get -s '192.168.18.20' -p 10050 -k 'system.hostname'
[root@zbx-server ~]# yum install -y zabbix-get
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile

[root@zbx-server ~]# zabbix_get -s '192.168.18.20' -p 10050 -k 'agent.ping'
1
[root@zbx-server ~]# zabbix_get -s '192.168.18.20' -p 10050 -k 'agent.hostname'
zbx-agent01
[root@zbx-server ~]# zabbix_get -s '192.168.18.20' -p 10050 -k 'system.hostname'
zbx-agent01
[root@zbx-server ~]# 

 常用键值
agent.ping:服务端与客户端是否连通,返回1表示可达,返回非表示不可达
system.hostname:系统主机名
agent.hostname:客户端主机名
net.if.in[if,<mode>]:网络接口进入的流量统计,if表示网卡名称,带<>的参数表示可以省略
net.if.out[if,<mode>] :网络接口流出的流量统计
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]:进程数
net.tcp.port[<ip>,port]:检查是否能建立tcp连接到指定端口,返回0表示不能连接,返回1表示可以连接

(5) Web 页面中添加 agent 主机

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01-192.168.18.20
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux servers
【Interfaces】点击添加 客户端,【IP地址】输入192.168.18.20

 等一分多钟即可

等一分多钟即可 

 

(6)监控模板

如何更换监控模板

 

zabbix自带的监控模板 

 

若系统无所需的监控模板可在以下连接中下载模板导入使用

#监控模板下载地址
https://share.zabbix.com/
https://monitoringartist.github.io/zabbix-searcher/
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates

8、自定义监控内容

案例:自定义监控客户端服务器登录的人数
需求:限制登录人数不超过 4 个,超过 4 个就发出报警信息

192.168.18.20

(1)客户端创建自定义key

1)明确需要执行的 linux 命令
[root@zbx-agent01 zabbix]# who | wc -l
1
[root@zbx-agent01 zabbix]#
2) 创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf  ##不用修改,就看看

#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
281 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
321 #	Format: UserParameter=<key>,<shell command>

cd /etc/zabbix/zabbix_agent2.d/

vim user_login.conf
UserParameter=login.user,who | wc -l

systemctl restart zabbix-agent2.service
[root@zbx-agent01 zabbix]# vim /etc/zabbix/zabbix_agent2.conf
[root@zbx-agent01 zabbix]# cd /etc/zabbix/zabbix_agent2.d/
[root@zbx-agent01 zabbix_agent2.d]# vim user_login.conf
[root@zbx-agent01 zabbix_agent2.d]# systemctl restart zabbix-agent2.service
[root@zbx-agent01 zabbix_agent2.d]# 

192.168.18.10验证

zabbix_get -s '192.168.18.20' -p 10050 -k 'login.user'
[root@zbx-server ~]# zabbix_get -s '192.168.18.20' -p 10050 -k 'login.user'
1
[root@zbx-server ~]# 

(2)在 Web 页面创建自定义监控项模板

1)创建模板

点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【群组】选择 Templates
【描述】可自定义
点击 【添加】,此时就可在【名称】中搜索到 Template Login User 了

 

2)创建监控项

点击 Template Login User 模板进入
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user            #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
点击 【添加】

 

3)创建触发器        

当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警

点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 number of login users is more than 4
【严重性】设置成 告警        #根据严重程度可自定义设置
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 4,点击 【插入】
点击 【添加】

4)创建图形

点击上方菜单栏【图形】,点击【创建图表】
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】

  

5)将主机与模板关联起来

一个主机可以关联多个模板

点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
【模板】搜索 login,选择 Template Login User,点击【更新】

此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

再次查看,已设置完成

6)测试

点击左边菜单栏【监测】中的【主机】,点击目标主机,点击图形
【条件检索】搜索 Login,即进入检测画面

 

再打开两个客户端192.168.18.20进行测试 

 

 当关闭指定数量服务器使得在触发器范围内后,告警自动消失

 9、设置邮件报警

 点击左边菜单栏【管理】中的【媒介】,点击【创建媒体类型】
【名称】设置成 qq_email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】xxxxxx@qq.com  #自己的qq
【认证】选择 用户名和密码
【用户名称】xxxxxx@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义
 
 
点击【消息模板】,点击【添加】,【Message type】选择 问题,点击【更新】
点击 【添加】,并测试功能

收到邮箱,测试成功

(1)关联发送报警和触发器

点击左边菜单栏【配置】中的【报警媒介类型】,点击【动作】,点击【触发器动作】
点击右上角【创建动作】或使用已经存在的触发器动作;

点击【条件】下的添加,类型选择触发器,并对触发器进行选择;

(2)用户资料添加媒介

点击左边菜单栏【用户设置】-->【配置】,点击【添加】
【类型】选择 qq_email
【收件人】设置成1275711228@qq.com
【当启用时】设置成 1-7,00:00-24:00
【如果存在严重性则使用】勾选需要的严重性
点击 【添加】
再点击 【更新】

再打开三个客户端

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值