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


zabbix监控_第1张图片

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

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

zabbix监控_第2张图片

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

vim /etc/php.ini

找到

;date.timezone=

更改为

date.timezone= "Asia/Shanghai"


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


重启httpd

service httpd restart

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


zabbix监控_第3张图片

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

zabbix监控_第4张图片

我们更改一下php配置文件

vim /etc/php.ini

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

post_max_size = 16M

max_execution_time = 300

max_input_time = 300


zabbix监控_第5张图片
zabbix监控_第6张图片
zabbix监控_第7张图片

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

service httpd restart

zabbix监控_第8张图片

点击next,进入下一步



zabbix监控_第9张图片

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

zabbix

zabbix

zabbix1

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

zabbix监控_第10张图片

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

之后两步,点击next即可


zabbix监控_第11张图片
zabbix监控_第12张图片

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

zabbix监控_第13张图片

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

vim /etc/zabbix/zabbix_server.conf

找到并修改如下内容

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

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

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

zabbix监控_第14张图片

之后我们重启zabbix-server即可

service zabbix-server restart


zabbix监控_第15张图片

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

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


zabbix监控_第16张图片

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

zabbix监控_第17张图片


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

下面我们创建一个模板

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

zabbix监控_第18张图片

填写模板名称Templates name 和Visible name

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

zabbix监控_第19张图片

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

zabbix监控_第20张图片

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


zabbix监控_第21张图片

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

zabbix监控_第22张图片

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


zabbix监控_第23张图片

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

zabbix监控_第24张图片

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

zabbix监控_第25张图片

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


zabbix监控_第26张图片

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

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

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


zabbix监控_第27张图片

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

zabbix监控_第28张图片

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


zabbix监控_第29张图片

内容不再详述,看图。


zabbix监控_第30张图片


zabbix监控_第31张图片

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

zabbix监控_第32张图片

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

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

zabbix监控_第33张图片


zabbix监控_第34张图片

Name自定义,Type就选择zabbix agent

zabbix监控_第35张图片

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


zabbix监控_第36张图片


zabbix监控_第37张图片

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

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

zabbix监控_第38张图片

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

创建trigger

点击上面的trigger

zabbix监控_第39张图片

再点击右上角的create trigger

zabbix监控_第40张图片


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

zabbix监控_第41张图片

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

zabbix监控_第42张图片

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


zabbix监控_第43张图片

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

zabbix监控_第44张图片

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

zabbix监控_第45张图片

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,进入到创建主机的界面

zabbix监控_第46张图片

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

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

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

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

zabbix监控_第47张图片

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

zabbix监控_第48张图片

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


zabbix监控_第49张图片

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


zabbix监控_第50张图片

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

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

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

zabbix监控_第51张图片

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


zabbix监控_第52张图片

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

zabbix监控_第53张图片

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来创建我们的脚本媒体类型

zabbix监控_第54张图片

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

Type类型要选择脚本

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

zabbix监控_第55张图片

创建媒体类型完成

zabbix监控_第56张图片

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

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

zabbix监控_第57张图片
点击Admin

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

zabbix监控_第58张图片

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

zabbix监控_第59张图片

我们看到,增加成功

zabbix监控_第60张图片

最后我们去设置Action动作

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

zabbix监控_第61张图片

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

zabbix监控_第62张图片

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

zabbix监控_第63张图片

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

zabbix监控_第64张图片

我们选择自定义的trigger

zabbix监控_第65张图片

然后回到下面这个页面

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

zabbix监控_第66张图片
点击Add
zabbix监控_第67张图片

然后我们选择Option点击new

zabbix监控_第68张图片

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

zabbix监控_第69张图片

我选择如下选项


zabbix监控_第70张图片

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

zabbix监控_第71张图片
zabbix监控_第72张图片
zabbix监控_第73张图片

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


zabbix监控_第74张图片

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


zabbix监控_第75张图片

选择我们的触发器

zabbix监控_第76张图片

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

zabbix监控_第77张图片

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

zabbix监控_第78张图片

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

zabbix监控_第79张图片

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

zabbix监控_第80张图片

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


zabbix监控_第81张图片

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

zabbix监控_第82张图片

后记:

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

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

你可能感兴趣的:(zabbix监控)