zabbix监控tomcat内存-CPU-进程数

公司的主要业务都是apache+tomcat+oracle结构的,所以tomcat的各项指标是监控的主要目标,zabbix自带的java-gateway虽然可以监控tomcat,但是却只能是单实例,明显不符合我的环境,试过用zabbix的lld监控tomcat的多实例环境,虽然可以实现,但是很吃资源,功力不够,目前还没有更好的方案,非常希望能和有这方面经验的童鞋共同探讨,指点一二。

搞不定多实例,就拆开来做吧,虽然麻烦,但是贵在有针对性,更实用。目前已经分开做到监控tomcat服务状态、日志大小、tcp连接数等等,今天记的是监控tomcat的内存使用、cpu利用率和进程数(其实可以是任意进程,看你想监控谁了)。

- 阅读剩余部分 -

用Orabbix监控Oracle11g

最近一直在部署zabbix的监控项目,涉及到的监控对象比较多,有防火墙、交换机、Tomcat多实例、Apache性能、Oracle性能等等,已经部署的差不多了,终于有时间整理一些相关的笔记,分享和备忘吧。

今天先写Oracle监控,以前一直用的MySQL,对Oracle完全不懂,部署监控之前恶补了一些相关的基础常识,买了本书,翻了几次就扔旁边了,数据库真心枯燥。读书少不会写脚本就用插件啊。

- 阅读剩余部分 -

zabbix使用ICMP ping监控网络状态

zabbix为我们提供了多种监控方式,本文所说的ICMP ping正是zabbix内部的Simple check(简单检查),很实用的小功能,可以实时了解主机的网络状态。

1、安装fping

Zabbix使用fping处理ICMP ping的请求,所以我们先安装fping,我的环境是CentOS 6.5 x64.

wget http://www.fping.org/dist/fping-3.10.tar.gz
tar zxvf fping-3.10.tar.gz
cd fping-3.10
./configure --prefix=/usr/local/fping/
make && make install

2、启用fping

[root@node11 sbin]# grep -v "^#" /usr/local/zabbix/etc/zabbix_server.conf | grep fping
FpingLocation=/usr/local/fping/sbin/fping      #fping的绝对路径 修改完了记得重启zabbix_server

3、修改fping权限

fping默认是root执行权限,所以需要修改一下权限使zabbix用户有权限执行。

chown root:zabbix /usr/local/fping/sbin/fping
chmod 4710 /usr/local/fping/sbin/fping

测试一下,

[root@node11 sbin]# su - zabbix
[zabbix@node11 ~]$ /usr/local/fping/sbin/fping 8.8.8.8
8.8.8.8 is alive         #OK

4、web端添加监控项

icmpping

 

 

附效果:

2

Zabbix SQL 注入漏洞修复方案

文章转自阿里云社区

0x00 前言

        昨晚,Zabbix 被爆出一个高危的 SQL 注入漏洞。这个漏洞本身需要登录触发,但因为大部分 Zabbix 都启用了 guest 账号,导致访客在访问 Zabbix 时默认都会带上 guest 权限。有了 guest 权限后,触发这个漏洞的条件“需要登录”就不存在了,相当于一个前台的 SQL 注入漏洞。所以,外部媒体转载的文章中“无需登录”实际上是不严谨的说法。

0x01 漏洞原理

        由漏洞作者提供的 POC 得知,漏洞存在于 jsrpc.php 文件中。发送到此文件的所有参数会传入 CScreenBuilder 中进行处理,过程中调用 CScreenBase 类的 calculateTime 方法的时候使用了 $options['profileIdx2'],profileIdx2 的值最终在 CProfile 的 flush() 函数内带入到数据库 insert 操作中。由于在传入过程中没有对参数内容进行过滤,最终导致了 SQL 注入漏洞的产生。

0x02 影响范围

        云盾在昨晚对云上运行 Zabbix 服务的机器进行安全扫描,发现开启 guest 默认用户且存在此漏洞的 IP 数量达到数百个,存在风险的 Zabbix 服务数量占总数的一半以上。
       此外,官方公告中列出的漏洞影响范围包括以下版本:
  • Zabbix 2.2.x
  • Zabbix 3.0.0 - 3.0.3
        而云盾的扫描结果显示,受漏洞影响的版本号一共 26 个,经过聚合后实际上的影响范围如下:
  • Zabbix 2.0.x
  • Zabbix 2.2.x
  • Zabbix 2.4.x
  • Zabbix 3.0.0 - 3.0.3

官方公告范围不完整的原因,大概是因为漏洞作者在测试漏洞的时候没有对所有版本进行测试,导致漏掉了部分版本。

0x03 修复方案

         1、在 Zabbix 目录中找到 frontends/php/include/classes/user/CProfile.php 文件,定位代码:
$result &= self::insertDB($idx, $data['value'], $data['type'], $idx2);
         把里面的 $idx2 改为 intval($idx2)  。
         2、前往 Zabbix 后台“管理”栏目中禁用 guest 用户。
         3、更新 Zabbix 到 3.0.4 或更高版本。

0x04 参考资料

zabbix通过OMSA监控Dell服务器

OMSA=OpenManage Server Admin,是Dell自家开发的一套IT系统管理解决方案,通过OpenManage管理系统用户可以方便快速的实现服务器的部署、服务器状态的监控和系统更新等。OMSA的具体介绍:传送门

(环境:redhat6.6+zabbix3.0.4)

一、服务器端

1、确认主机型号

dmidecode | grep "Product Name"
 Product Name: PowerEdge R730
 Product Name: 072T6D

2、安装OMSA

 wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash
 yum install srvadmin-all  //安装的时候报一个依赖的冲突,具体是哪个包忘记了,后加了--skip-broken参数忽略,没有安装成功。
 最后,通过下面命令安装成功
 yum install -y srvadmin-base srvadmin-storageservices

3、做软链接并关闭web模式

ln -s /opt/dell/srvadmin/sbin/omreport /usr/bin/omreport
ln -s /opt/dell/srvadmin/sbin/omconfig /usr/bin/omconfig
echo "/usr/bin/omconfig system webserver action=stop" >>/opt/dell/srvadmin/sbin/srvadmin-services.sh

4、启动并加入开机启动

/opt/dell/srvadmin/sbin/srvadmin-services.sh start
echo "/opt/dell/srvadmin/sbin/srvadmin-services.sh start">>/etc/rc.local

二、zabbix配置

1、配置agentd

vim zabbix_agentd.conf 在最下面加入如下内容:

cat /usr/local/etc/zabbix_agentd.conf |grep hardware
#follow is monitor hardware
UserParameter=hardware_battery,omreport chassis batteries|awk '/^Status/{if($NF=="Ok") {print 1} else {print 0}}'
UserParameter=hardware_cpu_model,awk -v hardware_cpu_crontol=`sudo omreport chassis biossetup|awk '/C State/{if($NF=="Enabled") {print 0} else {print 1}}'` -v hardware_cpu_c1=`sudo omreport chassis biossetup|awk '/C1[-|E]/{if($NF=="Enabled") {print 0} else {print 1}}'` 'BEGIN{if(hardware_cpu_crontol==0 && hardware_cpu_c1==0) {print 0} else {print 1}}'
UserParameter=hardware_fan_health,awk -v hardware_fan_number=`omreport chassis fans|grep -c "^Index"` -v hardware_fan=`omreport chassis fans|awk '/^Status/{if($NF=="Ok") count+=1}END{print count}'` 'BEGIN{if(hardware_fan_number==hardware_fan) {print 1} else {print 0}}'
UserParameter=hardware_memory_health,awk -v hardware_memory=`omreport chassis memory|awk '/^Health/{print $NF}'` 'BEGIN{if(hardware_memory=="Ok") {print 1} else {print 0}}'
UserParameter=hardware_nic_health,awk -v hardware_nic_number=`omreport chassis nics |grep -c "Interface Name"` -v hardware_nic=`omreport chassis nics |awk '/^Connection Status/{print $NF}'|wc -l` 'BEGIN{if(hardware_nic_number==hardware_nic) {print 1} else {print 0}}'
UserParameter=hardware_cpu,omreport chassis processors|awk '/^Health/{if($NF=="Ok") {print 1} else {print 0}}'
UserParameter=hardware_power_health,awk -v hardware_power_number=`omreport chassis pwrsupplies|grep -c "Index"` -v hardware_power=`omreport chassis pwrsupplies|awk '/^Status/{if($NF=="Ok") count+=1}END{print count}'` 'BEGIN{if(hardware_power_number==hardware_power) {print 1} else {print 0}}'
UserParameter=hardware_temp,omreport chassis temps|awk '/^Status/{if($NF=="Ok") {print 1} else {print 0}}'|head -n 1
UserParameter=hardware_physics_health,awk -v hardware_physics_disk_number=`omreport storage pdisk controller=0|grep-c "^ID"` -v hardware_physics_disk=`omreport storage pdisk controller=0|awk '/^Status/{if($NF=="Ok") count+=1}END{print count}'` 'BEGIN{if(hardware_physics_disk_number==hardware_physics_disk) {print 1} else {print 0}}'
UserParameter=hardware_virtual_health,awk -v hardware_virtual_disk_number=`omreport storage vdisk controller=0|grep -c "^ID"` -v hardware_virtual_disk=`omreport storage vdisk controller=0|awk '/^Status/{if($NF=="Ok") count+=1}END{print count}'` 'BEGIN{if(hardware_virtual_disk_number==hardware_virtual_disk) {print 1} else {print 0}}'

 

2、重启zabbix客户端

3、导入模板

zabbix服务端导入模板,关联主机

监控项

监控数据

Template Hardware Monitor

zabbix安装之zabbix3.0.3篇

接上文zabbix安装之PHP+Nginx篇

1、环境准备

在此之前,我们已经部署好了zabbix需要的lnmp环境,现在只需要简单的几步即可开始安装了。

1)创建zabbix安装目录

mkdir /usr/local/zabbix -p

2)创建zabbix用户和组

groupadd zabbix
useradd -g zabbix zabbix
#如果同时安装server和agent,不建议用相同用户运行;

3)设置数据库字符集为utf-8、创建MySQL中的zabbix用户

 mysql -uroot -pyourpassword
 create database zabbix default charset utf8;
 GRANT ALL ON zabbix.* TO zabbix@'%' IDENTIFIED BY 'zabbixpsd';   #请按需要修改用户和密码,不建议用默认的zabbix;
 flush privileges;
 \q

4)导入zabbix数据库表

 mysql -uroot -pyourpassword zabbix < database/mysql/schema.sql
 #如果仅为proxy创建数据库,只导入schema.sql即可;否则,请继续下面的顺序导入,否则会报错;
 mysql -uroot -pyourpassword zabbix < database/mysql/images.sql
 mysql -uroot -pyourpassword zabbix < database/mysql/data.sql

2、编译安装zabbix

 tar zxf zabbix-3.0.3.tar.gz
 cd zabbix-3.0.3
 ./configure  --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2  #同时安装server和agent
如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --enable-server --with-mysql --with-net-snmp --with-libcurl
如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --prefix=/usr/local/zabbix/ --enable-proxy --with-net-snmp --with-mysql --with-ssh2
如果仅安装agent,可使用类似如下配置命令:
./configure --enable-agent

看到如下图内容,则编译成功,

[caption id="attachment_318" align="alignnone" width="628"]zabbix3.0 zabbix3.0[/caption]

make && make install

3、配置zabbix

1)zabbix_server.conf配置

 mkdir /etc/zabbix
 cp conf/zabbix_server.conf /etc/zabbix/
 vim /usr/local/zabbix/etc/zabbix_server.conf

修改如下配置:
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpsd

/usr/local/zabbix/sbin/zabbix_server   #启动zabbix

如果出现这样的错误,error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/ #如果是32位,就链接到 /usr/lib/

2)zabbix前端配置

 mkdir /data/website/zabbix.opdev.me/zabbix -p
 cp -rp frontends/php/* /data/website/zabbix.opdev.me/zabbix/

访问http://zabbix.opdev.me/zabbix

这里的目录和域名是在配置nginx+php时设置好的,zabbix安装之PHP+Nginx篇
确保PHP对zabbix目录有写入权限,否则后面会报类似:Cannot create the configuration file这样的错误。

3)配置zabbix服务并加入启动项

vim /etc/services  添加如下内容:

zabbix-agent 10050/tcp 
zabbix-agent 10050/udp 
zabbix-trapper 10051/tcp 
zabbix-trapper 10051/udp

vim /etc/rc.d/init.d/zabbix_server

BASEDIR=/usr/local/zabbix/ #你的zabbix安装目录

vim /etc/rc.d/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix/ #同上
cp misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server  #服务端
cp misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
chmod +x /etc/rc.d/init.d/zabbix_server 
chmod +x /etc/rc.d/init.d/zabbix_agentd 
chkconfig zabbix_server on
chkconfig zabbix_agentd on

4)初始化

访问http://zabbix.opdev.me/zabbix

anzhuang

版本号:3.0.3

1

环境检测

 

2

填入前面创建的MySQL中的zabbix用户和密码,端口默认即可。

3

不用管,默认即可,下一步!

4

安装信息,不用管,下一步!

5

OK,安装成功!

默认用户名:Admin  密码:zabbix   登陆后如下图,开启你的zabbix之旅吧!!!

ok