Task 7

 目标:监控线上服务的正常运行

 意义:了解运维的另一份重要职责,系统监控

 步骤:1.安装zabbix                  2.配置监控任务7的Web项目

 要求:1.停止服务之后,发出报警邮件 

                  2.启动服务之后,发出故障恢复邮件                  

                  3.查看系统的其他负载。了解CPU,IO,内存的使用率。超过设定阈值之后报警。

 掌握技能:     

   1.zabbix的配置 2.邮件发送的配置 3.了解服务器的基本状况



http://www.osyunwei.com/archives/7984.html,这就是安装及汉化的全部过程,感谢先人栽树!


这篇文章写的已经很到位了,一步一步按着来肯定能安装完毕,不过要注意他的Nginx安装包不是官方下载的,而是lnmp的包,如果是官方下载的话,需要在.conf那里多改一点东西。


这里面有几个细节问题,原作者没有说,都是发生在网页调试阶段

1)http://本地ip/zabbix/setup.php 网页打不开

将lnmp的nginx.conf中的local位置改成setup.php的目录,即由原来的/home/wwwroot/default改成/usr/local/nginx/html/。这样配置文件会默认打开新的路径并且找到index.html,同时在这个路径下输入/zabbix/setup.pjp也是可读的。

2)下一步,即Check of pre-requisites这步会有红字错误,文中作者说是要改/etc/php.ini,其实不对,#find / -name php.ini一下就会发现,其实有两个php.ini,需要改的其实是/usr/local/php/etc/php.ini,如图:

wKiom1ac6ZOQNes6AABs4_Sn-zI879.png

wKioL1ac6c3TW-_uAAA1eJAlyfo145.png

改完之后,需要#service php-fpm reload一下,然后刷新一下网页就能看到,配置文件里改成了303,而网页显示的也是303,这证明了这个php.ini才是真的需要更改的配置文件,其实改成300就可以了。


如果Zabbix server is not running怎么办?

#netstat -anp|grep zabbix,看看是否有zabbix server的项目,若是没有的话,#service zabbix_server start,这句命令有的机器是#service zabbix-server start

同时要关闭selinux,这玩意我也不知道美国国家安全局发明它有啥用,貌似我接触的运维软件都是要关闭这个的。#vim /etc/selinux/conf,然后将SELINUX = disabled。


还有一种超级情况,就是这样:

1453139461_601125.png明明启动了zabbix_server,但是检查端口的使用,却没有server这个服务,可见server根本没有启动,如果你使用#service zabbix_server restart,会发现shutdown那一步是“失败”的。


出现这种情况第一件事先检查mysql的服务器是否打开,#service mysql start,如果依旧,那就调用启动日志。默认的启动日志是/tmp/zabbix_server.log,vim了它,发现出现这样的字样:

wKioL1aeA2Wz0faeAAAfg4ja00o599.png说链接mysql的zabbix数据库失败,那么就要返回去zabbix的配置文件,看一下用户名和密码是否填写正确,默认的zabbix的配置文件在/user/local/zabbix/etc/zabbix_server.conf,vim一下,找到DBname,这个是zabbix,不要改,DBuser这个是mysql的登录名,DBpasswd这个就是登陆的密码。


我这个情况很奇怪,我使用账号zabbix和对应的密码是可以登录mysql的,但是SHOW DATABASES一下却看不到这个zabbix的数据库,而使用root账号登陆却是有的,我想是用户权限出了问题。于是我把zabbix_server.conf的DBuser改成root,密码也对应更改,就提示OK了。


情况二:检查日志,zabbix的日志写的比较好,比较通俗,发现日志的内容是这样的:

connection to database 'ZABBIX' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

 26986:20160707:092553.068 Database is down. Reconnecting in 10 seconds.

由于我这次设置的数据库叫ZABBIX,区分大小写。所以第一时间要登陆mysql,然后使用SHOW DATABASESE;这个命令检查一下这个账户和密码是否能看到ZABBIX这个数据库,如果没有,就CREATE DATABASE ZABBIX;建立ZABBIX数据库。


建立完毕,还是提示连接不上,那么就去zabbix_server.log里检查一下DBName和DBPasswd是否正确,顺便再去zabbix.conf.php检查一下,如果不正确,请按设定更改,然后#service zabbix_server restart。


如果还不正确,那就是socket的问题,#ps auxwww|grep mysql,检查一下看一下mysql的socket,比如这台机器检查到mysql的情况如下:

wKioL1d9sjvB01vjAAA8StuU-28489.png看到配置的socket位置是/tmp/mysql.sock,而不是日志写的/var/lib/mysql/mysql.sock,于是乎,来到zabbix_server.conf里更改如下:

wKioL1d9suOCCwZTAAAcQJ2k03s766.png


然后重启zabbix_server服务即可。


==========================================分割线======================================

centos7.1 通过yum安装 zabbix 3.0的方法主要参考:http://www.cnblogs.com/hanyifeng/p/5353068.html


这里说一点其他地方的坑:

1)Requires: libnetsnmp.so.20()(64bit)的错误:

# yum install zabbix-agent zabbix-server zabbix-server-pgsql -y
...
Error: Package: zabbix-server-pgsql-2.4.1-1.el6.x86_64 (zabbix)
           Requires: libnetsnmp.so.20()(64bit)

# yum provides libnetsnmp* --showduplicates | grep -w libnetsnmp
Provides    : libnetsnmp.so.31
Provides    : libnetsnmp.so.31()(64bit)
Provides    : libnetsnmp.so.31()(64bit)

找我要libnetsnmp.so.20()(64bit),但是7.1已经没有20()了,那么就去/etc/yum.repos.d/zabbix.repo这个文件里,把下面两行更改一下:

baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/$basearch/
baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/

更改成

baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/7/$basearch/ 
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/


2)启动zabbix的时候会启动失败,这个时候需要先把seforce停止,然后安装下面两个东西:

[root@test ~]# yum install trousers -y
[root@test ~]# yum install gnutls -y



3)进入web界面却是下面这样的样子,那是因为这台机器是原机zabbix2.2升级到3.0.8,需要在浏览器把cookie重新清理一下即可:

wKiom1jaFxqyVZjHAAEu6u4mgz8102.png-wh_50