zabbix监控

1. 安装epel扩展包,并升级ca证书ssl

yum install -y epel-release

yum --disablerepo=epel -y update ca-certificates

yum clean all 

yum makecache

如果你想知道为什么,那么一定要参考这个文章,当然不想了解的话就算了

认识epel

2. 安装LAMP环境

yum install -y httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring

3.安装zabbix服务端

yum install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel

4. 启动zabbix服务和Apache服务

service zabbix-server start

service zabbix-agent start

service httpd start

5. 修改mysql的配置文件

vim /etc/my.cnf

修改或加入以下内容

[mysql]

default-character-set = utf8

[mysqld]

character_set_server = utf8


6. 启动mysql服务

service mysqld start

7. 创建zabbix数据库并导入zabbix-mysql表

mysql -uroot -e "create database zabbix"

mysql -uroot --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/schema.sql

mysql -uroot --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/images.sql

mysql -uroot --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/data.sql

8. 创建zabbix数据库用户

mysql -uroot -e "grant all on zabbix.* to 'zabbix'@localhost identified by 'zabbix1'"

9. 通过网页来安装zabbix

在浏览器中输入ip/zabbix

对我来说,输入10.2.3.110/zabbix

但是刚进入的时候,会报如下错误:

这主要是因为我们php的时区问题,我们可以改一下时区

vim /etc/php.ini

找到

;date.timezone=

更改为

date.timezone= "Asia/Shanghai"


很多人改了之后还是出现问题,注意一下自己拼写和用的双引号


重启httpd

service httpd restart

之后再进入安装页面,问题解决


接下来我们点next,此时会出现几个php配置问题

我们更改一下php配置文件

vim /etc/php.ini

找到以下选项并更改为错误页面给出的数值即可:

post_max_size = 16M

max_execution_time = 300

max_input_time = 300


之后我们重启httpd,回来刷新页面即可

service httpd restart

点击next,进入下一步



在这个界面我们要填上我们刚才创建的数据库名字,授权的数据库用户和对应的密码

zabbix

zabbix

zabbix1

点击test connection,出现OK即证明mysql可用,点击next进入下一步

在这我们可以看到zabbix-server的默认端口是10051,当然我们可以更改,Name自己可以随便起名字,我在这里用127.0.0.1

之后两步,点击next即可


最后我们到了登录界面,默认用户名admin密码zabbix我们登录进去后台

登录后界面如下,上方出现的警告是因为我们的zabbix无法登录我们的数据库,而不能登录的原因当然是我们没告诉zabbix我们设置的用户和密码是什么啦!所以我们告诉他用户名密码即可:

vim /etc/zabbix/zabbix_server.conf

找到并修改如下内容

DBName=zabbix                 #这是我们的数据库名字

DBUser=zabbix                   #这是我们的数据库用户名

DBPassword=zabbix1          #这是我们的数据库密码

之后我们重启zabbix-server即可

service zabbix-server restart


在这我们可以去看下监控的本机数据,点击Monitoring->Lastest data我们可以看到相应的本机数据。

如果这里看不到监控的数据或者上方一直提示Zabbix Server is not running:the information displayed may not be current,点我来看解决方案。


其实zabbix自带了很多的监控模板,监控模板就是一些监控项的集合,我们点击Configuration->Templates即可看到所有的模板列表


.当然,如果我们要定义自己的模板,也可以自己编写自己的模板,每一个模板中包含了很多你要监控的项目、对特定项目的触发器等等。编写自己模板的时候,我们也可以从其他的模板中copy过来item和trigger,也可以自己编写。

下面我们创建一个模板

依次点击Configuration->Templetes->Create templetes

填写模板名称Templates name 和Visible name

所在的group选择右侧的Templates,点击中间的双三角符,转换到左侧来

在选图所示的Linked templates选项中,我们可以选择所连接的其他某个模板,也可以将其他几个模板组合起来,在这里我们以后去选择一些模板中的监控项即可,不用选择某个模板的全部监控项

点击Save,保存模板。我会回到模板列表即可看到我们的模板


我们去的模板列表中找到其他模板的Items

我选择以下6项,大家可以看到我选择的有个特点,有的选项后面有trigger有的没有,这也证明了我们的trigger是绑定到items上的


我们选择左下角的copy selected to,单后点击Go

会跳转到下个界面,我们选择Hosts,Templates,下面就会出现我们自己创建的模板,lk-templates,我们够选,然后点击左下角的copy即可

之后我们回到Templates list界面,可以看到我们的模板中有了6个items


这就是我们自定义的模板。

但是很别人来用我们的模板,知道我们要监控的项目是items中的项目,但是我们还没有规定什么时候item是正常的呢,一直监控,不检测出错也没什么用,所以trigger就是用来规定这个东东的。trigger就是规定了什么时候监控的某个项是正常的,什么时候是不正常的,

当然,我们可以自己规定,但是我太懒了,既然我们copy的别人的监控项目,别人对自己监控项目的模板也肯定有规定,我们再去拷贝Template OS Linux的trigger吧,但是之前我们必须清楚我们拷贝到items中,那些定义了trigger,不然把triggercopy过来,却每监控项有什么用呢?我们其实拷贝的6项中只有三项有trigger


所以我们去去copy,但之前,我们先看下各个trigger的名字,鼠标移动到trigger上即可查看

之后和copy item一样,去copy我们Template OS Linux的trigger吧。


内容不再详述,看图。



回到我们的模板列表,可以看到我们的模板已经添加了触发器trigger

接下来,我们来为我们的模板创建一个自定义的item,并为之创建一个触发器。

进入我们模板的item中,点击右上角的create item


Name自定义,Type就选择zabbix agent

选择key时,点击右侧的select,我们选择下图标注项



但是我们要更改key的表达式指定我们要监控的网卡时eth0

同时我们指定监控的单位为bps,bps表示比特率,即每秒多少个bit,我们知道8bit是一个byte,我们要监控每秒多少字节,所以我们bps乘以8就是每秒多少字节了,下面的store as选择simple change,点save即可

之后我们点击save就能看到我们添加的item,至此,我们item就添加完成,下面我为这个item添加一个trigger,规定他啥时候是正常的啥时候是不正常的。

创建trigger

点击上面的trigger

再点击右上角的create trigger


关于表达式Expression我们选择Add后进入下面界面

我们点击select,选择我们的trigger要加在那个item上,之后我们进入下面的界面,按图中所示选择后,显示图中内容

然后我们选择trigger绑定到“网卡入流量”这个监控项上,然后我们指定函数为如下,表示如果流量值大于N的话就是不正常,我们设置N为500,即表示网卡瞬时流量大于500B每秒,就会触发trigger,然后我们点击Insert


我们回到trigger主界面,可以看到表达式已经有了,下面的警告级别我们选择Warning,选择Enable,证明我们要开启使用这个trigger。然后我们点击下面的Save即可

可以看到trigger添加成功!此时我们的模板制作的差不多了,我们来添加一个主机来监控玩玩

10. 监控客户端主机

10.1 在客户端安装epel扩展包,并升级ca证书ssl

yum install -y epel-release

yum --disablerepo=epel -y update ca-certificates

yum clean all

yum makecache

10.2 安装zabbix-agent

yum install -y zabbix20-agent

10.3 更改客户端的配置文件

vim /etc/zabbix_agentd.conf

更改

Server=10.2.3.110            #代表服务端主机ip

ServerActive=0.0.0.0:10050

Hostname=aming               #自定义,但要唯一

启动客户端

/etc/init.d/zabbix-agent start

客户端配置完毕!

10.4 测试客户端的配置

zabbix_get -s 客户端ip -p10050 -k "system.hostname"

对我来讲是

zabbix_get -s 10.2.3.111 -p10050 -k "system.hostname"

正确的话会输出客户机的主机名

10.5 在监控后台创建监控主机

依次点击Configuration->Hosts->Create host,进入到创建主机的界面

在下面界面中自定义我们所监控主机的名字Host name 和 Visible name

我在这里用10.2.3.111即我的客户端主机ip

Grop选择右侧的Linux Servers点击向左的双箭头即可

再底下的IP Address填写客户端ip

接着我们可以点击上方的第二个选项Templates,来选择监控模板

我选择一个自己之前定义的模板lk-template,勾选后点击左下角的select


可以看到已经选择了此模板


然后我们点击Save即可,主机创建完成

回到主机列表,我们可以看到我们监控的主机,这时候我们去看一下监控的数据

我们依次点击Monitoring->Lastest data,然后选择右上方的Group为Linux servers ,host是我们之前创建的主机名字,可以看到下面有个other我们点other前面的+号,可以看到我们的监控项,其实就是我们模板中的那些监控项

如果看不到我们自定义的item网卡入流量,我们刷新几次等一下就能看到了


我们点击网卡入流量后面的graph,可以看到图形数据

11. 邮件告警

最后我们来设置邮件报警,当然邮件报警是基于trigger的基础上,一旦触发器被触发,我们执行action,所以我们要设置action,设置action之前我们还要设置媒体类型,媒体类型就是我们要通过怎么样的方式来报警,我们这里使用脚本script来报警,所以之前我们要写脚本,脚本要通过sendmail来发送邮件,所以首先我们要在server上安装sendmail

安装sendmail:

yum install -y sendmail 

测试mail点击我

创建告警脚本存放的文件夹

mkdir -p /home/zabbix/bin

vim /home/zabbix/bin/baojing.sh

在脚本中加入以下内容:

#!/bin/bash

echo "$3" | /bin/mail -s "$2" $1

保存后给脚本加上执行权限

chmod +x /home/zabbix/bin/baojing.sh

定义脚本的位置

vim /etc/zabbix_server.conf

找到如下内容,改为自己脚本的存放目录

AlertScriptsPath=/home/zabbix/bin

ExternalScripts=/home/zabbix/bin

然后我们回到网页后台,首先创建一个媒体类型

依次点击Administration->Media types->Create media type来创建我们的脚本媒体类型

描述可以自己起名字,随便

Type类型要选择脚本

脚本名字要和自己之前编写的脚本的名字一致,Enable启用,点击Save

创建媒体类型完成

接着按照老师的说法我们应该创建一个用户,但是我创建用户后好像是权限的问题试了好多做法:给脚本该属组和属主,给脚本加777权限,将用户加到管理员组....但是都是不能发送邮件,应该是权限问题,我没解决,但是我用admin用户就没问题。所以接下来我就直接更改admin所绑定的媒体类型

依次点击Administrator->User更改右上角为Users,显示出我现在所有的用户,我们点击Admin

点击Admin

我们其他的不用更改,直接点上方的Media来绑定我们的媒体类型,点击Add

按下图进行填写,点击Add,然后点击Save即可

我们看到,增加成功

最后我们去设置Action动作

依次点击Configuration->Action->Create action

名字自己命名,第二个Default operation step duration是两次发邮件的默认时间间隔,然后我们点击Condition

这里我们只监控我们定义的trigger,其他的都不管,所以A和B先Remove

然后点击new condition选择trigger name,点击select选择trigger

我们选择自定义的trigger

然后回到下面这个页面

这一步千万注意,一定要点击底下的Add,不然不会添加 !!

点击Add

然后我们选择Option点击new

在这里我们可以定义发送的次数from 1 to n,n就是定义发送多少次,默认1次,可以更改,底下的step duration代表发送时间间隔,如果这里设为0就代表使用我们在Action页面设置的默认发送时间间隔,这里设置的话,就会用这里的而不用Action中的,我这里默认0就好,下面的operation type选择send message,底下我们可以选择发送给组,也可以选择发送给个人用户,我这里选择发送给用户Admin

我选择如下选项


但是这里如果直接选择Save,会出现下面错误,这是因为你没有点击Add

这样才能点击Save了,保存成功!


所有工作都做好了,我们更改一下触发条件,让其触发发邮件


选择我们的触发器

这里我们更改表达式,让瞬时流量大于1M/s的时候报警,也就是1048576byte/s,点击保存,你也可以改小一点,更容易触发

我们现在回到监控页面,注意看我红框圈住的位置

我们回到被监控的客户机上,装一个安装包我这里随便装一个mysql

一直刷新监控页面,我可以看到已经被监控到了,Action 1也执行成功了

这时候我去查看我的邮件发现没到收件箱里,跑到垃圾箱去了,这是被qq邮箱当成垃圾邮件了


看,我们收到两封,一封是Problem的一封是Ok的,就是当流量大的时候发送一封,恢复正常的时候再来一封,自此成功!!!!

后记:

我感觉zabbix还是很重要的,所以我耗费了至少两天半(30个小时+)去研究它,为了接受邮件我做实验收了几百封,163邮箱都给我玩坏了...但是能搞明白我还是很兴奋的,很开心自己能坚持下来,谢谢冀老师和童鞋们!

大家不懂的请留言,有错的请指教!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容