一、Zabbix监控nginx
1、安装nginx
[root@server8 ~]# cd /etc/nginx/conf.d/
[root@server8 conf.d]# vim default.conf
在网页访问172.25.66.8/status
为了安全,我们需设定只允许本机访问
2、添加自定义key配置文件
[root@server8 conf.d]# cd /etc/zabbix/
[root@server8 zabbix]# cd zabbix_agentd.d/
[root@server8 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf ##复制一个nginx.conf文件
测试是否可以拿到key值
3.写到配置文件
vim userparameter_nginx.conf
4、在server端安装zabbix-get查看能否拿到key值
5、在web监控端,点击监控的serevr8创建监控项
将之前我们拿到的4个key值都添加到监控项
(1)添加nginx_active监控项
(2)添加nginx_accepts监控项
(3)添加nginx_requests监控项
(4)添加nginx_handled监控项
完成添加后,点击图形,创建图形,加入之前添加的监控项
选择之前创建的图形nginx_status,再点击预览
二、zabbix使用percona的模板来监控mysql
zabbix自带的MySQL插件来监控mysql数据库,你会发现,自带的mysql监控项是很少的,根本满足不了公司的需求。由于它本身自带的模板太过简单了,所以需要做更详细的监控,而percona就提供了这个详细监控的模版以及脚本,解决了监控不全面的问题。
1、percona插件安装:看到会生成2个目录,/var/lib/zabbix/percona/scripts是监控脚本目录,/var/lib/zabbix/percona/templates是监控mysql的xml模版目录
2.进入templates目录,把模板文件复制到zabbix_agentd目录下,查看过滤应该是190个监控项
3.修改 ss_get_mysql_stats.php文件,设置MySQL的用户名和密码,用户密码为本地
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix/percona/scripts/
建立percona的php配置文件
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
[root@server1 scripts]# mysql -p ##登录查看是否有数据库
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 686
Server version: 5.5.52-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> Bye
4、测试获取数据是否成功
5.在server端,get测试
6.在web端导入percona-mysql模版
点击配置,主机,点击右上角的导入,添加上聚合图形
然后在agent模版界面链接此模版即可
查看此时的监控项为239个
三、利用onealert实现zabbix的告警系统
通过使用 OneAlert 的监控工具集成功能,轻松对接第三方监控工具告警事件。
3.1Zabbix传统告警方法:
- Email:调用 sendmail 、sendEmail 等脚本通过 SMTP 发送邮件
- 飞信:飞信已经退出历史舞台,不再有人使用
- 189/139:发送邮箱邮件至邮箱,邮箱将短信转到用户手机短信,存在一定的延迟
- 微信:需要申请一个微信公众号,并接入API,整个流程比较复杂,而且存在会话时间限制
- 短信:众多短信网关收费不同、稳定性也不确定,需要通过API接入
3.2传统告警方式的不足
- Zabbix 邮件告警经常发不出去
- 如需短信告警,要么购买短信猫要么购买短信 API,整个流程太麻烦
- 微信告警需要申请公众号以及 API 接入,而且会话有时间限制
- 夜间的告警基本成为一个摆设,试问谁能被微弱的短信声叫醒
- 阿里云、腾讯云、Zabbix 各种系统告警都需要单独配置,工作繁琐
- 普遍缺少告警分析
- 139/189 发送告警存在明显的延迟
3.3 onealert告警功能
- 告警 All In One,支持微信、邮箱、短信、APP、电话告警
- 支持接入 Zabbix、Nagios、阿里云、腾讯云、监控宝等等告警信息
- 灵活的分配策略,可灵活的分配告警信息发送给相关人员
- 微信、邮箱、app 等告警方式全部免费
3.4 相关操作
使虚拟机能够上网
- 真机中打开路由功能
- 虚拟机中:将网关设置为真机的ip,并添加解析,看是否能ping通百度
vim /etc/reslove.conf
2.在onelert官网进行相关设置
(1)创建应用APP:初次使用时,需要将您监控系统中的告警接入到 OneAlert 中来。OneAlert 把您的每个监控点称为一个应用服务,您可以在「配置」
->「应用」
模块添加新应用。选择「添加应用」
后,您可以选择匹配的监控平台,系统会以向导的方式指引你完成配置
(2)设置分派策略:您可以将不同的应用、不同级别、不同内容的告警分派给不同的人员。你也可以将团队成员根据角色划分不同级别,比如一线运维人员实时接收告警,二线测试开发人员接收升级(长时间未处理解决)后的告警。
设置通知策略:您可以设置自己或团队成员用何种渠道接收告警,在何种时间、接收什么级别的告警。
3.在zabbix-server端进行配置,可参考OneAlert的官方文档
通过使用 OneAlert 的监控工具集成功能,轻松对接第三方监控工具告警事件。
每一个需要集成的第三方工具,都是一个OneAlert App应用,每个应用的安装方式有些差异。通过Agent集成,如Zabbix、Nagios、Solarwinds、VMWare vSphere 等工具,基本上需要在监控服务器部署告警Agent探针,该探针的作用是将监控工具的告警信息转发至云平台。
4.在zabbix的web界面中添加告警媒介
- 管理->用户->Admin->报警媒介->添加
因为这里没有用到其他3种方式,所以禁用掉
5.测试:
在server8中关闭掉zabbix-agent,5分钟后会发送告警通知,如果绑定手机微信则会在微信通知,等待认领告警
认领告警,再将server8的zabbix-agent服务开启
四、zabbix使用JMX监控tomcat
zabbix-agent端:
- 安装tomcat服务,以及搭建java环境
- vim /usr/local/tomcat/bin/catalina.sh 使JMX能远程监控Tomcat
server2:jave-gateway
zabbix 想知道某主机的java 具体使用情况,需要去zabbix java gateway询问,然后java gateway通过management的API去应用程序查询,然后应用程序需要开启jmx的远程连接,查询到结果之后将结果保存并传回给zabbix server展示,因此zabbix必须要通过java gateway进行协助。java gateway可以安装在任何一台机器,即可以不和zabbix server安装在一个主机上。
- rpm -ivh zabbix-java-gateway-3.4.6-1.el6.x86_64.rpm
zabbix_java_gateway.conf 配置文件不用变动
zabbix-server端:
测试:在zabbix web页面中
五、实现zabbix-proxy
Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构。Zabbix-proxy是一个监控代理服务器,它收集监控到的数据,先存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送到zabbix-server,这样也大大减缓了zabbix-server的压力;监控代理需要一个单独的数据库
实验环境:
server1:zabbix-server
server2:zabbix-proxy
server8:zabbix-agent
zabbix-proxy的配置:
1.安装mysql数据库
2.安装zabbix-proxy
3.修改zabbix_proxy的配置文件
4.zabbix-proxy也是一个小型的server,也需要存储数据,所以需要创建数据库,不能跟server公用一个数据库(一般server不与proxy在同一主机)
5.在zabbix的web页面进行agent代理的配置
- 管理--》agent代理程序--》创建代理
- 输入zabbix-proxy的主机名,并添加其代理的主机server8
6.在zabbix-agent端,编辑 zabbix_agentd.conf文件,将原来指向zabbix-server的ip指向zabbix-proxy,完成后重启服务
7.在zabbix-proxy端,编辑/etc/zabbix/zabbix_proxy.conf(zabbix-proxy这台主机原来是java网关)
测试: