zabbix监控项目

    xiaoxiao2021-03-25  114

    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 存档
    转载请注明原文地址: https://ju.6miu.com/read-34973.html

    最新回复(0)