【分布式系统四】监控平台Zabbix相关运用(命令+截图详细版)

目录

一.使用zabbix监控nginx并发量连接数

1.做好 nginx 配置

2.完成监控数据脚本编写

3.设置键值

4.在zabbix web端完成自定义监控项

5.连接到grafana

二.自动发现

1.初始化操作

2.安装启动zabbix-agent2

3.修改zabbix配置文件

4.Web 页面配置自动发现

三.自动注册

四.Zabbix proxy 代理服务器

1.安装 zabbix-proxy

2.部署、初始化数据库

3.导入数据库信息

4.修改 zabbix-proxy 配置文件

5.Web 页面配置zabbix-proxy

五.Zabbix server 高可用集群

1.服务端配置

2.客户端配置 


一.使用zabbix监控nginx并发量连接数

使用192.168.80.102服务器;因为该服务器原本已安装nginx,因此省略安装步骤

1.做好 nginx 配置

vim /etc/nginx/conf.d/default.conf
 
location /nginx_state {
         stub_status on;
         access_log off;
     }
##12行添加,开启状态统计功能
systemctl reload nginx
curl -s http://192.168.80.102/nginx_state  #即可使用此命令查看并发量信息

2.完成监控数据脚本编写

cd /etc/zabbix/zabbix_agent2.d/
vim nginx_status.sh
#!/bin/bash
IP=192.168.80.102
PORT=80
STUB_URI=nginx_state
 
active() {
    curl -s http://$IP:$PORT/$STUB_URI | awk 'NR==1 {print $3}'
}
 
accepts() {
    curl -s http://$IP:$PORT/$STUB_URI | awk 'NR==3 {print $1}'
}
handled() {
    curl -s http://$IP:$PORT/$STUB_URI | awk 'NR==3 {print $2}'
}
 
requests() {
    curl -s http://$IP:$PORT/$STUB_URI | awk 'NR==3 {print $3}'
}
 
Reading() {
    curl -s http://$IP:$PORT/$STUB_URI | awk 'NR==4 {print $2}'
}
 
Writing() {
    curl -s http://$IP:$PORT/$STUB_URI | awk 'NR==4 {print $4}'
}
 
Waiting() {
    curl -s http://$IP:$PORT/$STUB_URI | awk 'NR==4 {print $6}'
}
 
process() {
    pidof nginx | wc -w
}
 
case $1 in
active)
    active
    ;;
accepts)
    accepts
    ;;
handled)
    handled
    ;;
requests)
    requests
    ;;
Reading)
    Reading
    ;;
Writing)
    Writing
    ;;
Waiting)
    Waiting
    ;;
process)
    process
    ;;
*)
    echo "$Usage: $0 {active|accepts|handled|requests|Reading|Writing|Waiting|process}"
    exit 1
esac
exit 0
########################################################################################
chmod +x nginx_status.sh

 

3.设置键值

vim nginx_state.conf
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agent2.d/nginx_status.sh $1
systemctl restart zabbix-agent2.service

4.在zabbix web端完成自定义监控项

【配置】点击【模板】点击【创建模板】

添加三个监控项

【名称】搜索【Template Nginx Status】创建的模板;点击上方【监控项】,点击创建【监控项

剩下两个如法炮制

点击上方【触发器】点击【创建触发器】

连接触发器

进程触发器

主机关联监控模板:左侧【配置】点击 【主机】点击【Zabbix server】

查看:左侧点击【监测】点击【主机】点击【Zabbix server】点击最新数据,找到添加的三个模板

5.连接到grafana

二.自动发现

1.初始化操作

初始化操作
systemctl disable --now firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
 
hostnamectl set-hostname zbx-agent02
bahs  #切换
 
vim /etc/hosts   #三台服务器都需修改方便使用主机名管理
192.168.80.102 zbx-server
192.168.80.103 zbx-agent01
192.168.80.104 zbx-agent02

2.安装启动zabbix-agent2

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
 
yum install -y zabbix-agent2
systemctl enable --now zabbix-agent2.service

3.修改zabbix配置文件

vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.80.102   #80行,指定server服务器
ServerActive=192.168.80.102    #133行
Hostname=zbx-agent02   #144行
HostnameItem=system.hostname   #152行取消注释
 
systemctl restart zabbix-agent2.service

4.Web 页面配置自动发现

点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】

【名称】设置成 mynetwork

【IP范围】设置成 192.168.9.1-254

【更新间隔】设置成 10s

【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键

值】设置成 system.uname

【设备唯一性准则】选择 IP地址

【主机名称】选择 DNS名称

【可见的名称】选择 主机名称

勾选 【已启用】,点击 【添加】

点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】

勾选 【Auto discovery. Linux servers.】,点击 【启用】

点击【Auto discovery. Linux servers.】进入点击上方【操作2】模板添加【Template Nginx

Status】点击【update】点击【更新】

点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机

三.自动注册

准备工作

关闭【发现动作】;【配置】中【主机】只保留server

vim /etc/zabbix/zabbix_agent2.conf
 
HostnameItem=system.hostname		#152行,取消注释

点击左边菜单栏【配置】中的【动作】,上方菜单选择 【自动注册动作】,点击【创建动作】

【名称】设置成 Auto registration

点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent

点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【Add】

再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击

【Add】

再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Linux by Zabbix

agent,搜索Nginx,选择Template Nginx Status点击 【Add】

点击下方的【添加】

等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,即可刷新出自动发现的客户端主机

四.Zabbix proxy 代理服务器

分布式监控的作用

  • 分担 server 的集中式压力
  • 解决多机房之间的网络延时问题

agent --> proxy --> server

添加服务器192.168.9.113用来安装Zabbix proxy

初始化操作
systemctl disable --now firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
 
hostnamectl set-hostname zbx-proxy
bash
 
192.168.80.105
vim /etc/hosts
192.168.80.102 zbx-server
192.168.80.103 zbx-agent01
192.168.80.104 zbx-agent02
192.168.80.105 zbx-proxy
#添加以上
192.168.80.102、192.168.80.103、192.168.80.104
vim /etc/hosts
192.168.80.105 zbx-proxy
#添加该配置

1.安装 zabbix-proxy

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
 
yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

2.部署、初始化数据库

配置 Mariadb yum源
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 enable --now mariadb

初始化数据库
mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
 
mysql -u root -pabc123

创建数据库并指定字符集
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
 
 
创建 zabbix 数据库用户并授权
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;
quit 退出

3.导入数据库信息

cd /usr/share/zabbix-sql-scripts/mysql/
mysql -u root -pabc123 zabbix_proxy < proxy.sql
quit退出

4.修改 zabbix-proxy 配置文件

vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.80.102				#32行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy					#42行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix					#194行,指定当前数据库 zabbix 用户的密码
 
启动 zabbix-proxy
systemctl enable --now zabbix-proxy.service
netstat -lntp | grep zabbix

5.Web 页面配置zabbix-proxy

点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用

点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

192.168.80.104客户端进行配置

vim /etc/zabbix/zabbix_agent2.conf 
Server=192.168.80.105   #80行指向proxyip
ServerActive=192.168.80.105  #133行
 
systemctl restart zabbix-agent2.service

点击左边菜单栏【配置】中的【主机】,点击【创建主机】

【主机名称】:zbx-agent02

【可见的名称】:zbx-agent02-192.168.80.104

【模板】: Linux by Zabbix agent 

【群组】:Linux servers

【接口】:点击添加【Agent】:192.168.80.104

【由agent代理程序监测】选择 zbx-proxy

点击 【添加】


分别在客户端和代理服务器上重启服务

systemctl restart zabbix-agent2

systemctl restart zabbix-proxy

等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常

在服务端查看日志

tail -f /var/log/zabbix/zabbix_proxy.log

五.Zabbix server 高可用集群

官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高

可用解决方案

192.168.80.102 zbx-server做服务端;192.168.80.103 做客户端

1.服务端配置

Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
......
HANodeName=zbx-server01   #974行
NodeAddress=192.168.80.102:10051   #986行
 
systemctl restart zabbix-server.service

2.客户端配置 

客户端配置
 
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.80.102,192.168.80.101
ServerActive=192.168.80.102;192.168.80.101
#注意,ServerActive 的连接符是‘;’ ,而不是‘,’
systemctl restart zabbix-agent2.service 

  • 47
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值