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即可。