随着云计算和互联网的高速发展,大量应用需要横跨不同网络终端,并广泛接入第三方服务(如支付、登录、导航等),IT系统架构越来越复杂。快速迭代的产品需求和良好的用户体验,需要IT运维管理者时刻保障核心业务稳定可用,而企业运维中的痛点和难点也急需解决。
1、面向业务的运维,不但关心单点IT资源的运行状态,更关心整个业务系统的健康状态
2、如果企业使用了大量的API和模块化应用,那么关注每个接口的性能变化情况和指标
3、对于运维主管及企业管理层来说,特别需要上墙的监控大屏
4、运维需要每周、每月查看报告趋势分析,但传统运维工具数据导出困难
5、需要第一时间转雀和快速发现故障节点,减少业务中断带来的损失
目前流行的开源运维工具如Zabbix、Nagios等大部分来自国外,虽然这些开源产品功能非常强大,但对技术要求很高,而且缺少足够的中文文档和本土服务支持,一般运维人员要想用好难度很大。
于是就有国内IT厂商小米、TalkingData对其自主开发的运维系统进行了开源,同时作为商用监控服务商代表的云智慧,也对其监控宝产品进行逐步开源,让运维、开发人员在获得便捷部署和易用性的同时,可根据自己的业务需求进行灵活的二次开发。
云智慧对业内主流的开源运维监控系统和商业运维监控系统进行对比,分析各种产品的定位、目标用户和功能特点,希望帮助广大运维、开发和创业者找到最适合自己的运维工具。
开源运维监控产品篇
Zabbix
推荐星级:★★★★★
Zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源运维平台,也是目前国内互联网用户中使用最广的监控软件,云智慧遇到的85%以上用户在使用Zabbix做监控解决方案。
运维工具大宝典之开源平台篇
入门容易、上手简单、功能强大并且开源免费是云智慧对Zabbix的最直观评价。Zabbix易于管理和配置,能生成比较漂亮的数据图,其自动发现功能大大减轻日常管理的工作量,丰富的数据采集方式和API接口可以让用户灵活进行数据采集,而分布式系统架构可以支持监控更多的设备。理论上,通过Zabbix提供的插件式架构,可以满足企业的任何需求。
用户群:85%以上的泛互联网企业。
优点:
1. 支持多平台的企业级分布式开源监控软件;
2. 安装部署简单、管理方便;
3. 功能强大,监控灵活,可实现复杂多条件告警;
4. 多种数据采集插件,灵活集成;
5. 自带画图功能,得到的数据可以绘成图形;
6. 同时支持调用脚本,很方便;
7. 提供多种API接口,定制化最高的监控软件;
8. 出现问题时可自动远程执行命令(需对agent设置执行权限);
缺点:
1. 项目批量修改不方便;
2. 社区虽然成熟,但是中文资料相对较少,服务支持有限;
3. 入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发,难度较大;
4. 系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;并且自定义的项目报警需要自己设置,过程比较繁琐;
5. 缺少数据汇总功能,如无法查看一组服务器平均值,需进行二次开发;
6. 数据报表需要特殊二次开发定义;
2.linux系统监控工具
(1)top
当你想要查看在系统中运行的进程或线程时:top 是一个很好的工具。你可以对这些进程以不同的方式进行排序,默认是以 CPU 进行排序的。
(2)htop
安装:yum -y install htop
htop 实质上是 top 的一个增强版本。它更容易对进程排序。它看起来上更容易理解,并且已经内建了许多通用操作以及利用鼠标操作。它也是完全交互式的。
(3)atop
安装: yum -y install atop
atop 和 top,htop 非常相似,它也能监控所有进程,但不同于 top 和 htop 的是,它可以按日记录进程的日志供以后分析。它也能显示所有进程的资源消耗。它还会高亮显示已经达到临界负载的资源
(4) iotop
安装: yum -y install iotop
(5)nethogs
安装: yum -y install nethogs
(6)iftop
安装: yum -y install iftop
-i 指定查看某一块网卡流量
3.zabbix监控3.0安装部署
环境准备:
zabbix服务端
[[email protected] ~]# tail -3 /etc/hosts
192.168.16.200 mirrors.aliyun.com
192.168.16.200 repo.zabbix.com
172.16.1.61 m01
[[email protected] ~]# hostname -I
10.0.0.61 172.16.1.61
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
客户端:
[[email protected] ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.16.200 mirrors.aliyun.com
192.168.16.200 mirrors.aliyun.com repo.zabbix.com
[[email protected] ~]# hostname -I
10.0.0.202 172.16.1.202
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[[email protected] ~]# getenforce
Disabled
1)服务端配置
echo "192.168.16.200 mirrors.aliyun.com repo.zabbix.com" >>/etc/hosts
安 装Zabbix官方源
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
安装zabbix,httpd,php
yum install zabbix-server-mysql zabbix-web-mysql -y
安装mariadb数据库
yum -y install mariadb-server
启动数据库
systemctl start mariadb.service
进入数据库配置
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;
exit
导入数据库sql文件
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
配置zabbix Server连接mysql
sed -i.ori ‘115a DBPassword=zabbix‘ /etc/zabbix/zabbix_server.conf
#修改apache-php配置
sed -i.ori ‘18a php_value date.timezone Asia/Shanghai‘ /etc/httpd/conf.d/zabbix.conf
启动
systemctl start zabbix-server
systemctl start httpd
systemctl enable zabbix-server.service httpd.service mariadb.service
利用浏览器访问
http://10.0.0.61/zabbix/
4.客户端部署
所有需要被监控的服务器都要执行下面步骤,下面以在m01和cache01安装客户端为例:
注:服务和客户端都要执行
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-agent -y
sed -i.ori ‘s#Server=127.0.0.1#Server=172.16.1.61#‘ /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent.service
#只能在服务端m01操作,需要使用-s执行相应客户端IP
yum install zabbix-get -y
zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get -s 172.16.1.202 -p 10050 -k "system.cpu.load[all,avg1]"
5.web界面操做更改语言设置
![]
解决字符乱码
zabbix-server操作命令
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
6.zabbix-server操作
cd /etc/zabbix/zabbix_agentd.d/
echo "UserParameter=login-user,who|wc -l" > userparameter_login.conf
systemctl restart zabbix-agent.service
zabbix_get -s 172.16.1.202 -p 10050 -k "login-user"
自定义模板设置
![](http://i2.51cto.com/images/blog/201803/15/8719c0c82c508b9698187044e837e741.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk![](http://i2.51cto.com/images/blog/201803/15/482ae6b08624a0d89d619387067ba135.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](http://i2.51cto.com/images/blog/201803/15/ea3bd62f361c824dfab3ed22baf602a8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk![](http://i2.51cto.com/images/blog/201803/15/dffd20da4c65defd1c288fb5c215e396.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](http://i2.51cto.com/images/blog/201803/15/1cde50da512e7b4253dd98f15bf227e0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](http://i2.51cto.com/images/blog/201803/15/232354aaa2f718341a6c1498728dc654.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
打开四个客户端xshell测试
7.能通过mail命令发邮件的邮箱账号
zabbix-server执行
[[email protected] zabbix_agentd.d]# cd /usr/lib/zabbix/alertscripts
[[email protected] alertscripts]# ls
[[email protected] alertscripts]# rz -E
rz waiting to receive.
[[email protected] alertscripts]# cat email.sh
#!/bin/bash
[ $# -ne 3 ] && exit 1
num=$(rpm -qa dos2unix|wc -l)
[ $num -eq 0 ] && yum -y install dos2unix &>/dev/null
email_File=/tmp/email.log
function main(){
echo "$3" >$email_File
/usr/bin/dos2unix $email_File &>/dev/null
/bin/mail -s "$2" "$1" <$email_File
}
main "$1" "$2" "$3"
[[email protected] alertscripts]# chmod +x email.sh
打开多个客户端xshell测试邮件报警
原文地址:http://blog.51cto.com/13132636/2087334