zabbix监控项目

1--安装epel源
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
2--安装软件
yum -y install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel
3--启动服务
/etc/init.d/zabbix-server start;/etc/init.d/zabbix-agent start
4--查看服务是否启动
netstat -lnp | grep zabbix*
发现zabbix-server没有启动起来,查看日志
less /var/log/zabbix/zabbix_server.log
5--zabbix_server没有启动起来,配置数据库
/etc/init.d/httpd start /etc/init.d/mysqld start
mysql -uroot -p -e "create database zabbix" 不用写密码
mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/schema.sql
mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/images.sql
mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/data.sql
6--zabbix_server仍然无法启动,创建mysql用户
mysql -uroot -e "grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix'";
vim /etc/zabbix/zabbix_server.conf 编辑
DBSocket=/var/lib/mysql/mysql.sock 如果没有/var/lib/mysql/mysql.sock要创建
DBPassword=zabbix 写密码
7--网页设置
重启httpd服务
192.168.3.132/zabbix
如果报错:
PHP option post_max_size8M16MFail
PHP option max_execution_time30300Fail
PHP option max_input_time60300Fail
编辑 vim /etc/php.ini 更改报错的值
/etc/init.d/httpd restart
zabbix默认登录用户admin 密码zabbix
8--安装客户端zabbix20-agent
yum install -y zabbix20-agent
9--编辑客户端配置文件
vim /etc/zabbix_agentd.conf
更改Server=服务端ip; ServerActive=0.0.0.0:10050;Hostname=wang(自定义,但要唯一)
启动客户端 /etc/init.d/zabbix-agent start
ps aux | grep zabbix 查看是否启动
zabbix_get -s 192.168.3.104 -p10050 -k "system.hostname
服务端上命令测试:zabbix_get -s 客户端ip -p10050 -k "system.hostname"
在web界面下,点“configuration”-->"host"-->右上角点"Create Host"其中host name,visible b b name自定义,可以选择groups,这里默认即可,ip address 写入客户端ip
配置监控项目模板:点"templates",点add,在弹出的小窗口选择"Template OS Linux",然后点select,最后点save;
此处的配置host和监控模板是一起的,配置host的同时配置templates;
10--自定义templates
Zabbix自带了很多模板,模板中有很多监控项目,比如CPU、网卡、内存、进程等等。使用系统自带模板有点太多了,所以我们可以自定义模板。点configuration 选择 templates,点右上角的create template
Template name和Visible name  自定义,Groups 选择templates, 点save
然后我们去挑选一些项目拷贝到该模板下:比如我们找到Template OS Linux 点一下items,选择我们想要的项目,然后在下面选择copy selected to … 然后点go 
Group 选择templates, 找到刚才我们自定义的templates,点copy
点configuration 选择 templates可以看到新建的templates中已经有刚刚我们copy的items了
我们可以使用和上面相同的方法自定义拷贝Triggers(触发器 ),它用来设置告警的阀值,当然我们也可以自定义编辑它
11--服务端配置发邮件
yum install -y sendmail ; 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 
创建mediea types: “Administration" -->”Media types",点击右上角“Create Media Type"其中Description填"baojing” 或其它自定义名称,Type选择"Script",Script填”baojing.sh”然后点”Save”.  
创建user: “Adimistration” --> “Users”在右上角,选择”Users”,点击”Create User”, alias: test1,自定义name和lastname password:123456;group 选择guest,回到上面点一下media,type 选择baojing,send to 写要发送邮件的邮箱,点add, 最后点save
创建action: “configuration” --> actions,右上角“Create Actions”, Name自定义,我这里写”baojing”,其他默认,然后点右侧的“Operations”下的“New”按钮,“Operation Type”选择“Send message”,“Send Message to”选择一个或多个要发送消息的用户组,Send to Users选择我们之前新增的test1, “Send only to”选择baojing , 点一下add
最后点save
12--在客户端修改配置文件
vim /etc/zabbix/zabbix_agent.conf 编辑此文件
UnsafeUserParameters=1 已有的,改参数即可
UserParameter=my.net.if[*],/usr/local/sbin/zabbix/net.sh $1 $2 后添加的
//其中UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,所以需要加,这是固定写法,如果脚本压根就没有什么参数,那么这个就省了。逗号后面就是我们写的脚本的路径了,再后面就是要用到的参数,有几个就写几。
13--在客户端编辑脚本
cat /proc/net/dev 分析网络包量,流量,错包
pstree 以树状结构显示进程
编辑vim /usr/local/sbin/zabbix/net.sh
vim /usr/local/sbin/zabbix/net.sh
#!/bin/bash
eth=$1
io=$2
net_file="/proc/net/dev"
if [ $2 == "in" ]
then
n_new=`grep "$eth" $net_file|awk '{print $2}'`
n_old=`tail -1 /tmp/neti.log`
n=`echo "$n_new-$n_old"|bc`
d_new=`date +%s`
d_old=`tail -2 /tmp/neti.log|head -1`
d=`echo "$d_new-$d_old"|bc`
if_net=`echo "$n/$d"|bc`
echo $if_net
date +%s>>/tmp/neti.log
grep "$eth" $net_file|awk '{print $2}'>>/tmp/neti.log
elif [ $2 == "out" ]
then
n_new=`grep "$eth" $net_file|awk '{print $10}'`
n_old=`tail -1 /tmp/neto.log`
n=`echo "$n_new-$n_old"|bc`
d_new=`date +%s`
d_old=`tail -2 /tmp/neto.log|head -1`
d=`echo "$d_new-$d_old"|bc`
if_net=`echo "$n/$d"|bc`
echo $if_net
date +%s>>/tmp/neto.log
grep "$eth" $net_file|awk '{print $10}'>>/tmp/neto.log
else
echo 0
fi
chmod a+x /usr/local/sbin/zabbix/net.sh 添加执行权限
/usr/local/sbin/zabbix/net.sh eth0 in 查看执行的结果
这个脚本的思路,就是通过查看文件 /proc/net/dev  里面的数值,来计算实时网卡流量,其实我算的是一个平均值。分为进和出。如果这个脚本每隔1分钟执行一次,那么算出来的流量值就是1分钟的平均值。
14--在脚本执行前,需要先做一个操作
touch /tmp/net[io].log
date +%s >>/tmp/neti.log
grep eth0 /proc/net/dev |awk '{print $2}' >>/tmp/neti.log
date +%s >>/tmp/neto.log
grep eth0 /proc/net/dev |awk '{print $10}' >>/tmp/neto.log
chown zabbix  /tmp/net[io].log
15--在服务端对脚本进行检测
zabbix_get -s 192.168.1.104 -p10050 -k "my.net.if[eth0,out]"
出现和执行/usr/local/sbin/zabbix/net.sh eth0 in 一样的结果才为正确
16--如果可以返回数值说明没问题了,接着在浏览器里面配置
组态 --> 主机 --> 项目  --> 创建监控项
名称 “网卡流量出”
类型默认“zabbix代理”
键值  "my.net.if[eth0,out]"
数据更新间隔  60
存档






















你可能感兴趣的:(项目)