Zabbix自定义监控项

zabbix自定义监控项

自定义监控

被监控的机器需要安装zabbix-agent,agent跟server版本保持一致

zabbix5.0 agent安装

# 方法一:
[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.36-1.el7.x86_64.rpm

# 方法二:
[root@web01 ~]#  rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@web01 ~]# yum install -y zabbix-agent

zabbix3.4 agent安装

# 方法一:
[root@web02 ~]# rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.2-1.el7.x86_64.rpm

# 方法二:
[root@web02 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@web02 ~]# yum install -y zabbix-agent

后续步骤

# 修改配置文件
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf 
Server=127.0.0.1,172.16.1.71
Hostname=web01

# 启动并加入开机自启
[root@web01 ~]# systemctl start zabbix-agent
[root@web01 ~]# systemctl enable zabbix-agent

知识点

# 监控群组
- 按项目分
- 按应用分

# 接口
客户端:所有基本监控,自定义监控,都可以用客户端形式
SNMP:监控网络设备,交换机,路由器 Console口
JMX:专门监控java内存,堆栈信息(老年代,新生代,永久代,full-gc【垃圾回收机制】)
IPMI:监控硬件协议

shell脚本执行完后就会执行一次垃圾回收机制

img

简单监控一台机器图文流程(5.0)

创建群组

img

创建主机

img

img

修改模板

img

img

监控完成

img

简单监控一台机器图文流程(3.4)

创建主机

img

配置主机

img

添加模板

img

配置完成

img

自定义监控项(按应用创建)(5.0)

创建模板

img

更换模板

img

链接模板

img

链接模板后的展示

img

img

自定义监控项(按应用创建)(3.4)

创建模板

img

添加群组

img

添加链接模板

img

image-20230815100240397

更换链接模板

img

创建监控项(5.0)

点击模板中的监控项

img

创建监控项

img

img

创建监控项(3.4)

img

img

监控服务器用户登录数量(5.0)

# 1.写脚本或者命令,取出想要监控的值
uptime|grep -Po '\d+(?= user)'

# 2.修改客户端
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=user.count,uptime|grep -Po '\d+(?= user)'
## 2.1 官方给的模板
Format: UserParameter=<key>,<shell command>

# 3.重启
[root@web01 ~]# systemctl restart zabbix-agent

# 4.去页面添加监控

配置监控项

img

img

配置完成后展示

img

监控项不支持排错工具(服务端操作)

# 5.0版本下载排错工具
[root@zabbix fonts]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-get-5.0.36-1.el7.x86_64.rpm

# 3.4版本下载排错工具
[root@zabbix3 fonts]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-get-3.4.15-1.el7.x86_64.rpm

# 检验结果
zabbix_get -s 172.16.1.7 -k user.count

触发器的添加

点击模板中的触发器

img

创建触发器

img

配置触发器

img

添加设置好的触发器

img

添加3台连接用户后的告警示例

img

img

关闭3台连接用户后解决示例

img

zabbix3.4告警页面

img

img

页面中的告警提示声

img

画图

点击模板中的图形

img

创建图形

img

自定义图形的图案与配置

img

成图展示

img

自定义变量监控

监控进程

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/process.conf 
UserParameter=process.status[*],ps -ef |grep -v grep | grep -c $1

[root@zabbix fonts]# zabbix_get -s 172.16.1.7 -k process.status[nginx]
2

# 中括号内的值传递到[*]中,$1再调用[*]内的第一个传参

img

配置监控项

img

监控展示

img

监控端口(最好加在主机上)

# 由于内部已经写好了端口监控,所以直接调用就可以了
net.tcp.listen[3306]
net.tcp.listen[80]

监控TCP的11种状态

tcp的11种状态

LISTEN  -侦听来自远方TCP端口的连接请求;
SYN-SENT  -在发送连接请求后等待匹配的连接请求;
SYN-RECEIVED  -在收到和发送一个连接请求后等待对连接请求的确认;
ESTABLISHED  -代表一个打开的连接,数据可以传送给用户;
FIN-WAIT-1  -等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
FIN-WAIT-2  -从远程TCP等待连接中断请求;
CLOSE-WAIT  -等待从本地用户发来的连接中断请求;
CLOSING  -等待远程TCP对连接中断的确认;
LAST-ACK  -等待原来发向远程TCP的连接中断请求的确认;
TIME-WAIT  -等待足够的时间以确保远程TCP接收到连接中断请求的确认;
CLOSED   - 没有任何连接状态;
客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT 。
服务端独有的:(1)LISTEN (2)SYN_RCVD (3)CLOSE_WAIT (4)LAST_ACK 。
共有的:(1)CLOSED (2)ESTABLISHED 。

查看tcp连接状态的命令:

netstat -antp
ss -lntup

[root@zabbix ~]# netstat -ant | grep -c ESTABLISHED(状态名称)
20

优化zabbix客户端的内核参数

[root@web01 ~]# vim /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 30 #timeout时间
net.ipv4.tcp_keepalive_time = 1200 #长连接
net.ipv4.tcp_syncookies = 1 #cookies ,记录登录状态
net.ipv4.tcp_tw_reuse = 1 #time_wait复用
net.ipv4.tcp_tw_recycle = 1 #回收
net.ipv4.ip_local_port_range = 10000 65000 #调整本地随机端口范围net.ipv4.tcp_max_syn_backlog=8192 
net.ipv4.tcp_max_tw_buckets = 5000

配置监控项:

# 进入zabbix客户端子配置文件目录
[root@web01 ~]# cd /etc/zabbix/zabbix_agentd.d/

# 编辑子配置文件 
[root@web01 zabbix_agentd.d]# vim tcp_state.conf
UserParameter=tcp.state[*],netstat -ant|grep -c $1

# 重启服务
[root@web01 zabbix_agentd.d]# systemctl restart zabbix-agent

# zabbix-server测试
[root@web02 ~]# zabbix_get -s 172.16.1.7 -k tcp.state[LISTEN]
8

在web页面添加自定义监控项:

因为TCP状态有11种,所以我们需要添加11个监控项,我们可以把所有监控项放入一个模板中,这样我们所有机器在模板中关联即可。

创建模板

img

我们在模板上添加一个监控项

img

img

img

克隆监控项

img

创建剩下的监控项

SYN-SENT

img

SYN-RECEIVED

img

ESTABLISHED

img

FIN-WAIT-1

img

FIN-WAIT-2

img

CLOSE-WAIT

img

CLOSING

img

LAST-ACK

img

TIME-WAIT

img

CLOSED

img

创建完成监控项展示

img

给主机关联模板

img

img

查看TCP状态的最新数据

[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k tcp.state[CLOSING]
0
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k tcp.state[LISTEN]
8

img

创建图形

img

![image-20230816085726218](8.15 zabbix自定义监控项/image/image-20230816085726218.png)

img

![image-20230816085908111](8.15 zabbix自定义监控项/image/image-20230816085908111.png)

图形展示

img

![image-20230816090040707](8.15 zabbix自定义监控项/image/image-20230816090040707.png)

img

nginx状态页

# 配置nginx主配置文件(开启nginx状态页面)
[root@web01 conf.d]# vim /etc/nginx/nginx.conf
.....
 43         location / {
 44              root   html;
 45              index  index.html index.htm;
 46          }
 47 
 48         location /status {               # 添加
 49              stub_status;                # 添加,开启nginx状态页面
 50              allow 172.16.1.71;     # 允许zabbix-server端访问nginx状态页面
 51              allow 172.16.1.7;    # 允许nginx端访问nginx状态页面
 52              allow 127.0.0.1;     # 允许真机访问
 53        }
 ......
 # 重启nginx
 systemctl restart nginx

img

在nginx端编写脚本来监控nginx端的状态页面,我使用脚本监控的是 Waiting的值

# 创建脚本放置目录
[root@web01 conf.d]# mkdir /etc/zabbix/scripts

# 编辑脚本
[root@web01 conf.d]# vim /etc/zabbix/scripts/web_status.sh
#!/bin/bash

# 取到对应的三个值
case $1 in
    "Reading")
    curl -s http://ljy:ljy@127.0.0.1/status | awk 'NR==3{print $1}';;
    "Writing")
    curl -s http://ljy:ljy@127.0.0.1/status | awk 'NR==3{print $2}';;
    "Waiting")
    curl -s http://ljy:ljy@127.0.0.1/status | awk 'NR==3{print $3}';;
esac

# 添加执行权限
[root@web01 ~]# chmod +x /etc/zabbix/scripts/web_status.sh

# 创建zabbix配置文件
vim /etc/zabbix/zabbix_agentd.d/web.conf
UserParameter=web.status[*],/bin/sh /etc/zabbix/scripts/web_status.sh $1

# 重启服务
[root@web01 scripts]# systemctl restart zabbix-agent

给自定义监控项模板创建监控项

img

img

编写监控项Reading

img

编写监控项Writing

img

编写监控项Waiting

img

监控成果展示

img

zabbix出图结合grafana

安装grafana(那个机器装都行我在zabbix-server上面装的)

Grafana官方文档

https://grafana.com/docs/grafana/latest/

# 下载rpm包
[root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/Packages/grafana-10.0.0-1.x86_64.rpm --no-check-certificate

# 安装
[root@zabbix ~]# yum localinstall grafana-10.0.0-1.x86_64.rpm -y

# 启动并设开机自启
[root@zabbix ~]# systemctl start grafana-server.service 
[root@zabbix ~]# systemctl enable grafana-server.service 

# 查看端口3000起了没有
[root@zabbix ~]# netstat -lntup          
tcp6       0      0 :::3000                 :::*                    LISTEN      63184/grafana       

# 安装zabbix插件
[root@zabbix ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
✔ Downloaded and extracted alexanderzobnin-zabbix-app v4.3.1 zip successfully to /var/lib/grafana/plugins/alexanderzobnin-zabbix-app

Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary.

#### zabbix5.0用ip访问(修改端口为90,取消域名)
[root@zabbix ~]# vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
server {
        listen          90;
        server_name     _;

        root    /usr/share/zabbix;

        index   index.php;
....

# 重启服务
[root@zabbix ~]# systemctl restart grafana-server rh-nginx116-nginx
刷新页面zabbix插件就可以用了

img

img

img

img

img

img

img

img

img

img

img

img

img

img

img

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇