zabbix实例集群部署
前言:已经折腾两个礼拜了,本文侧重点不在于安装,在于使用管理。部署请看文档或者百度,,很简 单
提示:zabbix关于模板、应用集、主机组、触发器、等等命令一定要谨慎,不要随意,防止自己糊涂了
主机组: 比如说,我的主机组用的是yunce56,因为我这个项目名称叫做yunce
模板:zabbix自带的templates不够合理,我自己重新写,DIY。比如说我专门监 控cpu,我可以写yunce-cpu-linux,里面建分类(也就是应用集)叫做yunce-cpu
模板这一块多说几句,我一开始建模板时候,拿掉所有连接的模板和主机,建好之后 再根据主机组所需连接,我有mysql服务器组,我就建yunce-mysql来给这个主机组使用 连接,其余主机组不用。并且,主机组自行连接自己所需模板。(根据里面的监控项)
应用集:也就是分类,这里面专门监控cpu,可以写5分钟/1分钟cpu使用平均值,或者瞬时 cpu负载峰值之类的,反正很多情况自己diy
再例如memory,使用值、可用值、占用率、平均值,一定单独写模板放进去
监控项:也就是项目,名称最好用中文名,在建监控项里面有描述这个空挡,可以自己写进 去一些备注,键值百度走你。
图形:你所建图形名称,就是监控中所见。最好中文
------------ 我的zabbix是接手别人的,后来打搞一下,没有推倒重搞,所以有点地方有悖于我的规范
准备:php环境,可以安装apache server服务,将zabbix的php文件放在/var/www/html处,用apache对外 提供访问,此处使用nginx:
server {
listen 83;
server_name localhost;
charset utf-8;
access_log /data/logs/nginx/php.access.log main;
root /data/www/php83;
location = / {
index index.php;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|html|woff|ttf)$ {
expires 30d;
}
location ~ \.php$ {
root /data/www/php83;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
记得php.ini文件默认,记得改变zabbix-server.conf文件
zabbix-server.conf:
注意在要安装mysql服务。
ListenPort=10051
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=115.29.228.210
AlertScriptsPath=/etc/zabbix/alertscripts
DBName=zabbix
DBUser=root
DBPassword=root
DBSocket=/data/mysql/mysql.sock
DBPort=3309
JavaGateway=10.162.83.148 这是我另外服务器,属于zabbix-agentd
JavaGatewayPort=10052
StartJavaPollers=5
zabbix-agentd.conf zabbix-sever那台服务器也要安装zabbix-agent。
PidFile=/data/zabbix/zabbix_agentd.pid
LogFile=/data/zabbix/zabbix_agentd.log
Server=10.161.132.121 zabbix-server的ip
ListenPort=10050
ServerActive=10.161.132.121
Hostname=yunce56_jumper zabbix-agent的主机别名,这里,最好写成IP
Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf
#-----------------------添加主机------------
#---------模板(如果乱了,会出现循环连接模板或者已经包括之类的报错,记得前言中命名规范)-
#------------------主机组------------------
#-----------------主机组和主机们------------
#---------------图形-----------------------在模板下面建立
建图形
图形效果1
图形效果2
#--------------------------触发器-------------
触发器的表达式有点烦,不过,自己可以去网上自己百度,可以做到的
#------------------web监控,这里我是写url监控,监控报文头http返回状态码为200
不过接口返回,也可以选择post返回,可以借助火狐httprequest
http返回状态码监控:
主机下点击web
------------接口的监控-------------------------
百度走你,需要填写贴上-头-要求的字串(截取就OK)
#----------------------下面来一波告警--------------------------
这里百度上的,我用的是sendmail,发件箱我写了自己的139账号-移动17年7月就关了邮箱短信提示了。。
注意sendmail的配置文件/etc/mail.rc
set bsdcompat
set [email protected]
set smtp=smtp.ym.163.com
set [email protected]
set smtp-auth-password=*********** 我马赛克了
set smtp-auth=login
用来发邮件的,自己可以看看是不是能发出去
echo "zabbix test mail.yunce" |mail -s "zabbix" [email protected] 看看收到否
下面是用脚本发邮件的。
这个zabbix-----------------关于邮件,我没发出去,一直很纳闷,关键是脚本没调用。这就日了狗了
排查到脚本没调用,但是我在监控中故意报警,提示发了邮件并且成功了。这是个问题
不过我借助了oneapm来报警了
http://www.iyunv.com/thread-138138-1-1.html 看看这介个
来看一下报警用户
报警效果图在这边
这是oneAPM分别的邮件报警,微信报警,短信报警
这边我使用了短信报警,使用了人家短信接口,我尝试着用网建sms监控,联通的sms接口,都是超过5条就收费,NND,oneapm走起吧,但是oneapm免费版只能用两种方式,也就是报警人多的话,没办法了
这边只能领到用短信报警,我和其他人用微信报警,
根本的方法是,重新推翻我的前面运维写的zabbix,自己搞,邮箱报警太邪门了,自己搞。一顺溜下来。呼呼哈哈交工
#-------------------------------------总结-----------------------------
之前也搞过nagios,并且成功给线上使用了,但是怎么讲呢
自己总结
nagios简单操作,但是配置文件复杂度超过zabbix
nagios安装不简单,但是安装好操作监控项很好,用的是插件监控,nrpe命令,插件在libexac里 面,check-cpu、check-ping、之类的,低版本的 2.*版本的nagios还不支持监控mem,后来是我自 己写插件进去的,所以说,nagios永远没有zabbix普及,ganglia之类的监控就是渣渣
zabbix高扩展特别强,可以自己写脚本监控,监控shell脚本,文件的变化,比如说/etc/passwd超级重 要,安装简单,但是用起来,可得用心了,尤其是触发器表达式,难!不过还好,钻进去好好研究 就OK。这就是百度上很少人能写怎么用,都是关于怎么安装的。这些人,骗骗下载量,金币啥的还 行。
本文中关于zabbix,适合百台以上监控,但是安装可能超级难,还是自动化,建议于机房合作,做自动 化安装,无人托管,加salt,批量化可以的。