zabbix(二)

1. 自定义zabbix监控

1.1 zabbix 直连方式的监控

  两台主机192.168.16.4、192.168.16.5,.4作为server端,.5作为client端,直连方式无中间代理。

用.4来监控.5

1).4:启动相关服务、进入zabbix的web端口

[root@localhost ~]# systemctl restart zabbix-server zabbix-agent httpd

2).5:下载zabbix-agent

[root@localhost ~]# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

Complete!
[root@localhost ~]#yum install zabbix-agent -y

  编辑agent配置文件

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
#修改三处:
# Server=
Server=192.168.16.4                 #zabbixserver端的ip
# ServerActive=
ServerActive=192.168.16.4           #server端采取主动模式,ip为serverd端地址。
# Hostname=
Hostname=192.168.16.15              #用户名,zabbix客户端的主机名,可自定义,多个用户端时只要不重复就行
# Mandatory: no
# Default:
# HostnameItem=system.hostname      #动态获取系统主机名

3)zabbix web端添加主机

配置-------主机------创建主机

查看主机,并监控zabbix-agent的日志

[root@localhost ~]# tail -f /var/log/zabbix/zabbix_agentd.log

进行监控 

邮件报警:当机器出问题时发送邮件进行警告

点击email进行设置

勾选已启用,点击更新

定义用户执行:用户-------Admin

 

zabbix 报警级别有6级。

更新

添加动作,使用户和报警媒介发生联系

进行下一步操作,会用到 其内置变量:

主题:

Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

内容:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 

恢复主题:

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 

通过内置变量写入故障时发送邮件的内容;

在定义恢复操作,同样通过内置 变量,写入恢复后发送邮件内容

再进行操作编辑

 

以上所述总共3个步骤:定义报警文件类型、定义用户、定义动作。

 

完成定义后进行测试:停掉server端的agent。

[root@localhost ~]# systemctl stop zabbix-agent

从web端进行监控,主机连接已拒绝

再将server端的zabbix-agent启动,等待问题解决,查看发送的邮件

 

当模板文件无法满足监控时,可进行自定义监控。

定义自定义监控条件:当用户数量不为1时警告

root     pts/1    192.168.16.1     03:24    2.00s  0.00s  0.00s -bash
[root@localhost ~]# w
 03:24:11 up  4:23,  1 user,  load average: 0.00, 0.06, 0.08
[root@localhost ~]# w | awk 'NR==1 {print $4}'     #拿到监测条件,仅测试用实际场合监控数据库的进程自定义
1


编辑server端的agent配置文件/etc/zabbix/zabbix-agent,在文件末尾将监测条件写入

格式:UserParameter=key,value

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
# TLSPSKFile=
#
UserParameter=loguser,w | awk 'NR==1 {print $4}'
[root@localhost ~]# systemctl restart zabbix-agent

开始web端配置

创建监控项

点击添加,点击触发器,创建触发器

点击应用,下滑至左后可以看到自定义的触发项

当虚拟机重新连接一个窗口是,登录用户为2,触发警告

 

[root@localhost ~]# w | awk 'NR==1 {print $4}'
1
#连接第一个窗口
[root@localhost ~]# w | awk 'NR==1 {print $4}'
2

2. zabbix自动发现和自动注册

当终端数量较多时,可以通过自动发现和自动注册来实现zabbix监控

更新

添加组和模板

配置完成后进行监测

监测到192.168.16.5后将其自动注册进去

添加完自动注册后将原先的主机删掉查看是否已自动注册

3. zabbix分布式(代理)监控

  zabbix分布式监控需要至少3台主机,一台server。一台proxy(代理),一台client。client发送数据给proxy,proxy再发送给server。

  server:192.168.16.4

  proxy:192.168.16.5

  client:192.168.16.6

 

3.1 代理端需要安装proxy

.5

[root@localhost ~]# yum install zabbix-proxy
Installed:
  zabbix-proxy-mysql.x86_64 0:4.2.1-1.el7   

 

3.2 配置zabbix-proxy数据库

.5

[root@localhost ~]# systemctl restart mariadb
[root@localhost ~]# mysql -uroot -p123
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
MariaDB [(none)]> use zabbix_proxy
MariaDB [zabbix_proxy]> show tables;
Empty set (0.000 sec)
MariaDB [(none)]> exit
[root@localhost ~]# rpm -qa | grep zabbix-proxy
zabbix-proxy-mysql-4.2.1-1.el7.x86_64
[root@localhost ~]# zcat /usr/share/doc/zabbix-proxy-mysql-4.2.1/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy                  #导入表
[root@localhost ~]# mysql -uroot -p123;
MariaDB [(none)]> use zabbix_proxy
MariaDB [zabbix_proxy]> show tables;
+-------------------------+
| Tables_in_zabbix_proxy  |
+-------------------------+
| acknowledges            |
……

3.3  修改配置文件

[root@localhost ~]# vim /etc/zabbix/zabbix_proxy.conf

#修改如下信息: # Server
= Server=192.168.16.4 #server端地址 # Hostname= Hostname=zabbix-proxy #定义主机名 # DBName= DBName=zabbix_proxy #数据库名 # DBUser= DBUser=zabbix #数据库用户名 # Default: DBPassword=zabbix #数据库密码 [root@localhost ~]# systemctl restart zabbix-proxy

3.4  修改client指向proxy

.6:

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
# Server=
Server=192.168.16.5
# ServerActive=
ServerActive=192.168.16.5
[root@localhost ~]# systemctl restart zabbix-agent

3.5  web端操作

删除自动注册的主机

创建代理

停掉自动发现、自动注册

创建客户端主机,由于.6agent端设置的为动态获取主机名,因此主机名为系统主机名

[root@localhost ~]# hostname
localhost.localdomain

重启代理proxy,等待

 

分布式以为将client指向了proxy,所以只能自动发现但不能自动注册,此时该将自动发现规则改为zabbix-proxy即可。

posted @ 2019-05-25 20:37  Ajunyu  阅读(268)  评论(0编辑  收藏  举报