您的位置:首页 > 运维架构 > Shell

坚持#第272天~zabbix监控(安装、配置、shell脚本自动实现)

2018-01-18 22:37 981 查看
# 安装zabbix
# 执行顺序1,监控中心
# 先把zabbix3.2文件夹拷进来,不用cd进去
firstDir=`pwd`
cd zabbix3.2
yum localinstall * -y
yum install mariadb-server httpd -y
systemctl start mariadb
mysql -e "create database zabbix;"
mysql -e "delete from mysql.user where user='';"
mysql -e "grant all on zabbix.* to zabbix@'%' identified by 'zabbix';"
mysql -e "flush privileges;"
cd /usr/share/doc/zabbix-server-mysql-3.2.11
gunzip create.sql.gz
mysql -u zabbix -pzabbix -D zabbix < create.sql
sed -i '115c\DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
sed -i '19c\php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
echo "使用systemctl start httpd和systemctl start zabbix-server启动服务端口是10051"
echo "安装预备工作已完成,请打开浏览器输入本机ip/zabbix进入主页进行zabbix安装"

# 执行顺序2,监控对象
# 先把zabbix-agent-3.2.11-1.el7.x86_64.rpm拷进来,不用解压
read -p "请输入监控中心的ip:" jiankongzhongxin
hostIP=`ifconfig ens33 | grep netmask | tr -s " " | cut -d " " -f3 | cut -d "." -f1,2,3,4`
firstDir=`pwd`
yum install -y zabbix-agent-3.2.11-1.el7.x86_64.rpm
sed -i '95c\Server='${jiankongzhongxin}'' /etc/zabbix/zabbix_agentd.conf
sed -i '136c\ServerActive='${jiankongzhongxin}'' /etc/zabbix/zabbix_agentd.conf
sed -i '147c\Hostname='${hostIP}'' /etc/zabbix/zabbix_agentd.conf
sed -i '293c\UserParameter=boot.used,/usr/bin/df | /usr/bin/grep "boot" | /usr/bin/tr -s " " | /usr/bin/cut -d " " -f5 | /usr/bin/cut -d "%" -f1' /etc/zabbix/zabbix_agentd.conf
echo "使用systemctl start zabbix-agent开启zabbix-agent服务,端口是10050"

nagios安装完成后会出现那些目录?
etc  libexec var里面放日志 
etc 里面有object  htpasswd.users  nagios.cfg resource.cfg  htpasswd.user  cgi里面放控制访问的(control)
 
object里面的contacts.cfg发送到本机邮箱里面,发送到QQ邮箱就需要第三方软件
 
nagios显示状态:0正常 1警告 2严重错误 3未知
 
nagios可以实现远程监控,怎么实现?
通过nrpe插件,check_nrpe,xinetd,SNMP协议?实现结果的反馈
客户端要修改哪些配置?1.在主配置文件里面设置命令的定义
2./etc/services设置端口;3.写脚本在libexec里面
被监控端有nrpe,监控端没有nrpe,不能实现远程监控,必须要同时有nrpe才行
 
linux里面发邮箱、邮件需要打开postfix
mail -s“zhuti” root@localhost dsfaiuhldsif发不了要开启服务
yum install-y postfix
systemctlstart postfix
echo  hell | mail -s “zhuti” root@localhost
查看用mail输入最新一条
 
cacti对数据的展示做的很好,但是对数据的反馈做的不好
nagios对数据的反馈做的很好,但是对数据的展示做的不好,无法将多个集群的数据集合起来。
 
zabbix可以让客户机自动配置好,自动化监控
开源,开放式接口,扩展性强,插件编写容易
但是,需要在被监控主机上安装agent,所有数据都存在数据库里,产生的数据量很大,瓶颈主要在数据库
 
zabbix监控原理
 

 
proxy可选组件,代理的主要功能就是分担真实服务器的压力
agent:被监控机上,负责收集本地数据并发往Server端或Proxy端,和nrpe一样
 
术语:
item:监控项,监控的东西、特定指标
trigger:触发器,达到什么样的条件触发什么事件,阈值,不在阈值范围触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";
action:处理动作,如发生通知,何时执行,满足条件告警动作
media:报警媒介,通知的手段,如Email
template:模板,快速定义上面的集合,模板可以直接连接某个主机
frontend:前端哈哈哈,zabbix的web接口
 
一个监控系统运行的大概的流程是这样的:
agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbixserver端,zabbixserver将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。
这里agentd收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
 
agent的被动模式情况下对真实服务器会造成巨大压力,因为这种情况下每一次都会使Server打开一个TCP连接
 
真实服务器这边:
数据库
lamp
zabbix
 
客户端这边;
agent软件
 
start:
监控中心clone1
拷贝zabbix的文件夹到里面
cd进去
网络yum源{
vim/etc/yum.conf
keepcache=1
/var/cache/yum/$basearch/$releasever
}
 
yumlocalinstall * -y安装当前目录的所有
yum install mariadb-serverhttpd -y
systemctlstart mariadb
创建一个zabbix库,授权一个账户,权限
cd
mysql
createdatabase zabbix;
grant all onzabbix.* to zabbix@localhost identified by ‘zabbix’;我用是’%’
flushprivileges;
cd/usr/share/doc/zabbix-server-mysql-3.2.11 s
ls
发现是个压缩的包
zcatcreate.sql.gz看看内容
能看到内容,怎么导入到数据库呢
{zcatcreate.sql.gz |  mysql直接导入}
解压:
gunzipcreate.sql.gz
ls
mysql -uzabbix -pzabbix -D zabbix < create.sql
vim/etc/zabbix/zabbix_server.conf
10051默认的,不管它
38:记录日志的文件
72:pidfile
81:数据库的主机,一般在本地上,不分离
91:数据库的名称
107:数据库的用户
115:DBPassword=zabbix密码
122套接字不用管
 
vim /etc/httpd/conf.d/zabbix.conf在httpd的子配置文件里面居然也有zabbix的配置文件
19:去掉注释,最后一段:Asia/Shanghai
systemctlstart httpd
systemctlstart zabbix-server
浏览器输入ip/zabbix
用户密码,不用修改端口
/etc/zabbix/web/zabbix.conf.php记录zabbix怎样连接数据库的
登陆
用户名是admin
密码是zabbix
zabbixserver is running是Yes就是成功了
右上角有个人图,语言改为中文
 
吴振启动httpd时出现/etc/httpd/conf.d/php.conf的问题怎么办?
注释掉那个文件的最后两行,进入zabbix主页会出现文字页面
删掉httpd目录,重新再来一遍
 
mysql-uzabbix -pzabbix
ERROR 1045(28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
需要删除匿名用户,然后重新授权再刷新权限
 
客户端:
拷贝zabbix-agent-3.2.11-1.el7.x86_64.rpm进来不用解压
yum install -yzabbix-agent-3.2.11-1.el7.x86_64.rpm
vim/etc/zabbix/zabbix_agentd.conf
95:Server=需要定义监控中心的ip
136:serverActive=监控中心的ip,若有代理则是代理的ip,主动模式的监控中心ip
147:=clone2 自动注册叫什么名,主机名就行了,试试主机ip行不行
保存退出
 
zabbix-get装在监控中心
 
可以在客户端设置一个键值对
 
客户端:
自定义监控键值对设置:监控远程boot分区:
vim/etc/zabbix/zabbix_agentd.conf
293:UserParameter=监控boot分区使用情况,先在外面敲命令出来awk -F" " '/boot/{print $5}' | awk -F "%" '{print $1}'
然后293:UserParameter=boot.used自定义名字,键的方法,
which df awk
然后293:UserParameter=boot.used,/usr/bin/df| /usr/bin/awk -F " " '/boot/{print $5}' | /usr/bin/awk -F"%" '{print $1}'
systemctlstart zabbix-agent端口是10050
 
监控中心
zabbix_get-s 监控对象ip -kboot.used
 
客户端:
ddif=/dev/zero of=/boot/aaa bs=10M count=30
 
zabbix的主动模式和被动模式到底用那种?混合使用
 
我进入zabbix是404错误?修改了配置文件要重启服务
 
zabbix基本配置:
添加主机组
配置-主机-右上角创建主机,注意主机名是自己起的,和nagios里定义主机一样,主机服务组是linux-servers

下面有一个监控项-右边创建监控项
名称:boot_use
类型:zabbix客户端主动
键值:boot.used
信息类型:数字无符号
数据类型:十进位数字
点下面的添加
 
点上面的配置-主机-看下面的监控项
多长时间检测一次30s
触发器,图形,创建图形
名称:boot_use
下面监控项-添加-选择点击
完了之后点上面的预览
点下面的添加
配置-主机,下面有显示装了的就是有个1,
点图形,linux-server  监控主机名clone2   boot_use
在客户端里删掉/boot/aa
再看一下图形,发现降低了
配置-主机-下面-触发器-右边-创建触发器
名称:bootused      boot分区不正常的时候触发什么
严重性:超过70%警告
条件
监控项:选择
功能:最新的T值>N
N:70
插入
添加
配置-主机-下面-动作-右边-创建动作(左边有个事件源)
黄色+蓝色虚线是警告的
 
1.主机组
2.主机
3.监控项
4.图形
5.触发器
6.报警媒介类型、用户
7.动作
 
NAT是网络地址转换
 
zabbix的监控项有两种模式
主动模式:
连接监控中心的端口10051,采集数据,提交上去关闭连接
被动模式:
监控中心连接监控对象的10050端口,采集数据,提交回来,不关闭连接,对监控中心产生压力
 
如果是发邮件,首先要有发邮件的功能呀
就是要考虑到执行动作前的准备工作
点最上面的管理-报警媒介类型-Email
类型:电子邮件
SMTP:localhost
25
HELO:localhost
电邮:zabbix@localhost由谁来发
添加
点击上面的用户-Admin
上面有个小的报警媒介-添加
收件人:root@localhost
添加
更新
配置-动作-右上事件源是触发器点创建动作
名称:boot_problem send mailto root随便起
条件:新的触发条件-触发器=选择点击,超链接的添加
上面出现了计算方式“与/或”A and B
操作-下面点新的-操作类型发送消息-发送到用户添加admin,仅送到Email-超链接的添加-添加
动作  操作  后面有个恢复操作
可以直接根据信息来恢复操作,恢复后会发送邮件,更新
测试:
主机-触发器,大于70就警告
客户端:
ddif=/dev/zero of=/boot/aaa bs=1M count=60
df -h
网页:
点最上面的监测中,最下面,状态:问题,问题是bootused,确认是不,需要运维人员去确认,鼠标移到动作上有完成了
监控中心:
yum install -ymailfix
查看用mail输入最新一条
网页:
配置-主机-模板-选择你要连接的模板OS LINUX,HTTP Service选择,超链接添加,更新,发现多了很多东西
1台主机配置模板,那么如果监控对象过多呢?我有200台主机需要被监控,添加主机怎么办,太麻烦了,采用ZabbixDiscovery 自动发现
怎么使用自动发现呢?
首先要agent安装在监控对象的机器上(有一个妙招可以快速安装agent,脚本是一种方法,还有另外一种方法老师以后再讲)
配置-自动发现-
 
客户端:clone6
将agent包拷贝过来
yum install-y zabbix-agent-3...
 
编译安装可以安装多个,模块、路径、都可以自己定义,但是安装耗时
yum安装速度很快
rpm -ql可以看看yum安装后的目录在哪
yum安装的mariadb的数据目录是在/var/lib/mysql/data
 
zabbix多久获取一次监控的项目?
是在配置里面定义的
 
和flashcs6有点像
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: