Zabbix
介绍
Zabbix包括agent和server,监控机跑的是server,每一个被监控的服务器都要跑一个agent。Zabbix的图形界面跑在Server上,server能监控到的所有数值的基础是每一台被监控的主机上的agent把数值传给server。
安装
- https://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&db=mysql
- 流程大概是 监控机上先安装zabbix-server-mysql和zabbix-web-mysql,需要apache(当然也可以用nginx,不过要改一些配置,默认配置用的是apache), 然后在mysql里新建一个zabbix数据库,把默认配置导入进去,然后把httpd和zabbix-server跑起来。被监控机上安装zabbix-agent,然后把zabbix-agent跑起来。
- 遇到了一个坑就是php-session的文件夹权限问题,如果php存session那个文件夹的权限不够,则无法创建session, server跑不起来
设置
- 需要设置的主要分以下几项
- 主机,监控项,触发器,动作,图表
- 主机就是需要被监控的服务器信息
- 监控项就是需要监控哪个数值
- 触发器是在某些选定的监控项的监控数值达到某些条件的触发公式
- 动作是触发器触发之后,希望做的动作(包括通知和恢复)
- 在跑起来server之后 访问 监控机ip/zabbix
- 设置主机
- 主机可以选择模板,就是已经设置好的各种监控项触发器等参数的设置,直接就能使用
- 设置监控项
- zabbix自带了很多监控项,基本上一个服务器上能拿到的所有系统参数都已经有默认的监控项了
- 如果我们希望检测某个服务的进程是否在运行,需要使用proc.num这个key,是用来检测某用户某些状态的进程数量的。比如想检测mongod的进程,键值就可以设为proc.num[,,,mongod]
- 应用集就是打个标签
- 如果想要监控非系统级的信息,那就需要在被监控的主机上,通过zabbix-agent上传需要监控的数值。
- 在/etc/zabbix/zabbix_agentd.d目录下,新建一个conf。添加监控数值的配置格式为UserParameter=【name】, 【value】(这个value一般是shell指令或者脚本,将运行的结果作为value), 配置好之后重启zabbix-agent
- 然后就可以在监控项里的键值处选择刚才配置的名字了
- 设置触发器
- 触发器需要设置严重程度和触发表达式,触发表达式就是设定所选监控项的数值满足什么条件会触发此触发器。
- 模板里也自带了很多触发器,如果希望监控mongo是否在运行,表达式可以设置为
- {Zabbix server:proc.num[,,,mongod].last()}<1
- 表示如果mongod的进程数量的最新值小于1,就会触发报警
- 配置动作
- 动作里面包括操作和恢复操作,操作是触发器被触发产生告警的时候要进行的行为,恢复操作是告警消失的时候要进行的行为
- 操作中可以选择发送消息和远程命令两种
- 发送消息可以选择邮件和短信等,需要在用户设置里先配置好自己的邮件地址等信息才能使用
- 如果希望在检测到某些问题之后想要自动恢复,就需要配置远程命令的操作。
- 首先要在被监控的主机上进行授权配置
vim /etc/sudoers
添加以下内容
zabbix ALL=(root) NOPASSWD:ALL
- 然后再该主机的agent里打开允许执行远程指令的开关,在/etc/zabbix/zabbix_agentd.conf文件中 把EnableRemoteCommands=0的注释打开并改成把EnableRemoteCommands=1,重启zabbix-agent
- 然后在zabbix中配置操作,操作类型选择远程命令,然后类型选择自定义脚本,执行在Zabbix客户端,然后输入需要执行的命令,比如服务器重启mongo的指令是sudo /www/mongodb-4.0.3/bin/mongod -f /www/mongodb-4.0.3/db_238/mongo_238.conf,之后点添加然后保存就可以了