一、zabbix监控nginx
在server2上部署nginx 配置 编译、安装 创建软链接方便使用 修改nginx配置文件,设定只允许本机访问 语法检测 启动服务 本机访问测试; server accepts handled requests — 总共处理了1个连接 , 成功创建1次握手, 总共处理了1个请求; reading — 读取客户端的连接数; writing — 响应数据到客户端的数量 waiting — 开启 keep-alive 的情况下,nginx 已经处理完正在等候下一次请求指令的驻留连接. 访问本机时,可以看到nginx的默认发布页面 其他主机访问时被拒绝 此时就可以查看图形的各种监控项了,但是发现有乱码,这是由于服务器zabbix字体的原因。 解决字体乱码方法:将真机的字体文件传给server1(zabbix服务端) 将字体文件复制到相应目录下 把之前的文件删除,将正确的中文字体软连接为原来的文件,好处是不需要动配置文件 此时再次查看server2图形监控,发现字体正常 通过shell命令,截取我们需要的信息; 过滤得到活跃连接数 接下来,编写一个nginx脚本,通过agent获取信息; 重命名文件 把刚才在shell测试的抓取指令写进去,脚本内容如下; 完成之后,重启agent server1安装zabbix-get,zabbix_get命令是在server端用来检查agent端的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据。 -s --host: 指定客户端主机名或者IP; -p --port:客户端端口,默认10050; -k --key:你想获取的key(键值) 接下来需要图形化添加监控,网页访问172.25.1.1/zabbix,为server2创建监控项 之后选择创建图形: 创建完成,点击更新,查看图形结果 当出现数值时表明图形添加成功 添加更多nginx监控项; 通过shell命令截取所需处理连接数 , 成功创建握手次数, 处理的请求次数 同样的添加到之前的配置文件里面,重启agent端服务读取脚本 我们在server1验证,获取agent端的相关键值 同样的,分别添加三个监控项nginx_accept,nginx_handle,nginx_request 然后选择图形nginx_status,在监控项处点击添加 完成之后,预览一下图形
二、zabbix监控mysql
因为之前在server1搭建了mysql数据库,为了节省资源,我们直接使用server1; mkdir /var/lib/zabbix zabbix :创建目录 cd /var/lib/zabbixzabbix :放zabbix脚本 vim .my.cnf:修改文件引导 zabbix_get -s 127.0.0.1 -p 10050 -k “mysql.ping” :可以正常看到值 添加DB mysql模板 查看图形信息 但是由于自带的mysq模板监控项(只有102个)太少了,所以我们需要手动添加模板; 删掉刚才添加的mysql模板 将真机的percona模板软件包传给server1 server1安装percona-mysql模块rpm包 将模板文件复制到zabbix服务相应位置 编辑如下.php文件,修改真实的用户和密码如下: 安装php-mysql 手动测试如下,手动测试之后会生成一个txt文件,这个文件默认权限是root,而访问时是用zabbix用户访问的,所以测试完成后删除.txt,root用户下测试的文件其余用户无法写入 现在导入外部模板 把zbx_percona_mysql_template.xml(真机上提前下载好)导入到模板中,导入时聚合图形 接着选择zabbix server添加已经导入的模板 之后点击触发器,需要禁用一个触发器 停用stop slave触发器 完成之后,进到/tmp目录,发现已经自动生成了前面删掉的文件,而且用文件所属权是zabbix 此时监控项就增加到了279项 图形监控如下
三、zabbix监控tomcat+jave
监控原理: 1、当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavagateway收到请求后使用"JMXmanagementAPI"去查询特定的应用程序,而前提是应用程序这端在开启时需要"-Dcom.sun.management.jmxremote"参数来开启JMX远程查询。Java程序会启动自身的一个简单的小程序端口向Zabbix-JavaGateway提供请求数据。 2、配置Zabbix监控Java应用程序的关键点在于:配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等 ; 3、Java-gateway不安装在zabbix-server上也可以,仅仅是作为一个采集器,tomcat监控主要是监控JVM。 我们在server1上安装java模块插件 默认java应用监听端口10052 编辑 zabbix_server.conf文件,设定java监听网关指向zabbix-server主机并设置处理的进程数 将真机的tomcat压缩包传给server3,Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 server3解压缩,创建软链接 编辑tomcat脚本,设定JMX监听端口为8888,vim /usr/local/tomcat/bin/catalina.sh 然后安装java 开启脚本 查看端口 网页测试tomcat是否启动成功,访问172.25.9.3:8080端口(Apache Tomcat web server安装后,默认的服务端口就是8080) 点击server3,选择模板,将java TMX加入模板 将JMX端口写入 此时发现server3的JMX绿色亮了 查看监控图形,出现数据
四、Zabbix-agent主动模式 (全克隆)
在server2上操作,StartAgent:处理被动检查的zabbix agentd的预分叉实例数。如果设置为0,则禁用被动检查,代理将不会侦听任何TCP端口。 点击OS 模板,选择全克隆 创建Active模板 左下角全选,点击下面的批量更新 选择zabbix客户端主动式 server2点击添加模板,将Linux-Active模板进行链接 更新成功,此时server2将直接向zabbix server(server1)传递主机信息
五、Zabbix + proxy分布式
原理: server1 ( zabbix-server、mysql-server ) <---- server4( proxy ) <------ server3( agent ) 如果所有agent直接向server传递主机信息,一方面会增大server的负载,另一方面由于所有agent都需要穿过防火墙,因此降低了安全性,所以设定代理server收集所有受监控主机信息,再传给server控制端,降低负载同时保证安全性。 实验环境: server1作为zabbix server控制端 server4作为代理端,负责接受其他agent发来的信息,再传递给server1控制端 server3作为agent,向代理端传递信息 server4安装proxy并使用Mysql数据库 编辑 /etc/zabbix/zabbix_proxy.conf 配置文件; DBName=zabbix_proxy:数据库中的库名称 DBHost=172.25.36.1:数据库位置 DBUser=zabbix :访问数据库的身份 DBPassword=westos:访问数据库的密码 将生成的数据库信息传给数据库位置server1中 查看服务进程是否开启 将server4的主机名改为proxy 在server1,2,3,4的本地解析都加入server4解析proxy server进入数据库 创建mysql数据库zabbix_proxy,并将库的所有权利给zabbix用户,授权后刷新 将schema.sql.gz 文件解压后导入 zabbix_proxy 库中 点击创建agent代理程序 然后输入代理名称,代理地址 在server4的配置文件里面继续修改; Server=172.25.36.1 :分布式服务位于zabbix-server端 ServerPort=10051 :默认端口为10051 Hostname=proxy :主机名为proxy 查看server4日志显示:成功接受server1的信息 server1日志显示:成功发送信息给server4 然后再网页上点击主机server3,选择proxy代理 然后修改server3的配置文件/etc/zabbix/zabbix_agentd.conf; 设定其server为server4(proxy) 查看图形,此时server3通过server4的proxy成功连接到zabbix-server端 此时发现JMX不能正常工作 在server4修改配置文件; JavaGateway=172.25.36.1 :java服务监听端口指向zabbix-server端 StartJavaPollers=5 :Java轮询器为5,实际设置根据需求 此时所有服务将恢复启用 如果设定完server3中的java导入proxy后,查看server1的日志显示不能找到,需要刷新zabbix-server 数据修改缓存:zabbix_server -R config_cache_reload
|