设为首页 收藏本站
查看: 1395|回复: 0

[经验分享] zabbix-前奏

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-14 09:42:30 | 显示全部楼层 |阅读模式
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的逻辑架构:

新的一天//实践过,可以
wKioL1gmlBPSzQOXAABw1Qu9oIU140.png-wh_500x0-wm_3-wmp_4-s_1071842211.jpg
一:安装方式:
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-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
wKiom1gmlEiyBiaoAADuuDcaakY482.png-wh_500x0-wm_3-wmp_4-s_1265634542.jpg //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




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-300099-1-1.html 上篇帖子: zabbix-整理 下篇帖子: Zabbix 监控 tomcat 连接池(报错org.archive.jmx.Client ...is not a regi...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表