环境:
zabbix-server:172.16.115.157
zabbix-agent:172.16.115.160
一、zabbix服务端安装
说明:和cacti nagios一样,需要lamp的运行环境,lnmp也可以,但是yum安装的Nginx不支持Nginx的配置文件,而默认在apache安装文件下生成一个子配置文件
1. 安装yum扩展源
centos 5/6 epel yum源安装链接:
www.lishiming.net/data/p_w_upload/forum/epel-release-5-4_32.noarch.rpm
www.lishiming.net/data/p_w_upload/forum/epel-release-5-4_64.noarch.rpm
www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_32.noarch.rpm
www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_64.noarch.rpm
2. yum安装lamp环境,zabbix服务软件包
yum install -y httpd
mysql mysql-libs mysql-server
php php-mysql php-bcmath php-gd php-mbstring
yum install -y zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql
zabbix20-web zabbix20-web-mysql net-snmp-devel
3. 启动httpd和mysql,并给mysql创建zabbix一个库,并添加一个用户
命令 /etc/init.d/httpd start
/etc/init.d/mysqld start
数据库命令:
mysql -uroot -p -e "create database zabbix charset=utf8 "
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/p_w_picpaths.sql
mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/data.sql
mysql -uroot -e "grant all on *.* to 'zabbix'@'localhost' identified by 'zabbix';"
4. 编辑zabbix配置文件 vim /etc/zabbix/zabbix_server.conf
修改为:
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
5. 启动zabbix的服务端和客户端
命令 /etc/init.d/zabbix-server start #日志位置: /var/log/log/zabbix_server.log
命令 /etc/init.d/zabbix-agent start
6. 重启apache,浏览器进入web安装界面
说明:http://ip/zabbix/
命令 service httpd restart
7. 编辑php的配置文件: vim /etc/php.ini
说明:修改相关参数为zabbix所需求的值
如:
post_max_size = 16M # 最大上传文件
max_execution_time = 300 # 最大执行时间
max_input_time = 300 # 最大输入时间
注:yum安装默认没有时区,需设置date.timezone = 'Asia/Chongqing' ,否则会报错
8. Web上填写数据库名称zabbix,用户zabbix,密码zabbix,测试连接性
继续,定义name;
继续,默认的登录管理员用户和密码admin/zabbix
进入界面,可以在右上角Profile,更改语言
二、zabbix增加客户端监控
1. 客户机上安装zabbix的客户端,版本须一致
命令 yum install zabbix20-agent
2. 编辑配置文件/etc/zabbix/zabbix_agentd.conf
Server=172.16.115.160
说明:server修改为服务器的ip
ServerActive=0.0.0.0:10050
说明:表示监听所有IP地址,端口号为10050
Hostname=silen
说明:自定义主机名,要唯一
3. 客户机启动zabbix,netstat查看确认是否已启动
命令 /etc/init.d/zabbix-agent start
4. 服务端检查客户端的连通性
说明:能正确取客户端的主机名,则服务端-客户端连通正常
命令 zabbix_get -s 172.16.115.160 -p10050 -k "system.hostname"
5. web上添加客户端机器, 配置监控项目模板
在web界面下,点”configuration” --> “host” --> 右上角点”Create Host” 其中host name, visible name自定义,可以选择groups,这里默认即可,ip address 写入客户端ip;
配置监控项目模板:点“templates”, 点add, 在弹出的小窗口中选择Template OS Linux, 然后点select, 最后点save。
6. 自定义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(触发器 ),它用来设置告警的阀值,当然我们也可以自定义编辑它。
三、zabbix配置邮件告警
1. 主服务器机器上安装一个sendmail或者postfix,调用mailx发邮件
说明: 调用mailx发邮件,如没有/etc/mail.rc文件,需yum install mailx
修改配置文件vim /etc/mail.rc
set smtp=smtp.126.com
set smtp-auth-user=hzpzc68
set smtp-auth-password=XXXXXXXX
set smtp-auth=login
测试: echo "important" | mail -s "today" [email protected]
2. 给zabbix创建一个存放脚本的目录,并编辑一个脚本,并授予可执行权限
命令 mkdir -p /home/zabbix/bin
说明: $3 邮件内容 $2 主题 $1收件邮箱
命令 vim /home/zabbix/bin/baojing.sh
脚本内容:
#! /bin/bash
echo "$3" |/bin/mail -s "$2" $1
命令 chmod +x /home/zabbix/bin/baojing.sh
3. 发邮件测试
命令 cd /home/zabbix/bin/
命令 ./baojing.sh nihao nihao [email protected]
说明:如果成功会收到邮件提示
4. 编辑主配置文件,将脚本目录改为自定义的脚本存放目录
命令 vim /etc/zabbix_server.conf
更改为:
AlertScriptsPath=/home/zabbix/bin #用户自定义的media types脚本
ExternalScripts=/home/zabbix/bin #用户自定义的检查的脚本(item)
5. Web上配置邮件报警
创建mediea types: “Administration" -->”Media types",点击右上角“Create Media Type"其中Description填"baojing” 或其它自定义名称,Type选择"Script",Script填”baojing.sh”然后点”Save”;
创建user: “Adimistration” --> “Users”在右上角,选择”Users”,点击”Create User”, alias: sile,自定义name和lastname password:123456;group 选择guest,回到上面点一下media,type 选择baojing,send to 写要发送邮件的邮箱,点add;进入permissions,User type选择zabbix super admin(选其他没有权限触发action);最后点save
创建action: “configuration” --> actions,右上角“Create Actions”, Name自定义,我这里写”baojing”,其他可以默认也可以自定义(Default subject表示邮件主题,Default message表示邮件内容,Recovery message表示故障恢复后也会发邮件);Conditions表示触发的条件,系统已经有两个,也可以继续添加;然后点右侧的“Operations”下的“New”按钮,“Operation Type”选择“Send message”,“Send Message to”选择一个或多个要发送消息的用户组(可以不填),Send to Users选择我们之前新增的silen, “Send only to”选择baojing , 点一下add,最后点save
Default subject邮件主题一般这么写:
服务器:{HOSTNAME1}:{TRIGGER.NAME}
Default message邮件内容一般这么写:
告警主机:{HOSTNAME1}
告警信息: {TRIGGER.NAME}
当前状态:{TRIGGER.STATUS}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
6. 测试
命令 /etc/init.d/zabbix-agent stop
说明:被监控的客户机,关闭zabbix-agent
7. 结果
说明:5分钟出现告警:172.16.115.160:Zabbixagent on 172.16.115.160 is unreachable for 5 minutes,并有邮件提示;客户机开启zabbix-agent,有恢复的邮件提示