自定义zabbix监控

## 监控项添加流程
1.创建一个自定义模板
2.给模板添加监控项
3.给监控项添加画图
4.给监控项添加触发器
5.给监控项的触发器添加告警动作
    - 可以使用邮件发送告警
    - 可以使用微信发送告警
    - 可以使用钉钉发送告警

## 模版各项
模板:存放所有的监控项、图形、触发器、web检测、聚合图形、自动发现、应用集、主机
主机:关联了该模板的主机
应用集:给监控项分组
监控项:要监控主机的内容
图形:图形是要给监控项出图
触发器:给监控项触发某些动作
    - 告警
        - 邮件告警
        - 微信告警
    - 自愈
        - 使用命令
        - 使用脚本
聚合图形:将指定图形汇总
web检测:检测一个网站是否可以正常访问

监控一台主机

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

# 安装zabbix-agent
[root@web01 ~]# yum install -y zabbix-agent
# 修改配置文件
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=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:监控硬件协议

排错工具

## zabbix-get包(清华源)
[root@zabbix-server ~]# 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

[root@zabbix-server ~]# zabbix_get -s 172.16.1.7 -k user.count

zabbix5.0

添加主机集群

添加模板

添加主机关联模板

  • 客户端接口变绿色则连接成功红色则失败

监控服务器用户登录数量

## 监控项格式
Format: UserParameter=<key>,<shell command>

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

## 修改配置文件
方法一:直接在配置文件中添加(能用但不建议)
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf 
UserParameter=user.count,uptime|grep -Po '\d+(?= user)'  //删除注释

方法二:配置文件中有Include=/etc/zabbix/zabbix_agentd.d/*.conf所以在/etc/zabbix/zabbix_agentd.d/下创建.conf文件,把UserParameter=直接加在.conf文件中
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/user.conf
UserParameter=user.count,uptime|grep -Po '\d+(?= user)' 

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

## 页面添加监控

添加模板监控项

  • 多登几个用户查看

添加触发器

  • 在仪表板中可以查看到报警

  • 提示框开启

添加图形

zabbix3.0

# 安装zabbix-agent
[root@web02 ~]# yum install -y zabbix-agent

## 修改配置文件
方法一:直接在配置文件中添加(能用但不建议)
[root@web02 ~]# vim /etc/zabbix/zabbix_agentd.conf 
Server=172.16.1.72
Hostname=web02
UserParameter=user.count,uptime|grep -Po '\d+(?= user)'  //删除注释

方法二:配置文件中有Include=/etc/zabbix/zabbix_agentd.d/*.conf所以在/etc/zabbix/zabbix_agentd.d/下创建.conf文件,把UserParameter=直接加在.conf文件中
[root@web02 ~]# vim /etc/zabbix/zabbix_agentd.d/user.conf
UserParameter=user.count,uptime|grep -Po '\d+(?= user)' 

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

添加模板

添加主机

  • 主机关联模板

添加监控项

添加触发器

自定义变量监控

监控进程

## 写命令测试
[root@web01 ~]# ps -ef | grep -v grep | grep -c nginx
2

## 把命令改成变量
process.status[*],ps -ef|grep -v grep|grep -c $1

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

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

  • 模板中添加监控项

  • 起的慢可以验证是否有报错
[root@zabbix ~]#  zabbix_get -s 172.16.1.7 -k process.status[nginx]
2

监控端口

net.tcp.listen[3306]
net.tcp.listen[80]

zabbix监控TCP

  • 监控TCP11种状态
    • 监控项
    • 图形
    • 触发器 TIME_WAIT 数量 超过100个 就告警
    • 邮件告警
# 获取监控值 ($1是传入的值)
netstat -ant|grep -ic $1

# 修改配置文件 (在监控项名里传入值 就会被后面的命令调用)
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=tcp.status[*],netstat -ant|grep -ic $1

# 重启zabbix客户端
[root@web01 ~]# systemctl restart zabbix-agent

# 测试
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k tcp.status[listen]
8
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k tcp.status[time_wait]
55

img

img

其他状态同理依次类推

zabbix出图结合grafana

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@zabbix ~]# systemctl restart grafana-server rh-nginx116-nginx
刷新页面zabbix插件就可以用了

# 浏览器访问10.0.0.71:3000 (grafana)
10.0.0.71:90 (zabbix)

image-20230815214240000

image-20230815214354512

image-20230815214407123

image-20230815214517687

image-20230815214617417

image-20230815214637476

image-20230815214652155

image-20230815214705129

image-20230815214724748

image-20230815214820521

image-20230815214835741

image-20230815214902645

image-20230815215034386

image-20230815215113154

image-20230815215202533