监控平台

2018-02-03 10:43:36来源:oschina作者:Lu_Castiel人点击

分享

本文索引:


Linux监控平台介绍
zabbix监控介绍
安装zabbix
忘记Admin密码如何做


Linux监控平台介绍

监控对于一个企业而言是非常重要的,尤其对一些比较重要的业务,监控可以在问题出现之初就被发现,能够及时修复,较少损失。


创建的开源监控软件有:cacti、nagios、zabbix、smokeping、open-falcon等。


cacti、smokeping偏向于基础监控,图形化显示非常漂亮。


cacti、zabbix支持web界面进行管理、控制,zabbix在这方面做得很好,配置简单;相对而言nagios需要修改配置文件等,步骤繁琐。cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注意服务或者监控项的状态,zabbix会时刻获取服务或者监控项目的数据,并将数据记录到数据库里,从而可以出图。


open-falcon是小米公司开发的,开源后受到诸多大公司和运维工程师的追捧,适合大公司,国内的很多大公司如滴滴、360、新浪微博、京东等大公司都在使用这款软件,值得研究。




zabbix监控介绍

C/S架构,基于c++开发,监控中心支持web界面配置和管理。


单server节点可以支持上万台客户端,并发高,其瓶颈在于数据采集的量,当服务器的规模达到一定程度后,就需要添加一些代理。


最新版本3.4,官方文档 https://www.zabbix.com/manuals


zabbix包括5个组件:

zabbix-server
监控中心,接收客户端上报信息,负责配置、统计、操作数据。

web UI
在web界面下操作配置,这也是zabbix简单易用的主要原因。

zabbix-proxy
可选组件,可以代替zabbix-server的功能,减轻server的压力。

zabbix-agent
客户端软件,负责采集各个监控服务或项目的数据,并上报。

监控流程如下:


zabbix monitor process




安装zabbix

可以使用yum安装zabbix,epel仓库的zabbix较老,这里推荐使用新版本所对应的yum仓库来安装新版本。到http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/目录下找到zabbix-release-3.2-1.el7.noarch.rpm包,使用rpm命令安装即可。(可以根据需要安装版本,上述的地址和包只要修改版本号即可)


服务器端
下载仓库并安装
# 服务器和客户端都需要安装zabbix-release包
[[email protected] ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[[email protected] ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpmzabbix安装
#服务器(会附带安装httpd和php,web界面需要)
[[email protected] ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql安装、配置并启动mysql
# 如果你的服务器内已经有了mysql就不要再次安装了
[[email protected] ~]# yum install -y mysql
[[email protected] ~]# vi /etc/my.cnf
# 不设置的话,后续web界面设置为中文将会出现显示错误。
character_set_server = utf8
[[email protected] ~]# systemctl start mysql创建zabbix库
# 创建zabbix库
mysql> create database zabbix character set utf8;
# 授予权限
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';导入zabbix的原始数据
# 默认的原始数据在/usr/share/doc/zabbix-server-mysql-你的版本/
[[email protected] ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
[[email protected] zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz
[[email protected] zabbix-server-mysql-3.2.11]# mysql -uroot -p1 zabbix < create.sql
# create.sql内的数据较多,导入过程需要一点时间启动服务
[[email protected] ~]# systemctl start zabbix-server
# 启动httpd的时候需要注意一下,如果服务器内安装并启动了nginx服务器,需要关闭nginx,否则80端口被占用,导致httpd启动不了。
[[email protected] ~]# systemctl start httpd
客户端
下载仓库并安装
[[email protected] ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
[[email protected] ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm安装zabbix-agent
[[email protected] ~]# yum install -y zabbix-agent修改配置文件
# 这里最关键的就是设置白名单
# 白名单的意义在于限定连接的服务器端,防止客户端信息泄露
[[email protected] ~]# vi /etc/zabbix/zabbix_agentd.conf
# 指定服务器IP
Server=127.0.0.1 改为 Server=192.168.65.133
# 主动模式,主动向服务器端上报信息
ServerActive=127.0.0.1 改为 ServerActive=192.168.65.133
Hostname=Zabbix server 改为 Hostname=client1 //这个名字随便写,方便区分
保存退出启动zabbix-agent
[[email protected] ~]# systemctl start zabbix-agent

zabbix-server的端口号默认为10051,zabbix-agent的默认端口号为10050



zabbix启动不正常的解决
zabbix服务启动但端口(10051)未正常检测

查看日志,发现mysql无法连接


[[email protected] ~]# tail /var/log/zabbix/zabbix_server.log
2978:20180120:154842.481 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
...

编辑配置文件


[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf
# mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';
DBHost=127.0.0.1//对应zabbix数据库和用户创建时的ip
DBPassword=zabbix //对应zabbix数据库和用户创建时的密码
# 实际生产环境下,为了服务器的性能优化,mysql可能会装在其他服务器上,这时上述Host修改为实际mysql服务器的ip即可。

重启zabbix服务


[[email protected] ~]# systemctl restart zabbix-server

查看是否正常启动


[[email protected] ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local AddressForeign AddressStatePID/Program name
tcp 00 0.0.0.0:1110.0.0.0:* LISTEN1/systemd
tcp 00 0.0.0.0:220.0.0.0:* LISTEN1840/sshd
tcp 00 127.0.0.1:25 0.0.0.0:* LISTEN2107/master
tcp 00 0.0.0.0:100510.0.0.0:* LISTEN3012/zabbix_server
tcp600 :::3306 :::*LISTEN2064/mysqld
tcp600 :::111:::*LISTEN1/systemd
tcp600 :::80 :::*LISTEN2986/httpd
tcp600 :::22 :::*LISTEN1840/sshd
tcp600 ::1:25:::*LISTEN2107/master
tcp600 :::10051:::*LISTEN3012/zabbix_server
[[email protected] ~]# ps aux |grep zabbix
zabbix 30120.60.4 2562564116 ? S15:53 0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
zabbix 30150.00.2 2562562464 ? S15:53 0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes]
zabbix 30160.00.2 2562562672 ? S15:53 0:00 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.021593 sec, idle 60 sec]
zabbix 30170.60.5 3632005188 ? S15:53 0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix 30180.60.5 3632005188 ? S15:53 0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000008 sec, idle 5 sec]
zabbix 30190.40.5 3632005188 ? S15:53 0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix 30200.40.5 3632005188 ? S15:53 0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000012 sec, idle 5 sec]
zabbix 30210.40.5 3632005188 ? S15:53 0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000017 sec, idle 5 sec]
zabbix 30220.40.5 3632005188 ? S15:53 0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000013 sec, idle 5 sec]
zabbix 30230.00.3 2562563576 ? S15:53 0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection]
zabbix 30240.00.3 2562563576 ? S15:53 0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]
zabbix 30250.00.3 2562563576 ? S15:53 0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection]
zabbix 30270.00.3 2562563576 ? S15:53 0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection]
zabbix 30280.00.3 2562563576 ? S15:53 0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection]
zabbix 30290.10.2 2588322604 ? S15:53 0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000008 sec, idle 5 sec]
zabbix 30320.00.2 2562562680 ? S15:53 0:00 /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.009433 sec, idle 30 sec]
zabbix 30330.00.2 2562562460 ? S15:53 0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]
zabbix 30340.00.2 2563322908 ? S15:53 0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000154 sec, 0 maintenances in 0.002947 sec, idle 30 sec]
zabbix 30350.00.2 2562562820 ? S15:53 0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000652 sec, idle 5 sec]
zabbix 30390.40.5 3606165024 ? S15:53 0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.049212 sec, idle 60 sec]
zabbix 30400.00.2 2562562804 ? S15:53 0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000007 sec, idle 1 sec]
zabbix 30410.00.2 2562562804 ? S15:53 0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000003 sec, idle 1 sec]
zabbix 30420.00.2 2562562804 ? S15:53 0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000002 sec, idle 1 sec]
zabbix 30430.00.2 2562562804 ? S15:53 0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000003 sec, idle 1 sec]
zabbix 30480.00.3 2562563760 ? S15:53 0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.001462 sec, idle 3 sec]
zabbix 30490.00.3 2562563756 ? S15:53 0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000005 sec, idle 5 sec]
zabbix 30500.00.2 2562562572 ? S15:53 0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000008 sec, idle 1 sec]
zabbix 30510.00.2 2562562792 ? S15:53 0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000485 sec, idle 5 sec]
root30640.00.0 112684 972 pts/0S+ 15:54 0:00 grep --color=auto zabbixzabbix-agent启动失败
[[email protected] ~]# systemctl start zabbix-agent
Job for zabbix-agent.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.
[[email protected] ~]# systemctl status zabbix-agent.service
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: resources) since 二 2018-01-30 14:54:58 CST; 9s ago
Process: 3413 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
1月 30 14:54:58 client systemd[1]: zabbix-agent.service neve...
1月 30 14:54:58 client systemd[1]: Failed to start Zabbix Ag...
1月 30 14:54:58 client systemd[1]: Unit zabbix-agent.service...
1月 30 14:54:58 client systemd[1]: zabbix-agent.service failed.

解决方法:关闭selinux


[[email protected] ~]# setenforce 0
[[email protected] ~]# systemctl restart zabbix-agent
[[email protected] ~]# ps aux | grep zabbix-agent
root34470.00.0 112680 980 pts/0R+ 14:55 0:00 grep --color=auto zabbix-agent
[[email protected] ~]# ps aux | grep zabbix
zabbix 34400.00.1806081252 ? S14:55 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 34410.00.1806081288 ? S14:55 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 34420.00.1806081832 ? S14:55 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 34430.00.1806081836 ? S14:55 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 34440.00.1806081832 ? S14:55 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix 34450.00.2807362188 ? S14:55 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root34490.00.0 112680 972 pts/0R+ 14:55 0:00 grep --color=auto zabbix
[[email protected] ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local AddressForeign AddressStatePID/Program name
tcp 00 0.0.0.0:1110.0.0.0:* LISTEN1/systemd
tcp 00 0.0.0.0:220.0.0.0:* LISTEN1321/sshd
tcp 00 127.0.0.1:25 0.0.0.0:* LISTEN2145/master
tcp 00 0.0.0.0:100500.0.0.0:* LISTEN3440/zabbix_agentd
tcp600 :::3306 :::*LISTEN2104/mysqld
tcp600 :::111:::*LISTEN1/systemd
tcp600 :::22 :::*LISTEN1321/sshd
tcp600 ::1:25:::*LISTEN2145/master
tcp600 :::10050:::*LISTEN3440/zabbix_agentd
zabbix web 初始化配置
打开浏览器,输入Server_IP/zabbix,回车,就会看到zabbix的配置页面。

zabbix conf web


安装前参数检验

zabbix_pre-requisites


修改php的配置的文件


[[email protected] ~]# vim /etc/php.ini
定位到timezone
timezone = Asia/Shanghai
# 修改后重启httpd服务
[[email protected] ~]# systemctl restart httpd

刷新页面后查看


zabbix_pre-requisites_after


配置mysql相关信息

zabbix_mysql


信息汇总


zabbix_conf_summary


登录
使用默认的用户名/密码进行登录:Admin/zabbix

zabbix_login


修改默认管理员密码

"Administration" --> "User" --> "Admin"


change_adm_passwd_step


为了配置的方便,我们可以先修改语言为中文

change language


点击update按键,再次修改Adminy用户信息界面就显示为中文了!


修改用户密码

点击修改密码,将新密码输入2次后,点击更新即可
change_adm_passwd


退出当前用户,使用新密码重新登录,界面如下(当前未配置监控的主机,显示的数据为空):


zabbix web




忘记Admin用户密码

如果忘记Admin的密码,直接在mysql中的zabbix数据库内更新密码即可。


具体步骤如下:


mysql> show databases;
+--------------------+
| Database|
+--------------------+
| information_schema |
| mysql|
| performance_schema |
| test |
| test1|
| zabbix|
+--------------------+
6 rows in set (0.04 sec)
mysql> use zabbix;
mysql> show tables;
+----------------------------+
| Tables_in_zabbix|
+----------------------------+
| acknowledges |
| actions|
| alerts |
| application_discovery|
| application_prototype|
........
| trigger_discovery |
| trigger_tag|
| triggers |
| users|
| users_groups |
| usrgrp |
| valuemaps|
+----------------------------+
127 rows in set (0.01 sec)
mysql> desc users;
+----------------+---------------------+------+-----+---------+-------+
| Field | Type| Null | Key | Default | Extra |
+----------------+---------------------+------+-----+---------+-------+
| userid| bigint(20) unsigned | NO | PRI | NULL||
| alias | varchar(100) | NO | UNI |||
| name| varchar(100) | NO | |||
| surname | varchar(100) | NO | |||
| passwd| char(32) | NO | |||
| url | varchar(255) | NO | |||
| autologin| int(11)| NO | | 0||
| autologout | int(11)| NO | | 900 ||
| lang| varchar(5) | NO | | en_GB ||
| refresh | int(11)| NO | | 30||
| type| int(11)| NO | | 1||
| theme | varchar(128) | NO | | default ||
| attempt_failed | int(11)| NO | | 0||
| attempt_ip | varchar(39)| NO | |||
| attempt_clock| int(11)| NO | | 0||
| rows_per_page| int(11)| NO | | 50||
+----------------+---------------------+------+-----+---------+-------+
16 rows in set (0.00 sec)
# 这里修改的是users表,修改密码使用MD5加密,指定alaias为Admin
mysql> update users set passwd=md5('zabbix') where alias='Admin';

重新登录网页,使用新密码登录即可。



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台