Linux九阴真经之大伏魔拳(zabbix 监控)
zabbix 监控
zabixx
zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server:zabbix的监控服务器,负责接收agent端发送过来的数据,并做处理。端口:10051
zabbix agent:安装在各个需要监控主机上,负责收集本地数据并发往server端。端口:10050
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
监控系统具备的四种功能:
采集:根据用户的要求,周期性的采集数据
存储:对采集到的各种数据进行预约存储。
可视化:对采集到的数据,进行可视化。
报警:报警系统,在特定的条件下被触发(超出合理的区间)
监控数据采集通道
SNMP:Simple Network Management Protocol
ssh/telnet
IPMI:
agent: (master/agent)
zabbix的安装和监控的配置:
zabbix程序的组件:
zabbix_server:服务端守护进程;
zabbix_agentd:agent守护进程;
zabbix_proxy:代理服务器,可选组件;
zabbix_get:命令行工具,手动测试向agent发起数据采集请求;
zabbix_sender:命令行工具,运行于agent端,手动向server端发送数据;
zabbix_java_gateway: java网关;
zabbix_database:MySQL或PostgreSQL;
zabbix_web:Web GUI
端口号:10051
https://www.zabbix.com/download (官方下载安装地址)
1 .首先部署zabbix-server端:(在yum仓库里添加zabbix的库,可从阿里云上去查找)
wget https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm(下载包)
yum install zabbix-release-3.4-2.el7.noarch.rpm (安装下载下来的包)
装上上述这个包之后在/etc/yum.repos.d/下会生成一个zabbix.repo的文件,只有有了此文件,下面的包才可以安装成功。
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent (安装程序包)
yum install mariadb-server httpd(安装数据库)
进入数据库:
mysql> create database zabbix character set utf8 collate utf8_bin; (创建数据库zabbix)
mysql> grant all privileges on zabbix.* to zabbix@’192.168.60.%’ identified by ‘centos’;(创建并授权zabbix用户登陆本机的数据库,因为,数据库和zabbix程序放在一起,所以使用localhost代替本机的IP地址,如果数据库需要单独放,则需要指定zabbix程序所在主机服务器的IP地址)
mysql> quit;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix (执行此步操作)
mysql -uzabbix -hlocalhost -pcentos (现在已经可以连接到数据库了;进去之后可以查看到生成的zabbixs数据库里的内容了)
/etc/zabbix/zabbix_server.conf (修改配置文件)
DBName=zabbix (数据库的名字)
DBHost=172.20.107.26(数据库的地址)
DBPassword=centos (登陆数据库的密码)
vim /etc/httpd/conf.d/zabbix.conf (修改配置文件)
php_value date.timezone Asia/Shanghai (修改时区)
systemctl start zabbix-server (启动zabbix服务)
systemctl start httpd (启动服务)
http://172.20.107.26/zabbix/(在浏览器上访问此路径并安装zabbix;此IP地址为zabbix主服务的IP地址)
点击下一步进入以下界面:
如果需要更改不需要重新安装,只要去修改上面的配置文件就可以了
切换中文版:
updata 应用即可。
实验:手动添加一台主机并监控
rpm -ivh zabbix-agent-3.4.11-1.el7.x86_64.rpm
rpm -ivh zabbix-sender-3.4.11-1.el7.x86_64.rpm
(安装上述两个包;上述两个包可在阿里云上下载下来)
vim /etc/zabbix/zabbix_agentd.conf (修改配置文件)
Server=172.20.107.26(更改为 zabbix-server服务器的地址)97行
ServerActive=172.20.107.26 (更改为 zabbix-server服务器的地址)138行
Hostname=nod01 (设定本机的主机名)149行
systemctl start zabbix-agent (启动服务)
ss -nult (查看端口号;10050)
然后再浏览器上的zabbix的主界面里添加刚才的主机:
1、添加新组
2、添加新主机
3、创建新的应用级
4、创建一个监控项
也可以点击下面的 cancel 按钮,快速添加新的监控项
5、点击添加即可 ,我们来看看 我们添加的监控
6、添加一个触发器 (一个监控项可定义多个触发器来响应不同级别的警告)
现在可以查看 添加的 触发器了
实验:实现nginx的简单的监控和报警后的触发操作
在从被监测的主机上安装nginx服务,并添加新的监控项,定义新的触发器,并且定义action在触发器报警后做相应的处理。
在被检测的服务器上:yum install nginx -y;(装包)nginx (启动服务)
创建一个新的监控项在nod01上:
点击select 选择表达式
在监测—>最新数据—->nod01可以看到nginx监控现在处于正常状态。
当 停掉 nginx 服务的时候 (nginx -s stop) 状态为 down
那么如何解决 down 状态呢?
我们就需要创建一个动作(action)来解决;思路(让它远程自动重启服务,如果还是失败则发送报警信息)
为了测试 我们需要在被监控服务器上 将 zabbix提升为管理员(只为测试使用,生产环境中慎用)
我还需要更改 sudo 的一些配置文件 , 让每次远程执行免密登录
执行命令ivisudo 第24行
还需要在被监测的服务器上:
vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1 (允许agent在本机执行命令)74行
systemctl restart zabbix-agent (重启服务让修改的agent配置文件生效)
最后手动将被监测的nginx服务停掉,查看是否能够自己修复。(如果有问题查自定义脚本是否写错)
实验:自定义媒介 在出现报警时 以邮件的方式发送报警邮件
在本机zabbix-server服务器上安装邮件包;yum install mailx
管理——>报警媒介类型 ;创建一个报警媒介
点击添加即可。由于是本机的邮件服务,所以只能在本机的用户之间发送。
在次:管理—->用户—->admin
接着 添加nginx 触发报警的第二部操作
现在就可以实现 当 nginx 执行动作里的 脚本没有将nginx 重新启动起来 就会执行第二部操作,将以邮件的 方式发给用户
实验:创建图形来显示数据信息
1、在我们创建的主机界面 , 点击 Graphs (图形)按钮
2、 创建图形 , 编辑 你想要在屏幕上显示的数据内容
3、定义好以后, 我们在屏幕上添加多个图形