50ぐCPU已知某气体在温度知多少

你可能喜欢
关于本站 本站以分享运维技术为主,欢迎大家参与技术分享,同时也欢迎大家吐槽,本站提供以下交流圈:QQ群①:*****(满)QQ群②:6690706 QQ群③: QQ群④:(新) 微信公众号:ttlsacom 商务合作QQ:zhangke0016 的BLOG
用户名:zhangke0016
评论数:18
访问量:6388
注册日期:
阅读量:5863
阅读量:12276
阅读量:394686
阅读量:1085601
51CTO推荐博文
思路: & & & &利用python的pyzabbix模块去连接Zabbix API,先判断主机是否存在,存在的话就获取这个主机的item,然后在Zabbix API中的history.get中的方法获取这些item是否有数据,有的话就是获取这些数据,然后在这个获取这个主机对应的的绘图,绘图对应的item,判断一个绘图里面有数据的item大于一,然后获取这些绘图加入到screen软件包pyzabbixpip install pyzabbix代码#!/usr/bin/env python2.7
from pyzabbix import ZabbixAPI
from datetime import datetime
import time
import sys
class zabbix(object):
def __init__(self, hostname,columns,name):
#初始化一些参数
self.hostname = hostname
self.columns = columns
self.dynamic = 0
self.name = name
self.server = 'http://10.0.100.10/zabbix'
#zabbix server ip
self.user = 'admin'
#zabbix 帐号
self.passwd = 'admin'
def __login(self):
zapi = ZabbixAPI(self.server)
zapi.login(self.user,self.passwd)
return zapi
def __get_host(self): #获取主机
list_host=self.__login().host.get(output='extend',filter={'host':self.hostname,})
print list_host
return list_host[0]['hostid']
def __get_item(self):
#主机对应的获取item
list_item=self.__login().item.get(output='extend',hostids=self.__get_host())
itemids=[]
for x in list_item:
print x['name'],x['itemid']
itemids.append(x['itemid'])
print itemids
return itemids
def __get_history(self):
#从历史中获取这些item判断是否有数据
self.values={}
for history
self.__get_item():
list_history=self.__login().history.get(output='extend',itemids=history,limit=1)
print history
print list_history
for point in list_history:
print("{0}: {1}".format(datetime.fromtimestamp(int(point['clock'])).strftime("%x %X"), point['value']))
if self.values.has_key(history):
self.values[history]=self.values[history]+int(point['value'])
self.values[history]=int(point['value'])
print self.values
def __get_graph(self):
graphids=[]
list_graph=self.__login().graph.get(output='extend',filter={"host":self.hostname})
for x in list_graph:
#print x['graphid']
graphids.append(x['graphid'])
print graphids
return graphids
def __get_graphitem(self): #从绘图中获取对应的item
have_value_graph=[]
for x in self.__get_graph():
list_graphitem=self.__login().graphitem.get(output='extend',graphids=x)
have_value=[]
for b in list_graphitem:
number=len(list_graphitem)
if b['itemid'] in self.values.keys():
if self.values[b['itemid']] != 0:
print self.values[b['itemid']]
have_value.append(self.values[b['itemid']])
if len(have_value) & 0:
have_value_graph.append(x)
print have_value_graph
graph_list=[]
for graph in have_value_graph:
print "x is " + str(x)
print "y is " + str(y)
graph_list.append({
"resourcetype":'0',
"resourceid": graph,
"width": "500",
"height": "100",
"x": str(x),
"y": str(y),
"colspan": "0",
"rowspan": "0",
"elements": "0",
"valign": "0",
"halign": "0",
"style": "0",
"url": "",
"dynamic": str(self.dynamic)
print type(x)
print type(self.columns)
if x == int(self.columns):
return graph_list
def __create_screen(self):
#创建有数据的screen
graphids=self.__get_graphitem()
columns = int(self.columns)
if len(graphids) % self.columns == 0:
vsize = len(graphids) / self.columns
vsize = (len(graphids) / self.columns) + 1
print graphids
self.__login().screen.create(name=self.name,hsize=self.columns,vsize=vsize,screenitems=graphids)
def __exists_screen(self):
list_exists=self.__login().screen.exists(name=self.name)
if list_exists:
print '%s is exists' % self.name
sys.exit(1)
def __exists_host(self):
list_exists=self.__login().host.exists(host=self.hostname)
if not list_exists:
print "%s is not exists" % self.hostname
def main(self):
self.__exists_host()
self.__exists_screen()
self.__get_host()
self.__get_item()
self.__get_history()
self.__get_graph()
self.__get_graphitem()
self.__create_screen()
if __name__ == '__main__':
optparse import OptionParser
parser = OptionParser()
parser.add_option('-G', dest='graphname',
help='Zabbix Host Graph to create screen from')
parser.add_option('-H', dest='hostname',
help='Zabbix Host to create screen from')
parser.add_option('-c', dest='columns', type=int,
help='number of columns in the screen')
options,args=parser.parse_args()
print options.columns
print options.hostname,options.columns,options.graphname
a=zabbix(hostname=options.hostname,columns=options.columns,name=options.graphname)
a.main()-G:生成新的screen-H:zabbix定义的主机名-c:指定需要几列例子:./screen_graph.py -G tom -H 10.0.100.3 -c 2注:对于数据量大的主机生成screen会有点慢本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:  
类别:未分类┆阅读(0)┆评论(0)
请输入验证码:1198人阅读
zabbix简介
zabbix是完全开源的工具,整合了cacti和nagios等特性
众多网络工具都支持此协议,比如常见路由交换,常见OS
其既可以做管理端也可以做被管理端
snmp协议大致有3个版本分别是v1 v2 v3
比较通用的版本是v2c的版本
无论是v1 和 v2 的安全性是比较差的,因为传输是明文的,v2c的认证机制也很薄弱
但是好在他们支持网络管理的功能,而对于非网络设备(操作系统),可以完全抛开snmp这种不安全的架构来实现监控的。所以很多工具都是所谓的控制端和agent架构,他们有专属的agent
snmp所谓的监控端也是为我们提供了接口再通过程序去采集,数据采集是否保存是否对趋势做分析,snmp都是不关心的,但是snmp只是一种协议
zabbix组件
zabbix server 负责接收数据、统计数据及操作数据均有其组织进行
database storage 专用于存储所有配置信息,以及由zabbix收集数据
web interface &zabbix的GUI接口,通常与server运行在同一台主机上,通常被称为frontend
proxy 可选组件
zabbix 自从2.0以后可以直接监控java应用
模板 : 配置的集合
item : 监控项,比如监控cpu每秒的阈值,一个特定指标的监控数据,被称为监控项,对于zabbix来讲 item是核心,因为监控对象可能有N个监控项目,那我们定义主机之后接下来就要定义主机之后的指标,定义监控项之后就回根据监控项去采集和存储数据了
一旦发现采集的数据超出了阈值之后,那么如下:
触发器 & : 主要定义阈值,用于判定某一次数据采集是否符合条件,比如cpu利用率大于或等于80%,因此用于评估监控对象的某一特定的item所接受的数据是否在合理范围内的,接收数据量大于阈值时,触发器的状态将从ok转为problem,如果一直小于阈值那么一直显示OK的
事件:&触发器一旦从ok转为problem,则属于事件发生,一旦某个事件被触发,我们要执行某个动作&
动作:&指对于特定事件事先定义的处理方法,通过条件和操作
报警升级:& 发送报警或执行远程命令的自定义方案,如每隔5分钟发送一次报警,共发送5次&
媒介:&发送通知的手段或通道,比如邮件 jabber或者sms
通知:发送邮件或其他信息的内容
远程命令:&预定义的命令,可在被监控的主机处于某种特定条件下时自动执行,说白了就是通知层次上的另外操作
& & &用于快速定义被监控的主机的预设条目集合,通常包含了item、trigger、graph、screen
& & &application以及low-level discovery rule,模板可以直接链接至单个主机
安装zabiix
安装zabiix的方式:
·源码安装
同时安装server和agent,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6--with-net-snmp --with-libcurl --with-ssh2
如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --enable-server --with-mysql --with-net-snmp --with-libcurl
如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --prefix=/usr --enable-proxy --with-net-snmp --with-mysql--with-ssh2
如果仅安装agent,可使用类似如下配置命令:
./configure --enable-agent
而后编译安装zabbix即可:
# make install
·rpm包安装
zabbix为各种平台都提供了编译好的rpm包
同时我们也可以直接指定epel源来安装
[root@node3 tools]# groupadd mockbuild
[root@node3 tools]# useradd mockbuild -g mockbuild
/zabbix/2.0/rhel/6/SRPMS/zabbix-2.0.8-3.el6.src.rpm
[root@node3 tools]# rpm -ivh zabbix-2.0.8-3.el6.src.rpm
将mysql与mysql分割开来
10.12.33.58 & & mysql
10.12.33.57 & & zabbix
10.12.33.X & & &其他监控对象
安装zabbix
[root@node3 zabbix]# wget/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm
[root@node3 zabbix]# cp zabbix-2.0.8-3.el6.x86_64.rpmzabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-get-2.0.8-3.el6.x86_64.rpmzabbix-sender-2.0.8-3.el6.x86_64.rpm zabbix-server-2.0.8-3.el6.x86_64.rpmzabbix-server-mysql-2.0.8-3.el6.x86_64.rpm
zabbix-web-2.0.8-3.el6.noarch.rpmzabbix-web-mysql-2.0.8-3.el6.noarch.rpm anzhuang/
先将本地安装为server,先不安装agent组件
[root@node3 anzhuang]# ll
total 5364
drwxr-xr-x 2 root root&&& 4096 Sep& 1 14:06 agent
-rw-r--r-- 1 root root& 123788 Sep& 1 14:04zabbix-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root&& 51228 Sep& 1 14:04zabbix-get-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root&& 18632 Sep& 1 14:04zabbix-server-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root 1463132 Sep& 1 14:04zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm
-rw-r--r-- 1 root root 3806960 Sep& 1 14:04zabbix-web-2.0.8-3.el6.noarch.rpm
-rw-r--r-- 1 root root&& 12068 Sep& 1 14:04zabbix-web-mysql-2.0.8-3.el6.noarch.rpm&
解决依赖关系并安装软件包
[root@node3 anzhuang]# yum -y localinstall *.rpm
对mysql做初始化
需要相关脚本来实现
按顺序导入到mysql数据库中,并且创建相关数据库并授权给zabbix访问的账号密码
[root@node3 anzhuang]# rpm -ql zabbix-server-mysql
看到如下信息,就是我们的脚本
/usr/share/doc/zabbix-server-mysql-2.0.8/create
/usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
/usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql
/usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql
mysql& grant all on *.* to 'root'@'10.12.33.%'IDENTIFIED& by 'mypass' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
测试是否可以连接
[root@node3 create]# mysql -uroot -pmypass -h10.12.33.58
Query OK, 1 row affected (0.00 sec)
[root@node3 create]# mysql -uroot -pmypass -h10.12.33.58zabbix & /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql&
[root@node3 create]# mysql -uroot -pmypass -h10.12.33.58zabbix & /usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql
[root@node3 create]# mysql -uroot -pmypass -h10.12.33.58 zabbix & /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql&
授权非管理员范访问
mysql& grant all on zabbix.* to 'zbxuser'@'10.12.33.%'IDENTIFIED BY 'zbxpass';
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
配置zabbix
[root@node3 create]# cd/etc/zabbix/
[root@node3 zabbix]# ls
web& zabbix_agentd.conf& zabbix_agentd.d& zabbix_server.conf
[root@node3 zabbix]# vim zabbix_server.conf&
更改参数:
DBHost=10.12.33.58
DBUser=zbxuser
DBPassword=zbxpass
DBPort=3306
StartPollers=5 & & #zabbix需要向各agent端取数据的,可以并行启动好几个poller 这样可以并行大规模拉取数据,这个值需要看cpu的核心数,也就是说需要根据当前cpu进行计算
保存退出并启动服务
[root@node3 zabbix]# /etc/init.d/zabbix-server start
Starting Zabbixserver:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[& OK& ]
[root@node3 zabbix]# netstat -lntup
zabbix-server默认监听在10051端口
接下来配置web应用接口&
配置web接口
由于我们之前已经安装过zabbix-web,它会默认在httpd服务目录下生成单独的配置文件
[root@node3 zabbix]# ls /etc/httpd/conf.d/
php.conf& README& welcome.conf&&zabbix.conf
查看zabbix相关路径
[root@node3 zabbix]# rpm -ql zabbix-web
我们能看到,所有的zabbix-web都被放在/usr/share/zabbix/目录下
而这些文件都是只读的
想访问zabbix-web 只要直接启动httpd服务即可
[root@node3 conf.d]# /etc/init.d/httpd start
访问http://10.12.33.57/zabbix/&
第一次访问的时候会提示如下界面
说明我们必须安装zabiix,上面有个警告,说明直接依赖于php默认配置的时区是不安全的,因此最好手动配置时区,所以我们需要更改时区
[root@node3 conf.d]# vim /etc/php.ini&
date.timezone = Asia/Shanghai
/etc/init.d/httpd restart
再次刷新页面,如果没有提示错误信息,则选择下一步
提示检测所有条件是否符合 全部ok则可以进行下一步了
提示后端类型,因为我们安装的是zabbix-mysql 所有只支持mysql数据库,服务器是10.12.33.58 端口为3306 & 0为默认则不需要更改,数据库为zabbix 用户名和密码为我们刚授权的用户权限,输入完后一定要选择testconnection 不然无法下一步
当前zabbix server在什么地方,因为web需要跟server进行交互的,而server就是本机,所以不用更改,而port就是10051,name是可选的,如果zabbix server比较多的话可以为其取名,这里我们就不对其命名了,直接下一步
提示信息,告知我们大概信息是这样是否继续安装
选择finish,直接下一步,接下来跳到登录页面
登录的时候第一次要验证,用户名默认为admin,密码为zabbix
选择登录,可以看到如下界面
zabiix的用户
很显然我们使用zabbix必须得有用户的,如上的菜单每个菜单下面都有子菜单,选择Administration 在子菜单选择User
默认显示的是组,而默认情况下是有俩用户 一个是admin 另一个则是guest
如果提示is running 说明服务器是没有任何问题的
Zabbix的状态信息
表示监控的主机有多少, 0表示正常(被监控) 1表示没有被监控的 23为模板数
Number of hosts (monitored/not &monitored/templates)
0&/&1&/&23
表示没有任何的数据需要采集
Number of items &(monitored/disabled/not supported)
triggers的信息
Number of triggers &(enabled/disabled)[problem/unknown/ok]
0 / 0&&[0&/&0&/&0]
共有几个用户
Number of users (online)
以上信息是经常需要我们去关注的,但是我们现在没有任何的监控对象,所以首先我们要去添加一个需要监控的主机
添加监控节点
[root@node3 zabbix]# scp zabbix-2.0.8-3.el6.x86_64.rpmzabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.:/tmp
root@'s password:
zabbix-2.0.8-3.el6.x86_64.rpm&&&&& 100%& 121KB120.9KB/s&& 00:00&&&
zabbix-agent-2.0.8-3.el6.x86_64.rp 100%& 138KB 138.4KB/s&&00:00&&&
zabbix-sender-2.0.8-3.el6.x86_64.r 100%&& 57KB&56.8KB/s&& 00:00 &&
[root@node1 tmp]# yum localinstall zabbix-*.rpm
[root@node1 tmp]# ls /etc/zabbix/
zabbix_agentd.conf& zabbix_agentd.d &
[root@node1 zabbix]# ll zabbix_agentd.d/
-rw-r--r-- 1 root root 1517 Oct& 3& 2013 userparameter_mysql.conf& & #用来监控mysql的额外所需要的补充
编辑配置文件
[root@node1 zabbix]# vim zabbix_agentd.conf&
更改以下参数:
Server=10.12.33.57
对于其他参数后期可以慢慢更改,于是可以正常启动了
[root@node1 zabbix]# /etc/init.d/zabbix-agent restart
[root@node1 zabbix]# ss -tanl
State&&&&&& Recv-QSend-Q&& Local Address:Port&&&& Peer Address:Port
LISTEN&&&&& 0&&&&&128&&&&&&&&&&&&&&&&&*:80&&&&&&&&&&&&&&&&&*:*&&&&
LISTEN&&&&& 0&&&&&128&&&&&&&&&&&&&&&& :::22&&&&&&&&&&&&&&&&:::*&&&&
LISTEN&&&&& 0&&&&&128&&&&&&&&&&&&&&&&&*:22&&&&&&&&&&&&&&&&&*:*&&&&
LISTEN&&&&& 0&&&&&128&&&&&&&&&127.0.0.1:6010&&&&&&&&&&&&&&&*:*&&&&
LISTEN&&&&& 0&&&&&128&&&&&&&&&&&&&&& ::1:6010&&&&&&&&&&&&&&:::*&&&&
LISTEN&&&&& 0&&&&&128&&&&&&&&&&&&&&&&:::10050&&&&&&&&&&&&&&:::*&&&&
LISTEN&&&&& 0&&&&&128&&&&&&&&&&&&&&&&&*:10050&&&&&&&&&&&&&&&*:*&&&&
LISTEN&&&&& 0&&&&&80&&&&&&&&&&&&&&&&&:::3306&&&&&&&&&&&&&&:::* & &&
接下来就可以对其进行监控了,要想监控其主机,需要新加配置才可以进行
提示如下信息栏
Host & & & & &&&&& 主机自身的属性
Tamplates & & &&&& 关联的模板
IPMI & & & & &&&&& ipmi的属性配置
Macros & & & &&&&& zabbix的宏(变量
Host inyentory & & 企业资产盘点
这里我们只更改host这一项即可:
主机一定要归类到组里面去的,如果没有一个适合我们的,我们可以定义新的组
Host name 跟agentinterfaces 需要注意的是监控接口地址定义的主机才是最关键的
端口为10050,表示使用agent进行连接的,如果对端不支持agent,下面也有列出其他连接方式
查看其状态:
回到主页面查看dashboard
查看当前监控信息:
Number of hosts (monitored/not &monitored/templates)
1&/&1&/&23
监控的主机有1个,没有监控的主机有1个
但是我们现在监控的主机的确是在线的而且能连接agent,说明主机只是处于活动状态,但是我们还需要监控对方的其他信息,比如网络网卡发送数据量等等
因此,我们还需要定义其监控的监控项
定义监控项
创建一个监控项
这里显示的是当前已有的items,依旧选择create items
Type & & & & &item的类型,使用哪种方法采集而来的数据,我们这里需要使用agent进行监控
key & & & & &&对zabbix items而言,key用来标记items的键,我们也称之为标示符,监控对象一定是可采集数据的,为了唯一的标示这个指标,我们要为其做标记,就叫做key,所以对于zabbix而言 key是不能重名的
Use custom multiplier & & #自定义乘以多少倍,需要自定义的,因为我们所要显示的内容在图形里很可能与它的数据单位不一致,所以有些时候采集的数据是按位来处理的,但是显示的是按字节进行显示,所以要乘以8 ,同样的如果以字节为采集单位,显示的为k 那么需要乘以1024
Update interval (in sec) && #定义多少秒采集一次数据,当然我们也可以定义在什么时间内采集
Flexible intervals & & & && #定义采集时间段
Keep history (in days) & && #数据历史保存多少天
Keep trends (in days) & & & #数据趋势保存多少天
Store value & & & & & &&&&& #保存的格式
& & As is & & & & && & & & &#原封不动保存
& & delta (speed per secound) & && #使用当前时间点的值减去上个时间点的值并除以时间来计算速率
& & delta (simple change) & & &&&& #只计算差别而不计算平均速率
#对于网卡速率而言要选择第二个
Show value & & & & & && & & #显示的状态
New application & & & & & & #当前的在状态存放在哪个application里
Description & & & & & && && #描述信息
Status & & & & & & && & & & #状态
创建完毕后返回configureation --& hosts
看到其自动建立了名为NetTraffic 的application
回到主页面并查看监控项
当前monitored有多少个处于监控的状态 为1个
Number of hosts (monitored/not &monitored/templates)
1&/&1&/&23
Number of items &(monitored/disabled/not supported)
当每建立一个item会自动创建图形的
依次选择monitoring --& Latest data,每个节点对应的监控项:
可以看到其监控项,上次数据是2016&当前数据是+476,我们选择Graph&可以查看图形
那么我们对这个节点进行ping操作,使其产生一些数据流量,如下所示:
如果我们想对其监控多个状态只需要再加监控项即可
新加监控项
新加监控多个状态
添加新监控项
添加监控CPU
需要再次创建items
再添加,使其监控cpu的使用率
key为system.cpu.intr 意思是cpu的中断次数
Units 不用填写因为这次与上次没有关系,所以不用计算,而且一定是无符号整数
可看到,我们的一个主机的application 被分为了两个,虽然都是同一个主机
因为这里是根据application为主 建立分组的,此时我们发现所有的application都采集到了数据
使同一application工作在同一张图上
我们自定义某几个指标放在一个图进行展示
可以选择Preview先预览一下效果
选择Save 进行保存
使用screens将图整合
显示为几行几列,这里为1行2列
如下所示:
&接下来再添加网络图
以上,为zabbix的简单部署以及使用方法,感谢各位&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:145826次
积分:1726
积分:1726
排名:第19503名
原创:356篇
转载:230篇
评论:24条
(2)(5)(5)(37)(9)(6)(249)(108)(63)(12)(37)(2)(1)(6)(18)(6)(19)waring_id 的BLOG
用户名:waring_id
文章数:157
评论数:1166
访问量:1874312
注册日期:
阅读量:5863
阅读量:12276
阅读量:394686
阅读量:1085601
51CTO推荐博文
zabbix简介
  zabbix()是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
  zabbix由2部分构成,zabbix server与可选组件zabbix agent。
  zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。  
  zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows /XP/Vista)等系统之上。
  zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
  另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
  zabbix的主要特点:  
  - 安装与配置简单,学习成本低  
  - 支持多语言(包括中文)  
  - 免费开源  
  - 自动发现服务器与网络设备  
  - 分布式监视以及WEB集中管理功能  
  - 可以无agent监视  
  - 用户安全认证和柔软的授权方式  
  - 通过WEB界面设置或查看监视结果  
  - email等通知功能 宋体黑色
  其实网上已有很多的文章说明怎么搭建监控系统,其中最多的要属cacti其次就属zabbix了。个人对这两个软件都体验了一把,感觉zabbix最大的优势是简单、高效;而cacti虽然图然很好看但监控出来的数据不准确(和现实系统表现出来的有出入下面是cacai的图,大家可对比一下)。
  最后决定发现zabbix是正确的选择。网上看上去有很多参考资料,但当你参考时发现仍会出现不同的问题:系统环境不一样;zabbix的版本不一致;相关的PHP模块找不到;相关的MYSQL版本不一致;找不到合适的监控模板等等,本文的目的是尽量解决这些问题同时将自己的做法及想法贡献出来大家一起参考。其中有些部份的内容可能用不到放在这里的原因仅做参考用。
网络设定相关
1.增加路由
route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.0.22
2.系统启动后网卡需手动激活
  原因是最小化安装CentOS6.2后,网卡是没有默认启动的(onboot=&no&),并且设置了依赖NetworkManager 的选项(NM_CONTROLLED=&yes&),但是minimal的情况下并没有安装系统默认提供的网络管理工具NetworkManger。我们需要修改/etc/sysconfig/network-script/ifcfg-eth0文件
3.安装传输文件协方式
yum install lrzsz
1.时间设定
hwclock --set --date=&07/07/06 10:19&
hwclock --hctosys
  时间的正确设定很重要,时间不同步将导致监控的数据不一致,有可能出现监控了一周却始终只有三五天数据或是无法得到当前时间数据的情况。其中第一条语句是设定硬件时钟,第二条语句是设定系统时钟和硬件时钟同步。
2.时区设定
  时区的设定也很重要,如果系统及硬件时钟正确而时区设定不正确的话会导致图形显示出来的数据相关几个小时,因些调整好时区也是一个重要的步骤。
  查找系统文件etc/sysconfig/clock并修改为:
ZONE=&Asia/Shanghai&
  找到系统文件/usr/share/zoneinfo/Asia/Shanghai用这个文件替换当前的/etc/localtime文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  修改php.ini
date.timezone = Asia/Shanghai
  zabbix自带的中文字体不太好看,你可以将自己替换喜欢的字体。常用的字体windows其实已经自带了(系统字体的存放位置位于c:\windows\font中,如下图所示),你可以直接用windows中的字体进行替换。
wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.0/zabbix-2.0.0.tar.gz
tar zxvf zabbix-2.0.0.tar.gz
cp -r /root/zabbix-2.0.0/frontends/php /var/www/html/
mv /var/www/html/php/ /var/www/html/zabbix
cd /var/www/html/zabbix/fonts/
cp -frp DejaVuSans.ttf DejaVuSans.ttf.old
mv simsunb.ttf DejaVusans.ttf
  对于在windows下想用xmanager连接linux进行图形化远程操作的人员来说,设定好XDMCP是必不可少的步骤。这里仅仅介绍linux端的设定,对于该方式和该软件不了解的可以自己google下。
vi /etc/gdm/custom.conf
  修改配置文件。
[security]
AllowRemoteRoot=true
Enable=true
IncludeAll=true
iptables设定
  iptables的作用及它的重要性不需做太多解释,这里只列出必要开放的端口,对于语句或内容有疑问的请自行google或和我联系。
&vi /etc/sysconfig/iptables
  修改iptables配置文件
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6000:6010 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
  HTTPD的作用也无需太多介结大家都能明白,这里需要说明的是HTTPD的设定可能是在安装了HTTP和PHP组件后,这里仅做参考用并不代表安装一定按些步骤。实在不明白的google吧。
vi /etc/httpd/conf.d/zabbix.conf
  增加配置文件
&VirtualHost *:80&
&&&&&&& ServerAdmin zabbix
&&&&&&& DocumentRoot /var/www/html/zabbix
&&&&&&& ErrorLog /var/log/httpd/zabbix.log
&&&&&&& HostnameLookups Off
&&&&&&& UseCanonicalName Off
&&&&&&& ServerSignature Off
&Directory /&
&&&&&&& Options FollowSymLinks
&&&&&&& AllowOverride None
&&&&&&& Order allow,deny
&&&&&&& Allow from all
&/Directory&
&Directory &/var/www/html&&
&&&&&&& Options Indexes FollowSymLinks
&&&&&&& AllowOverride None
&&&&&&& Order allow,deny
&&&&&&& Allow from all
&/Directory&
&/VirtualHost&
禁用selinux
  selinux确实提高了系统的安全性,但另一方面也给应用程序增加了很多的不确定性。我在安装配置完zabbix后曾出现过始终无法打开浏览页面无法进入web安装界面的情况,后来禁用selinux后问题解决。对于selinux的启用与否个人见仁见智可以根据自已的需求决定是否开启。
vi /etc/selinux/config
  禁用selinux
SELINUX=disabled
SELINUXTYPE=targeted
禁用ctrl+alt+del
  禁用ctrl+alt+del的作用是防止机房管理人员误操作导致系统重启的问题。需注意的是在centos6之前的版本中该设置文件是/etc/inittab,而到了centos6以后被放到了/etc/init/control-alt-delete.conf中。
vi /etc/init/control-alt-delete.conf
  禁用ctrl+alt+del
#start on control-alt-delete
#exec /sbin/shutdown -r now &Control-Alt-Delete pressed&
1.增加用户组
  主要是增加zabbix用户组,如果不增加该用户和组,在后面的编译安装时将会有相关提示。
groupadd -g <span style="color: #0 zabbix
useradd -u <span style="color: #0 -g zabbix -c &Zabbix Monitoring& zabbix
2.增加软件源
wget http:///.help/CentOS6-Base-<span style="color: #3.repo
mv CentOS6-Base-<span style="color: #3.repo /etc/yum.repos.d/
wget http://mirrors./fedora/epel//<span style="color: #/i386/epel-release-<span style="color: #-<span style="color: #.noarch.rpm
rpm -ivh epel-release-<span style="color: #-<span style="color: #.noarch.rpm
3.安装相关软件
yum --enablerepo=epel install iksemel iksemel-devel
yum install mysql-server httpd php mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath&& php-mbstring php-xml postfix zlib-devel glibc-devel automake mysql libidn-devel openssl-devel rpm-devel&& OpenIPMI-devel
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
yum& install net-snmp*
4.配置数据库
service mysqld start
mysqladmin -u root password 'password'
mysql_secure_installation
mysql -uroot -p
create database zabbix default character set utf8;
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password';
tar zxvf zabbix-2.0.0.tar.gz
cd database/mysql
cat schema.sql |mysql -u zabbix -p zabbix
cat images.sql |mysql -u zabbix -p zabbix
cat data.sql |mysql -u zabbix -p zabbix&
5.编译zabbix
./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl&& --with-openipmi --enable-proxy --enable-agent
make install
cp misc/init.d/redhat/<span style="color: #.0/zabbix_* /etc/init.d/
chmod <span style="color: #5 /etc/init.d/zabbix_*
chown -R zabbix:zabbix /usr/local/zabbix
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig --level <span style="color: # zabbix_server on
chkconfig --level <span style="color: # zabbix_agentd on
6.配置zabbix
vi /usr/local/zabbix/etc/zabbix_server.conf
  配置zabbix_server.conf文件
SourceIP=192.168.0.189
DBName=zabbix
DBUser=zabbix
DBPassword=password
vi /usr/loca/zabbix/etc/zabbix_agent.conf
hostname=myj-jk
Server=192.168.0.189
  启动zabbix服务
service zabbix_server start
service zabbix_agentd start
7.配置php.ini
memory_limit = 256M
date.timezone = Asia/Shanghai
post_max_size = 32M
max_execution_time = 600
upload_max_filesize = 16M
max_input_time = 600
8.启动httpd服务
service httpd start
  到这里就可以启动web服务进行zabbix的安装了,httpd服务启动后直接在浏览器中输入服务器的IP地址开始安装,按照图形的方式一步一步安装完成吧。后面就如何自定义监控模板(IIS6、IIS7、SQL2005、SQL2008),如自定义MAP图标以及zabbix简单的性能优化写出我自己的理解。本文出自 “” 博客,转载请与作者联系!
了这篇文章
附件下载:  
类别:┆阅读(0)┆评论(0)
00:30:13 13:46:32 13:48:49 18:08:48 01:12:49 09:34:17 09:36:07 10:20:17 17:29:00 13:47:36 16:26:26 13:36:45 &&1&
&&页数 ( 1/2 ) &
请输入验证码:

我要回帖

更多关于 怎么知道cpu温度 的文章

 

随机推荐