一、什么是zabbix及优缺点(对比cacti和nagios)
- 优点:基于两款工具优点于一身并更强大,实现企业级分布式监控。
- 缺点:2.2版本带宽占用大但是升级到2.4版本后更节省了带宽资源,其它再无发现。
二、监控功能
- 设备:服务器,路由器,交换机
- 软件:OS,网络,应用程序
- 主机性能指标监控
- 故障监控: down机,服务不可用,主机不可达
三、工作原理
四、zabbix的组件及进程
五、zabbix监控环境中基本概念
六、在centos7.3上安装zabbix4.0
#安装mariadb10.3数据库 [mariadb] name=MariaDB baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/ gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 #安装mariadb数据库
yum install MariaDB
#安装zabbix4.0的源 rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #安装zabbix所需的组件 yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent # mysql -uroot -proot mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; mysql> quit; #导入zabbix服务器所需要的表和数据 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix #编辑文件/etc/zabbix/zabbix_server.conf DBPassword=zabbix #编辑文件设置时区/etc/httpd/conf.d/zabbix.conf php_value date.timezone Europe/Riga(打开注释) #启动服务和开机自启 systemctl restart zabbix-server zabbix-agent httpd systemctl enable zabbix-server zabbix-agent httpd #浏览器访问 http://server_ip/zabbix #有乱码方块的解决办法 在windows下的C:WindowsFonts下找到宋体字文件simsun.ttc 上传到linux服务器中 cd /usr/share/zabbix/fonts #将原来的字体备份 mv graphfont.ttf graphfont.ttf.bak #把windows中的字体改名为graphfont.ttf mv simsun.ttc graphfont.ttf
一、关闭sendmail或者postfix
service sendmail stop #关闭
chkconfig sendmail off #禁止开机启动
service postfix stop
chkconfig postfix off
备注:
使用外部邮箱账号时,不需要启动sendmail或者postfix
如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱
配置信息。
二、安装邮件发送工具mailx
下载mailx:
yum install mailx
whereis mailx #查看安装路径
mailx -V #查看版本信息
三、配置Zabbix服务端外部邮箱
vi /etc/mail.rc #编辑,添加以下信息
set from=xxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxx@163.com smtp-auth-password=123456
set smtp-auth=login
:wq! #保存退出
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:yyy@163.com
#这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件
四、配置Zabbix服务端邮件报警
1、打开Zabbix
2、设置Zabbix用户报警邮箱地址
3、设置Zabbix触发报警的动作
主题:
Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复主题:
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
选择用户:Admin
选择
仅送到:Sendmail
存档
4、添加Zabbix服务端邮件发送脚本
cd /usr/lib/zabbix/alertscripts #进入脚本存放目录
vi sendmail.sh #编辑,添加以下代码
#!/usr/bin/sh echo 'start' >> /tmp/zabbix.log messages=`echo $3 | tr ' ' ' '` subject=`echo $2 | tr ' ' ' '` echo "${messages}" | mail -s "${subject}" $1 echo "end" >> /tmp/zabbix.log
:wq! #保存退出
chown zabbix.zabbix sendmail.sh
chown zabbix.zabbix /tmp/zabbix.log
#设置脚本所有者为zabbix用户
chmod +x sendmail.sh
#设置脚本执行权限
五、测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看xxx@163.com邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看xxx@163.com邮箱,会收到恢复邮件
自动发现
点击配置--->自动发现
创建自动发现的规则
然后就可以在检测自动发现里看到扫描出来的主机了
如果要监控起来需要添加自动注册,点击配置--->动作
zabbix监控mysql数据库
在客户端的zabbix配置文件中添加HOME=/etc/zabbix/ mysqladmin ping | grep -c alive
proxy配置
create database zabbix_proxy character set utf8 collate utf8_bin; grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix'; zcat /usr/share/doc/zabbix-proxy-mysql-4.0.6/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy vim /etc/zabbix/zabbix_proxy.conf Server=192.168.254.61(zabbix server的ip地址) Hostname=zabbix-proxy(本机的主机名字) DBName=zabbix_proxy(数据库名字) DBUser=zabbix(数据库用户名) DBPassword=zabbix(数据库密码) service zabbix-proxy restart
agent端
Server=192.168.254.62 ServerActive=192.168.254.62 HostnameItem=system.hostname
自定义监控
UnsafeUserParameters=1 UserParameter=proc.mysql,ps -ef|grep mysql|wc -l
测试命令
yum install zabbix-get zabbix_get -s 127.0.0.1 -p 10050 -k "proc.mysql"