监控软件
监控软件:zabbix,nagios,cacti,ganglia
1)、zabbix
定义:Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
性能:zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
适用范围:支持设备多,自带多种监控模板
支持分布式集中管理,有自动发现功能,可以实现自动化监控
缺点:需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据据很大,瓶颈主要在数据库。
Zabbix 官方文档:https://www.zabbix.com/documentation/start
2)、nagios
定义:Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。
性能:监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);监控主机资源(处理器负荷、磁盘利用率等); 可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等。
适用范围:
Nagios 已经可以支持由数万台服务器或上千台网络设备组成的云技术平台的监控,它可以充分发挥自动化运维技术特点在设备和人力资源减少成本
Nagios支持监控多台服务器并且在系统或服务状态异常时,发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
缺点:只是 Nagios 无法将多个相同应用集群的数据集合起来,也不能监控到集群中特殊节点的迁移和恢复。
看不到历史数据,只能看到报警事件,要追查故障原因,很难
参见:https://www.nagios.org/
3)、cacti
定义:Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
性能:cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
适用范围: Cacti 监控关注的是对数据的展示,却不关注数据异常后的反馈。
缺点:报警机制不完善
Cacti的官方的模板库:http://docs.cacti.net/templates
4)、ganglia
定义:ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量和监控数以千计的节点。
性能:主要是用来监控系统性能,如:cpu 、内存、硬盘使用率, I/O负载、网络流量情况等。
适用范围:适用于大型服务器集群用户。当有一个服务器群组时,ganglia可以通过曲线很容易的见到每个节点的工作状态。但是,ganglia服务端能够通过一台客户端收集到的是**同一个网段**的所有客户端的数据
缺点:没有内置的消息通知系统
没有报警机制,出现问题不能够及时报警
参见:http://ganglia.info/
区别:
1.nagios图形不是特别好,也可以安装图形插件,但是怎么好看
2.nagios一般情况下如果需要图形可以和cacti配合使用
3.cacti的监控是轮询监控,效率低,图形相对nagios比较好看
4.zabbix和nagios因为是并发监控,对cpu的要求更高
5.zabbix在性能和功能上都强大很多
6.zabbix的图形相当漂亮
7.支持多种监控方式 zabbix-agent snmp 等等
8.支持分布式监控,能监控的agent非常多
9.zabbix有图形的web配置界面,配置简洁
10.zabbix支持自动发现功能
今天写的就是zabbix3.4的安装与部分告警。
配置
环境准备:
1、关闭防火墙和selinux(这里写的只是临时关闭)
[root@zabbix-server ~] # setenforce 0
[root@zabbix-server ~] # systemctl stop firewalld
2、主机解析设置
[root@zabbix-server ~] # vim /etc/hosts
安装配置server和slave:
server端:(监控端)
1、用MySQL数据库安装存储库
[root@zabbix-server ~] # rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
2、安装ZabBIX服务器、前端、代理以及apache服务
[root@zabbix-server ~] # yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
[root@zabbix-server ~] # yum -y install httpd
3、创建初始数据库
a. 安装mariadb、mariadb-server
[root@zabbix-server ~] # yum install mariadb mariadb-server -y
b.启动mariadb
[root@zabbix-server ~] # systemctl start mariadb
c.进入数据库
[root@zabbix-server ~] # mysql -uroot -p
password
a).创建数据库ZabBIX,字符集UTF8,校对UTF8BIN;
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
b).给zabbix数据库所有权限,设置密码为"password"
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
c).刷新数据库
MariaDB [(none)]> flush privileges;
d).退出
MariaDB [(none)]> quit;
d.导入初始模式和数据。将提示您输入新创建的密码。
[root@zabbix-server ~] # zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p -D zabbix
4、为ZabBIX服务器配置数据库
[root@zabbix-server ~] # vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
[root@zabbix-server ~] # cd /usr/share/zabbix/conf
[root@zabbix-server conf]# ls
zabbix.conf.php.example
[root@zabbix-server conf]# cp zabbix.conf.php.example zabbix.conf.php
[root@zabbix-server conf]# vim zabbix.conf.php //修改数据库密码
$DB['PASSWORD'] = 'password';
5、启动ZabBIX服务器和代理进程并使其在系统启动时启动:
[root@zabbix-server ~] # systemctl start zabbix-server zabbix-agent httpd
[root@zabbix-server ~] # systemctl enable zabbix-server zabbix-agent httpd
6、为ZabBIX前端配置PHP
注:ZabBIX前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 中。一些PHP设置已经被配置。但是有必要取消“日期时区”设置,为你设置正确的时区。
[root@zabbix-server ~] # vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Shanghai
7、启动服务
# systemctl restart httpd
8、查看
在网页上输入,http://server_ip_or_name/zabbix
注:用户名中的Admin首字母大写
可以更改语言与界面,点击右上角的用户头像
slave端:(被监控端)
1、安装源,代理
[root@zabbix-agent ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@zabbix-agent ~]# yum -y install zabbix-agent
2、修改配置文件
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.122.211 // 被动模式 zabbix-server-ip
ServerActive=192.168.122.211 // 主动模式 zabbix-server-ip
Hostname=Zabbix server // 客户端主机名称
UnsafeUserParameters=1 // 是否限制用户自定义 keys 使用特殊字符
3、启动服务:
[root@zabbix-agent ~]# systemctl start zabbix-agent
[root@zabbix-agent ~]# systemctl enable zabbix-agent
4、查看端口:
[root@zabbix-agent ~]# ss -anlp |grep :10050
此时,在进入刚才的网页中,你会发现:
这样zabbix的配置就完成了!!!
下面是报警的案例
===============================================================
案例:使用公网邮箱发送邮件报警
邮件系统简介:
电子邮件系统包括两个组件:MUA(Mail User Agent,邮件用户代理)和MTA(Mail Transport Agent,邮件传送代理 postfix)MUA是邮件系统为用户提供的可以读写邮件的界面;而MTA是运行在底层,能够处理邮件的收发工作的程序。简单的说,用户可以 使用MUA写信、读信、而通过MTA收信、发信。Foxmail、Outlook、Webmail都属于MUA。
邮件的接收是MTA和MUA配合完成的。远程的MUA首先向远程MTA连接并验证发信人身份,然后由远程MTA向本地MTA发送邮件。接受者通过本 地MUA接收阅读邮件。邮件的发信也是MTA和MUA配合完成的,不过方向正好相反。本地MUA首先向本地的MTA连接并验证发信人身份,然后由本地 MTA向远程MTA发送邮件,再由远程的MUA读取邮件。
mail和mailx即为负责查看、编写邮件和向MTA发送邮件的MUA。mailx是mail的功能加强版。
sendmail即为负责邮件在网络上传输的MTA,将邮件从一个MTA传送至另一个MTA。
开始部署:
1、安装MUA软件:mailx
[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# mail -V
12.5 7/5/10
2、配置公网邮箱信息:
[root@zabbix-server ~]# vim /etc/mail.rc
set from=xxx@163.com(邮箱地址)
set smtp=smtp.163.com(smtp服务器)
set smtp-auth-user=xxx@163.com(用户名)
set smtp-auth-password=xxx(授权码)
set smtp-auth=login
3、手动发送邮测试:
[root@zabbix-server ~]# mailx -v -s 'hello' 'xxx@163.com'
nihao
EOT
Resolving host smtp.163.com . . . done.
Connecting to 123.125.50.138:smtp . . . connected.
220 163.com Anti-spam GT for Coremail System (163com[20141201])
EHLO zabbix-server
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFnnfvEUCa0xDrUUUUj
250-STARTTLS
250 8BITMIME
AUTH LOGIN
334 dXNlcm5hbWU6
aHV5YXRpbmcxMTE4QDE2My5jb20=
334 UGFzc3dvcmQ6
ZmVsbG93MTExOG1l
235 Authentication successful
MAIL FROM:<xxx@163.com>
250 Mail OK
RCPT TO:<xxx@163.com>
250 Mail OK
DATA
354 End data with <CR><LF>.<CR><LF>
.
250 Mail OK queued as smtp1,C9GowABnh29KNVxbtGebAQ--.99S2 1532769610
QUIT
221 Bye
或者,将邮件内容放到一个文件中content.txt
cat content.txt | mailx -v -s ‘hello’ ‘xxx@163.com’
也可以使用zabbix进行报警,这里我就不写了,可以自己看一下zabbix的官网
来源:51CTO
作者:紫fly
链接:https://blog.51cto.com/13765357/2151513