------------------第一部分----------------

一.监控生命周期命令

1.服务器上架到机柜
2.基础设施监控
  服务器温度,风扇转速  ipmitool命令(只能用于物理机,不能用于vmware)
  存储的监控(df,fdisk.iotop)
  cpu(lscpu,uptime,top,htop)
  memory(free)
  网络(iftop,ping)
3.应用监控
  mysql,redis,nginx,python(连接数过多要断掉部分连接,在进行性能维护时,需要关闭掉zabbix)
  elk日志监控 

二.zabbix

2.1.zabbix简介

1.zabbix基于server-client架构,可以用于监控各种网络服务,服务器和网络机器等状态
2.也可以对windows进行监控(需要安装zabbix agent),可以监控cpu load,网络使用状况,硬盘容量等状态,没有安装客户端,也可以通过ssh啊telent啊对目标进行监控
3.不仅有自带的项目满足监控的需求,同时也可以自定义item,自动生成报表,也有api可以和其他系统集成,或者开发可以通过接口更便捷的获取数据。

2.2.为何是zabbix不是其他监控

常见概念:

三.zabbix部署

下载Zabbix

部署服务端

环境:Rocky8.9
1.从华为云下载包
yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm
2.更改获取源
sed -i 's#https://repo.zabbix.com#https://mirrors.huaweicloud.com/zabbix#' /etc/yum.repos.d/zabbix.repo
3.安装Zabbix server,Web前端,agent
  yum install -y zabbix-server-mysql
  yum install zabbix-agent2 -y
  yum install zabbix-web-mysql zabbix-nginx-conf.noarch nginx -y
  yum install mysql-server -y
  yum install zabbix-sql-scripts.noarch -y
  systemctl enable --now mysqld
4.创建初始数据库
mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
5.导入初始架构和数据
cd /usr/share/zabbix-sql-scripts/mysql
zcat server.sql.gz | mysql zabbix
mysql zabbix < double.sql
mysql zabbix < history_pk_prepare.sql
6.查看zabbix用户,密码等等信息
grep ^DB /etc/zabbix/zabbix_server.conf(注意更改密码,默认是没有密码的)
7.systemctl enable --now nginx.service php-fpm.service zabbix-server.servient2.service
8.yum install zabbix-web-service -y
  systemctl enable --now zabbix-web-service.service
9.更换php版本
  dnf module switch-to php:7.4
10.vim /etc/nginx/conf.d/zabbix.conf
  listen 8080;
  server_name example.com
11.systemctl restart nginx.service php-fpm.service zabbix-server.service zabbix-agent2

 Admin:zabbix

注:要在mysql的配置文件/etc/zabbix/zabbix_server.conf下面根更改数据库名,使用者和密码为zabbix,否则系统信息部分不显示内容。

部署客户端

agent2默认使用10050端口,也就是zabbix客户端的端口

1.注意时间正确(时间同步),统一时区
  mv /etc/localtime{,.bak}
  ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localhost
2.systemctl status firewalld
  getenforce
3.部署yum源
  yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/8/x86_64/zabbix-          release-6.2-3.el8.noarch.rpm
  sed -i 's#https://repo.zabbix.com#https://mirrors.huaweicloud.com/zabbix#' /etc/yum.repos.d/zabbix.repo
  yum install zabbix-agent2
  systemctl restart zabbix-agent2
  systemctl enable zabbix-agent2
4.修改配置文件内容:(server端主机名和ip)
[root@zabbix1 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.32.141
ServerActive=192.168.32.141
Hostname=zabbix1
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf
systemctl restart zabbix-agent2

pid文件里面存在的是进程号和ps -ef | grep zabbix查看到的进程号一致

验证联通性:
[root@node1 ~]# yum install zabbix-get -y
[root@node1 ~]# zabbix_get -s '192.168.32.201' -p 10050 -k 'agent.ping'
1
[root@node1 ~]# zabbix_get -s '192.168.32.202' -p 10050 -k 'system.hostname'
zabbix2

zabbix使用手册:https://www.zabbix.com/documentation/7.0/zh/manual

三.功能使用

1.解决乱码问题

系统默认监控硬盘信息:(zabbix-server)cpu,disk,network,nemory

1.下载字体
[root@node1 ~]# yum install wqy-microhei-fonts
2.复制字体,会自动刷新
[root@node1 ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/deja                                            vu/DejaVuSans.ttf

2.添加zabbix-agent主机

3.zabbix创建自定义key

因为主机和模版链接,会自动添加模版里面的监控项,但是可能无法满足我们日常的需求,因此需要自定义监控项。

3.1.自定义监控登录的人数

限制登录人数不超过3个

3.1.1.命令行配置(系统)

3.1.2.添加自定义监控项

 

3.1.3.在zabbix中自定义监控项

添加流程:

1.创建模版

2.创建应用集(类似一个文件夹,里面放置一系列监控项)

3.创建监控项,自定义item,你具体想要监控的内容

4.创建触发器,当获取到数据会进行比较,决定是否报警

5.创建图形

6.将具体的主机和模版链接,关联

3.1.3.1.创建模版

3.1.3.2.创建监控项

注:应该键值对是user_login,得对应起来

3.1.3.3.创建触发器

3.1.3.4.与主机链接

3.1.3.5.处理告警

 202有3个连接,应该报警,201只有一个连接,并没有配置文件,zabbix-aggent2无法监控到

但是发现时间不对,应该注意时区的统一(在用户设置里面可以跟更改)

确认问题及时处理,关闭不必要的连接

4.邮件报警设置

设置邮件报警媒介--配置发送的消息模版--测试--配置用户报警端(收件方)--开启动作--测试

5.全网监控方案

5.1.50/100台机器如何自动添加主机监控???

思路:

1.克隆监控模版

2.自动注册和自动发现

3.使用zabbix的api接口,利用curl语言,或者开发自己的编程脚本和python等

5.2.监控方案实施

 注:nfs监控除了通过key检测111端口,还可以通过监测showmount -e ip | wc -l 查看挂载了哪些信息

5.3.监控服务的具体方法

1.端口检测命令
netstat ss lsof 结合grep查看端口是否存活
例:在zabbix-server命令行中:
zabbix_get -s '192.268.32.201' -p 10050 -k 'net.tcp.port[,80]'
1  //存活


2.查询进程信息
ps


3.通过客户端连接
例:web服务器用curl查询
    mysql用sql语句连接验证

 5.4.自动发现

host解析--检查zabbix-agent2存活性--配置自动发现服务--配置动作(自动加入群组和链接到模版)

自动发现:
在一个局域网内设置IP地址范围和端口,然后自动去进行扫描,zabbix-server主动去发现所有客户端,然后将客户端的信息登记在server的机器上
缺点:zabbix-server的压力比较大,耗时久


自动注册:
zabbix agent2主动上报自己的信息发送给zabbix-server
缺点:agent2可能找不到server(配置文件写错,网络不通)


被动模式,主动模式站在agent2的立场上:
被动模式:server找agent2来拿数据
主动模式:agent2主动把数据交给server

具体操作

5.4.1.添加host解析

5.4.2.检查zabbix-agent2是否存活

[root@zabbix2 ~]# systemctl is-active zabbix-agent2
active

5.4.3.在zabbix-server中先删除对主机的监控

5.4.4.配置自动发现服务

 

 

5.5.自动注册

 检查连通性:

  6.分布式监控--负载均衡

解决单点压力(zabbix proxy代理解决单点和网络延迟)

proxy代理和server作用一样,会从被监控的机器上拿数据,保存在自己本地的数据库中,达到一定条件之后会把数据汇总发给zabbix-server,同时也有效解决了网络延时问题和跨境域问题,减少通信压力和可靠性保证数据完整性

分布式监控作用:
1.分担server的集中式压力
agent->proxy->server
2.解决多机房之间的网络延时问题
上海机房数据传输到proxy再被传输到server

6.1.部署分布式zabbix-proxy(192.168.32.203)

6.1.1.停用或者关闭自动注册和自动发现服务,删除监控的agent

6.1.2.部署abbix-proxy

yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.huaweicloud.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install zabbix-proxy-mysql zabbix-get -y


安装数据库,用于存储zabbix信息
yum install mariadb-server mariadb -y
systemctl start mariadb

MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)


导入zabbix-proxy数据库信息
查询安装时位置
[root@zabbix-proxy yum.repos.d]# rpm -ql zabbix-proxy-mysql
zabbix5有预制数据表,zabbix6没有,需要从源码中获取
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy


修改zabbix-proxy配置文件,连接数据库的信息
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
[root@zabbix-proxy ~]# sed -i 's/Server=127.0.0.1/Server=192.168.32.141/' /etc/zabbix/zabbix_proxy.conf
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
Hostname=zabbix-proxy(自己proxy服务器的主机名)

配置检查并且启动:

6.2.web页面添加代理

添加主机:

 因为6.0版本没有*.sql.gz,但是

跳过导入操作意味着你需要手动在数据库中创建 Zabbix - proxy 所需的数据库架构和初始配置。这是一个复杂且容易出错的过程,尤其是对于复杂的监控系统,因为 Zabbix - proxy 需要与数据库进行交互来存储和获取监控数据相关的各种信息,如监控项配置、主机列表等。

我在部署时导入了5.0版本的数据,导致sever和proxy不兼容,因此配置好后,显示通信有问题,可能采用源码安装会更好一点()

 

----------------第二部分-----------------

 

1.zabbix优点

开源支持的设备多,而且自带多种监控模版,支持zabbix-proxy的分布式集中管理,有自动发现自动注册自定义监控项设置告警等功能

缺点:

1.当监测机器数量大时,大量数据写入数据库会有性能瓶颈,官网给出的是单机上限5000台,那么就需要zabbix-proxy,会增加成本

2.主动发现zabbix-server会有压力,会有延迟,被动发现会有配置文件写错导致连通性不好的情况

2.监控可以从哪几个方面入手

硬件---路由器,交换机,防火墙

系统---cpu,内存,磁盘,网络,进程,tcp

服务---nginx,php,tomcat,redis,memcache,mysql

web---响应时间,加载时间,渲染时间

日志---elk(收集,存储,分析,展示)

安全---防火墙,selinux

3.zabbix服务端端口:10051

4.zabbix客户端端口:10050

5.zabbix-proxy分布式

解决单点压力(zabbix proxy代理解决单点和网络延迟)

proxy代理有效解决了网络延时问题和跨境域问题,减少通信压力和可靠性保证数据完整性

 

使用场景

1.监控远程位置,解决跨机房问题

2.监控主机多,性能跟不上,延迟大

3.解决网络不稳定问题

6.zabbix是怎么做监控的

zabbix的监控流程:

agent2:再被监测的主机上负责定期收集数据

zabbix server:负责接收来自agent2发送的数据,存储在自己的数据库中

zabbix web:将数据在前端进行可视化展示

 

自动发现(zabbix-server轮询监测zabbix-agent)好比老师要作业
缺点:zabbix-server的压力比较大,耗时久

配置方式:

1.确定agent2是否存活systemctl is-active agent2

2.配置自动发现的服务(给出一个监测的网段)

3.配置自动发现的动作(条件+动作),比如说发现了某台主机在满足一定条件下,会在监控时自动添加到主机群组以及链接模版

4.重启服务

自动注册(zabbix-agent主动上报数据给zabbix-server)好比学生主动交作业
缺点:agent2可能找不到server(配置文件写错,网络不通)

配置方式:

1.更改配置文件(server,serveractive,hostname,hostnameitem等)

2.zabbix_get -p 10050 -s '192.168.32.201' -k 'agent.ping'测试连通性

3.重启服务

4.配置自动注册的动作(条件可以是主机名动作就是自动添加到主机群组以及链接模版)

5.开启动作

7.zabbix自定义监控怎么做的

1.测试是否可以正常获取数据,zabbix_get -s '' -p10050 -k 'system.hostname'

2.在zabbix_agent2.conf.d下创建以.conf结尾的文件

3.再次测试

添加流程:

 

1.创建模版

2.创建应用集(类似一个文件夹,里面放置一系列监控项)

3.创建监控项,自定义item,你具体想要监控的内容

4.创建触发器,当获取到数据会进行比较,决定是否报警

5.创建图形

6.将具体的主机和模版链接,关联

8.zabbix怎么实现微信报警

Zabbix6.0使用企业微信告警教程Zabbix5.x版本皆可参考_zabbix企业微信告警-CSDN博客

核心操作:

zabbix6.4已测试成功

1.在企业微信群添加企业微信机器人,保存webhook地址

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=8bb4e8f6-ae0e-4e52-98b3-7656be14a3852

2.创建主机群组和和被监测的主机

3.创建模版,监控项,进行监控项数据获取的测试

4.创建触发器,关联模版

5.创建告警媒介,类型为webhook,注意token的参数,以及脚本

6.测试媒介是否成功

7.编辑用户的告警媒介,收件人就是机器人

8.配置触发器的动作和操作

动作就是条件:主机名,主机群组,模版等信息

操作就是发送我们希望的标题和具体格式的内容

9.启用测试

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐