标签:linux
前两章:zabbix的基础原理
OS的自动安装:
kickstart,pxe,cobbler//安装OS的工具
管理工具:OpenStack
开源网管工具:Cacti,Nagios,Zabbix
第一章:
1.zabbix入门:
SNMP:简单网络管理协议
NMS:网络监控服务,负责监控其他设备 //负责采集数据等
//监控对方的cpu信息,大开的文件数量等
SNMP (nms/agent)
采集数据:
//snmp就是在每个节点安装一个代理端,代理端收集信息,然后
//当管理端来采集的时候,回馈给管理端
linux需要net-snmp包
SNMP(v1,v2,v3) //v1,v2安全性能很差,数据传输时明文的,认证机制也非常弱
1.在节点上安装专门的 agent
2.基于ssh的脚本,具有相应权限,实现命令的使用
//得有节点上的账号
net-snmp 提供的命令 snmp get ,get-next,get-bulk
2.常见的工具:cacti,nagios,zabbix对比
cacti :能够调用snmp机制,依赖于snmp实现数据采集,
//不需要在任何节点上安装工具,cacti只是数据采集,保存工具,
采集数据
保存下来
分析数据//展示
数据分析及报警 //并且报警能够升级,报警功能相对一般
//保存的形式,开始的时候,直接占用空间,固定大小,
//rrd轮转数据库,占用磁盘空间大小一定,过多的就会覆盖,
//类似于环形管道,一直往里存数据,数据大小是一定的
rrdtool //rrd能够保存数据和绘图,
阈值:合理上限,超出了上限,就要出发报警,低于上限就要触发报警
nagios :报警,能够实现 //实现软状态切换,第一次发现,立即完成状态切换
各种有开放API的都可以进行通知,绑定msn,邮件等
依赖关系 // 能够自动实现,假如一个关键设备,故障
//和这个关键设备相关联的就不在报警,否则会一连报警很多
nagios //只关心警戒位,超过了,就是不正常,没有超过就不正常
//不关心多少为正常,多少位非正常
//强大的报警工具,
nagios也能实现保存,但是需要使用插件
只关心正常与否的状态
依赖关系 //能够实现分离
//nagios自身就是一个独立的监控对象
//nagios和cacti都不适合做大型网络的使用
监控的内容:
devices /software
server,router,switched,I/O,systems
Operating System,Networks,
incidents
DB down,Replication stopped,Server not reachable,
Critical Events
Disk超过n%,full或者快要满了
100%CPU使用率,
紧急事件
如何监控:
基本的办法:
top,vmstat,iostat,mytop,innotop,SHOW global status
show innodb status
图形工具:
nagios(Opsview,Icinga),Cacti,Zabbix...
//zabbix可以认为是整合了nagios和cacti,但是具有更多的功能
MS //一个监控系统应该具有的功能:
Data gathering,Alerting,Data
zabbix的监控:{实现}
1.基于SNMP的网络设备的监控
2.任何安装zabbix_Agent的OS
3.不安装任何软件,基于ping和port check实现安装
zabbix可以监控10w设备
几乎可以监控任何OS
zabbix监控途径:
zabbix agent //zabbix专用的代理
snmp agent //snmp代理
IPMI agent //很多服务器专用的硬件管理接口
agnentless monitoring //没有插件,基于ping,port scan
web monitoring//web服务,监控其状态,
database monitoring//数据库监控
internal check//内部检测,在任何一个
cacluated monitoring //计算监控
custom command monitoring //
提示的方式:
e-mail, //立刻
sms //10min
jabber//15min
chat message//30min
command execution//1hour
zabbix架构:
zabbix web gui |
-------------- ||web page
zabbix database|--->|ICMP/IPMI/SNMP:Devices
---------------||Agent:OS
zabbix server |
---------------|
/
-------------
zabbix proxy|------------>|web page
-------------| ICMP/SNMP/IPMI:Devices
|Alerting:OS
web server:负责收集接收agent发送的报文信息的核心组件,所有配置
统计数据以及操作
web interface:zabbix的GUI接口,
proxy:可选组件,常用于分布式监控环境中,代理server收集部分被监控的监控数据,并统一发往server端
//代替我接受其他agent的信息
agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端
//收集被监控主机的信息,
zabbix可以监控Java应用
zabbix常用的术语
主机组:主机的逻辑容器,可以包含主机和模板,主机组通常在给用户或用户组指派监控权限时使用
监控项:item,一个特定监控指标的相关的数据,这些数据来自于被监控对象,
触发器:定义规则,阈值,
动作:action,对于特定事件实现定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作)
报警升级:escalation:发送警报或执行远程命令的自定义方案,如每隔5min发送一次警报,共发5次等
媒介:发送通知的手段或者通道,如EMail,jabber或SMS等
通知notification:通过选定的媒介,向用户发送相关的信息
zabbix server需要启动的进程
watchdog看护进程pinger
housekeeper管理各个进程的配置,timer
alerter警报escalator 报警升级的时候使用
poller //到各个agent端去取出数据,可以并行启用很多nodewatcher
httppollerdb_config_syncer
discovererdb_data_syncer
安装:
使用epel源
1.yum install zabbix zabbix-agent zabbix-get zabbix-sender zabbix-server
zabbi-server-mysql,zabbix-web,zabbix-web-mysql
//sender能够说主动发送信息
2.要实现zabbix到数据库中存储数据,要对mysql进行初始化
创建zabbix库
添加mysql登录用户
为该用户提供存储zabbix库权限
//按schema,images,data//按顺序导入到mysql服务器中去
//rpm安装的话,rpm -qa zabbix-server-mysql
grant all on *.* to ‘root‘@‘10.0.%.%‘ identified by ‘zbpass‘ with grant option
flush privileges
创建zabbix库以后
mysql -uroot -pmypass -h10.0.0.91 zabbix< /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql
ss -tanlp //查看套接字数
zabbix-server 10051//默认端口
在zabbix-web使用rpm包安装以后,会在/etc/httpd/生成一个zabbix.conf的目录
//yum install zabbix-web
zabbid的Administrator是管理zabbix-gui以及zabbix的使用
监控另外一台主机:
1.被监控主机
安装:zabbix,zabbix-agent,zabbix-sender //sender并非是必须的,只有你需要
//向外部专门发消息的时候,才需要
vim /etc/zabbix/zabbix_agentd.conf //告诉其server的位置
Server=
service zabbix_agentd start //启动agentd进程
ss -tanl //查看zabbix-agent启动的进程
zabbix-server :监听的端口 10051
zabbix-agent :10050监听端口
2.zabbix server端
zabbix:configure-->host-->create host
host:
host name:10.0.0.91
visible name:可见名,自定义
In groups :内置的组,可以自定义
Agent interfaces :和host name可以相同,
//interface可以为多个,例如一个主机可能有多个网卡
其他的链接方式:
SNMP
JMX
IPMI
proxy
status :monitored//monitored启用监控
//查看zabbix:monitoring-->dashboard就会看到记录
templates:
IPMI:
Macros:宏
Host inventory:资产
//可以定义configuration:hosts的{name,Application,Items,Triggers,graphs,Discovery,Interface,Templates}
//items监控项,多个item可以归结为一个组,成为application,items定义好后,还需要定义触发器
//先点击items,创建items
3.自定义item,application
configuration:-->hosts--->item->create-->item,
zabbix:Item ,key(键),key还可以接受参数,//key只是用来标识某一种标识监控功能的
例如:定义一个key为ethercard来监控网卡的流量,但是一个主机可能有多个接口,需要接受一个参数来区分网卡
内置的item: net.if.out[if,<mode>] //<>是可省略的
创建爱item:
host 是定义的节点
name 是自定义的
type zabbix agent
key net.if.out[eno16777736]
Type of information numeric
data type : dacimal
units:单位,多少字节,多少个一个单位
Use custom multiplier:以任意字节采集单位可能需要换算
//采集的位k,需要乘以1024,为二进制,需要乘以8,
updated interval (in sec) //多长时间采集一次
可以定义在什么时间采集,例如周一到周五
History storage period (in days)//保存多少天
Trend storage period (in days //趋势数据保存多少天
Store value //as is是采集的过来是什么,还是什么
delta (speed per second) //网卡一般使用,当前时间点,减区上一时间点,除以时间
delta (simple change ) //只计算上一时间点和现在时间点的差值,而不除以时间
show value //显示的方式
New application //定义到哪一个application中
4.screen让多个图形组合在一起显示:
1.创建graphs,可以把多个图形显示在一起
configuration-->hosts-->graphs-->create graphps
图像类型:normal,stacked//多张图叠合在一起
show legend:显示纵轴和横轴
5.使用screens让多个图形整合起来
configuration-->screen-->create screen
2 column &1 row //1行2列
一个屏幕上放多个,视图
注意:
zabbix_agentd start //需要手动启动zabbix_agentd服务
//只有查看configuration--hosts-status //得到信息,才证明是启动的
第二个视频:
数据采集-->数据存储-->数据展示和分析--->报警
数据采集:
SNMP //windows上开启,以及snmp命令的使用,MIB等
//有的被监控对象是不支持snmp的
agent //能够和监控端实现,使用代理服务
ICMP/SSH/IPMI //ipmi是专用接口
数据存储:
cacti:rrd//round robin database ,轮转存储,
//像一个管道,往里存数据,满了,最早的就会被丢弃
nagios:mysql,也可能是无数据库的
zabbbix:mysql/oracle/pgsql
数据展示:(web)
java
php
移动app
报警:
smpt:转发邮件报警
调用例如web的api,发送即可
chat message//聊天工具也可以
SMS //手机短信,短信平台接口,短信机器人
zabbix
数据采集zabbix agent //使用agent代理,默认为被动,发送
agent(active)//agent可以主动发送数据给server
SNMP
SSH
存储:RDBMS等,众多
数据展示:php,web gui
报警:报警升级
如何确定zabbibx的监控对象:
手动添加
自动发现
hosts,host group
item:多个item归为一个类application
item:在agent上通过key标记一个item,//server通过key来区分不同的item
//在同一个agent上的key是不能重复的
graph:在一个图形上可以展示多个指标,item
//在一个item会自动生成一个graph
screen:多个graph放在一个屏幕上
trigger:定义一个数据指标的阈值,一个边界线
trigger可以生成event,但是event不一定都是trigger生成的
action(notification,operation,condition):trigger产生后,执行一个动作
//满足条件的时候,监控该指标,condition条件
//item,trigger,action
创建触发器:
阈值:{problem|OK}
表达式:{<server>:<key>.<function>(<parameter>)}<operator><constant>
{www.magedu.com: system.cpu.load[all,avg1].last(0)} >3
server:主机名
key:响应item的key
function:评估采集到的数据是否在合理的范围内
//avg,count,change,date,dayofweek,delta,diff,iregexp,last,max,min,nodata,now,sun等
//change:上一次和这一次的差值,上一次:30,这次50,差值为20
//dayofweek:星期几
//delta;计算二者的差值
//diff;不同之处
//iregexp;基于正则表达式做匹配
//last;最后几次采样,last[2]最后2次采样啊
//nodata;没有采集到值
//max(1h,7d)返回一周之前的1h之内最大值
paramter:函数参数//例如sum(300)300秒内的所有取值之和,sum(#10)最近10次取值之和
触发器的操作符:
/,*,-,+,<,>,=,&,|,#:不等于
例子:{www.magedu.com:system.cpu.load[all,avg1].last(0)}>3
//主机上所有cpu的过去1min的平均负载的最后一次取值大于3时将触发状态转换
//对于last来说last(0)相当于last(#1)
//last(0)是一个parameter,[all,avg]是一个function
重点:zabbix的核心功能组件:
zabbix_agentd:--------------->zabbix_proxy-------------->zabbix_server //{Web Brower}
{zabbix_agentd.log}{zabbix_proxy.log}zabbix_server.conf
{zabbix_agentd.conf}{zabbix_proxy.conf}zabbix_server.log
//proxy不是必须的,server可以直接和agentd去交互采集信息
zabbix的逻辑架构:
新的一天//实践过,可以
一:安装方式:
1.下载地址:http://www.zabbix.com/download.php
同时安装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
make && make install //安装即可
2.yum安装,官方下载源,yum 安装即可
yum install epel-release
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
rpm -Uv http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
//在agent端使用yum install zabbix-agent即可
配置zabbix:
server的配置文件为zabbix_server.conf,至少应该为其配置数据库等相关的信息;
agent的配置文件为zaabix_agentd.conf,至少应该为其指定server的IP地址;
proxy的配置文件为zabbix_proxy.conf,至少应该为其指定proxy的主机名和server的IP,以及数据库等相关的配置信息
启动zabbix:
server: zabbix_server
agent: zabbix_agentd
proxy: zabbix_proxy
//视频中使用yum安装
二.初始化mysql:
以MySQL数据库为例:
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL ON zabbix.* TO zbuser@‘%‘ IDENTIFIED BY ‘zbpass‘;
# 请按需要修改用户名和密码;
shell> mysql -u<username> -p<password> zabbix < database/mysql/schema.sql
# 如果仅为proxy创建数据库,只导入schema.sql即可;否则,请继续下面的步骤;
//视频中把mysql做到另外一台主机上,server和mysql是两台主机
shell> mysql -u<username> -p<password> zabbix < database/mysql/images.sql
shell> mysql -u<username> -p<password> zabbix < database/mysql/data.sql
在server上指定的服务器,说明其mysql存储的位置
cp /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql.gz /root
//source /root/create.sql; 2.4.5//只需要一条命令就行了,
三.修改zabbix_server.conf
DBHost //指定主机的mysql
DBName //库文件名
DBUser //zabbix,使用mysql的用户名
DBPassword ///密码
StartPollers //zabbix并行启动多少个poller,同时到多个agentd上拉取数据
//一个poller可以拉取多个item
//zabbix_server需要启动的进程,每一个进程可能需要启动多个
//poller拉取信息,escalator报警升级管理的
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
systemctl restart httpd
四:配置zabbix_agent
Server=127.0.0.1
Hostname=127.0.0.1
ServerActive=127.0.0.1
五、修改PHP 设置
max_execution_time = 600
max_input_time = 600
memory_limit = 256
Mpost_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shangha
六.修改firewall和
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
systemctl restart firewalld
七. vi /etc/httpd/conf.d/zabbix.conf //定义了各种访问属性
# Zabbix monitoring system php web frontend
#
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>
<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>
启动zabbix-server 和zabbix-agent。重启httpd,,并设置zabbix-server和zabbix-agent开机自动启动
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl restart httpd
systemctl restart mariadb
systemctl enable zabbix-server
systemctl enable zabbix-agent
//参考http://www.cnblogs.com/XYJK1002/p/5324293.html
八.修改成中文
vim /usr/share/zabbix/include/locales.inc.php
找到第55行,将false改为true
点击zabbix右上角小人,进行修改:
Win+R打开运行,输入fonts,回车进入Windows字体目录,找到微软雅黑-常规字体,复制出来将文件名修改为msyh.ttf,然后上传到/usr/share/zabbix/fonts
vim /usr/share/zabbix/include/defines.inc.php
将‘graphfont‘ 修改为msyh。
实验:监控另外一台主机:
1.agentd:yum –y install zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf //修改配置文件
Server //主要修改Server即可
ListenIP //是agentd需要监听的地址
ListenPort //agentd需要监听的端口
systemctl start zabbix-agent
systemctl enabled zabbix-agent //启动并开机启动
ss –atlp //可以看到agentd的进程
2.server上添加一个主机
configuration---hosts---create hosts---
Host:
agent interface //这个最重要
Templates: //链接的模板
IPMI:
Macros:
Host inventory:
//此时在server上就可以看到效果了
3.创建item //监控网络out流量,监控in的流量,两个item为一个组
configuration---hosts---需要监控的主机---create item---
type: zabbix agent
key : 一个item的标识符 //监控一个agent的一个指标 //net.if.out[eno16777736]
Type of information //要采集的数据的类型
data type:数据类型,八进制,十进制,十六进制
units:单位//采集到的数据,是比特,还是什么
use custom multiplier: 自定义乘以多少倍,
store value //存储的格式,as is :采集到什么就使用什么,delta:每s内的平均值
show value //显示的方式 as is //针对网卡流量来说,store
//monitoring---last data--- 会看到监控的内容,建立一个item之后会自动创建一个图形
//在server上ping agentd,会看到明显的效果
4.创建graph图像
configuration—hosts—graph—create graph
//graph可以让两个item显示在一张图上,默认一个item对应一个graph
//screen可以把多个图,放在一起组合成一张图
graph type: //堆叠图,分裂图,饼图等
y axis MIN value //y轴的刻度是多少 //使用calculate即可,实现自动创建
10.31小结//yum 安装zabbix,安装agentd,创建item,创建graph,创建screen
小结:
1.yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
2.初始化mysql
3.修改配置文件//四个
/etc/zabbix/zabbix_server.conf 服务器端配置,DB
/etc/zabbix/zabbix_agentd.conf监控自身的配置,Server
/etc/httpd/conf.d/zabbix.conf 关联httpd的配置 Asia/Shanghai
/etc/php.ini php相关属性 date.timezone
4.systemctl start|enable zabbix-server,
被监控主机:
yum install zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
Server //修改server地址即可
创建item
创建graph
创建screen
//共要配置5个,apache,mysql,php,zabbix-server,zabbix-agentd;最后启动mysql
本文出自 “12245402” 博客,请务必保留此出处http://12255402.blog.51cto.com/12245402/1869635
标签:linux
原文地址:http://12255402.blog.51cto.com/12245402/1869635