Linux监控平台介绍
常见开源监控软件:cacti、nagios、zabbix、smokeping、open-falcon等
- cacti、smokeping偏向于基础监控,成图非常漂亮
- cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图
- open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件
zabbix监控介绍
Zabbix 是一个高度集成的网络监控解决方案,可以提供 企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。
Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置:
- 被监控端: 主机通过安装 agent 方式采集数据,网络设备通过 SNMP 方式采集数据
- Server 端: 通过收集 SNMP 和 agent 发送的数据,写入数据库再通过 php+apache 在 web 前端展示。
Zabbix 运行条件:
- Server: Zabbix Server 需 运 行在 LAMP/LNMP,对硬件要求低。
- Agent: 目前已有的 agent 基本支持市面常见的 OS,包含 Linux、HPUX、Solaris、Sun、windows。
- SNMP: 支持各类常见的网络设备。
监控过程逻辑如图示:
监控流程图:
安装zabbix
准备工作,两台机器一个做服务端,另外一个做客户端;
yolks3服务端 :192.168.248.129 yolks2客户端 :192.168.248.130
1.在/usr/local/src/目录下载zabbix包
wget https://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
2.rpm安装:获得yum源
rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
3.yum安装
yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
4.设置字符集
编辑配置文件/etc/my.cnf 增加配置
character_set_server = utf8
如下图所示:
5.重启mysql数据库并且登录mysql创建zabbix数据库
创建数据库zabbix并且设定编码格式
create database zabbix character set utf8;
创建用户
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'yolks-zabbix';
退出
quit
6.进入zabbix目录
cd /usr/share/doc/zabbix-server-mysql-3.2.11/
7.解压出creat.sql并且导入到zabbix数据库中
解压:
gzip -d create.sql.gz
导入zabbix数据库
mysql -uroot -p'mysql123' zabbix < create.sql
8.启动zabbix服务
systemctl start zabbix-server
9.检查80端口是否关闭
如果开启则关闭,比如nginx
/etc/init.d/nginx stop
否则直接启动httpd服务
systemctl start httpd
查看80端口
netstat -lntp |grep 80tcp6 0 0 :::80 :::* LISTEN 1824/httpd
10.设置httpd和zabbix开机启动
systemctl enable httpd #设置httpd开机自启systemctl enable zabbix-server #设置zabbix-server开机自启systemctl disable nginx #禁用chkconfig nginx off #关闭自启
11.检查zabbix进程及端口号,此处我们查看发现有点小问题
查看进程
ps aux|grep zabbixzabbix 1779 0.0 0.1 254628 3496 ? S 22:00 0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.confroot 1946 0.0 0.0 112720 984 pts/0 R+ 22:10 0:00 grep --color=auto zabbix
查看端口
netstat -lntp |grep zabbiz
端口没有,查看日志:/var/log/zabbix/zabbix_server.log
通过错误显示不能正确连接mysql,我们修改配置文件:/etc/zabbix/zabbix_server.conf
检查下面配置及参数是否正确
ps:配置中的host需要和授权mysql账户时的host一致
然后重启zabbix,查看进程及端口号10051:
[root@yolks3 zabbix-server-mysql-3.2.11]# netstat -lntp |grep zabbixtcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 1971/zabbix_server tcp6 0 0 :::10051 :::* LISTEN 1971/zabbix_server [root@yolks3 zabbix-server-mysql-3.2.11]# ps aux|grep zabbixzabbix 1971 0.5 0.2 254808 4180 ? S 22:25 0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.confzabbix 1974 0.0 0.1 254808 2512 ? S 22:25 0:00 /usr/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes]zabbix 1975 0.0 0.1 254808 2728 ? S 22:25 0:00 /usr/sbin/zabbix_server: db watchdog [synced alerts config in 0.041999 sec, idle 60 sec]zabbix 1976 0.1 0.2 361748 5252 ? S 22:25 0:00 /usr/sbin/zabbix_server: poller #1 [got 0 values in 0.000005 sec, idle 5 sec]zabbix 1977 0.1 0.2 361748 5252 ? S 22:25 0:00 /usr/sbin/zabbix_server: poller #2 [got 0 values in 0.000007 sec, idle 5 sec]zabbix 1978 0.1 0.2 361748 5252 ? S 22:25 0:00 /usr/sbin/zabbix_server: poller #3 [got 0 values in 0.000007 sec, idle 5 sec]zabbix 1979 0.1 0.2 361748 5252 ? S 22:25 0:00 /usr/sbin/zabbix_server: poller #4 [got 0 values in 0.000006 sec, idle 5 sec]zabbix 1980 0.1 0.2 361748 5252 ? S 22:25 0:00 /usr/sbin/zabbix_server: poller #5 [got 0 values in 0.000007 sec, idle 5 sec]zabbix 1981 0.1 0.2 361748 5252 ? S 22:25 0:00 /usr/sbin/zabbix_server: unreachable poller #1 [got 0 values in 0.000005 sec, idle 5 sec]zabbix 1982 0.0 0.1 254808 3620 ? S 22:25 0:00 /usr/sbin/zabbix_server: trapper #1 [processed data in 0.000000 sec, waiting for connection]zabbix 1983 0.0 0.1 254808 3620 ? S 22:25 0:00 /usr/sbin/zabbix_server: trapper #2 [processed data in 0.000000 sec, waiting for connection]zabbix 1984 0.0 0.1 254808 3620 ? S 22:25 0:00 /usr/sbin/zabbix_server: trapper #3 [processed data in 0.000000 sec, waiting for connection]zabbix 1985 0.0 0.1 254808 3620 ? S 22:25 0:00 /usr/sbin/zabbix_server: trapper #4 [processed data in 0.000000 sec, waiting for connection]zabbix 1986 0.0 0.1 254808 3620 ? S 22:25 0:00 /usr/sbin/zabbix_server: trapper #5 [processed data in 0.000000 sec, waiting for connection]zabbix 1987 0.0 0.1 257384 2684 ? S 22:25 0:00 /usr/sbin/zabbix_server: icmp pinger #1 [got 0 values in 0.000007 sec, idle 5 sec]zabbix 1988 0.0 0.1 254808 2732 ? S 22:25 0:00 /usr/sbin/zabbix_server: alerter [sent alerts: 0 success, 0 fail in 0.001175 sec, idle 30 sec]zabbix 1989 0.0 0.1 254808 2508 ? S 22:25 0:00 /usr/sbin/zabbix_server: housekeeper [startup idle for 30 minutes]zabbix 1990 0.0 0.1 254888 2992 ? S 22:25 0:00 /usr/sbin/zabbix_server: timer #1 [processed 0 triggers, 0 events in 0.000107 sec, 0 maintenances in 0.002763 sec, idle 30 sec]zabbix 1991 0.0 0.1 254808 2900 ? S 22:25 0:00 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.001031 sec, idle 5 sec]zabbix 1998 0.1 0.2 359276 5192 ? S 22:25 0:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.001209 sec, idle 60 sec]zabbix 1999 0.0 0.1 254808 2888 ? S 22:25 0:00 /usr/sbin/zabbix_server: history syncer #1 [synced 0 items in 0.000002 sec, idle 1 sec]zabbix 2001 0.0 0.1 254808 2888 ? S 22:25 0:00 /usr/sbin/zabbix_server: history syncer #2 [synced 0 items in 0.000002 sec, idle 1 sec]zabbix 2002 0.0 0.1 254808 2888 ? S 22:25 0:00 /usr/sbin/zabbix_server: history syncer #3 [synced 0 items in 0.000001 sec, idle 1 sec]zabbix 2005 0.0 0.1 254808 2888 ? S 22:25 0:00 /usr/sbin/zabbix_server: history syncer #4 [synced 0 items in 0.000002 sec, idle 1 sec]zabbix 2006 0.0 0.2 254808 3820 ? S 22:25 0:00 /usr/sbin/zabbix_server: escalator #1 [processed 0 escalations in 0.001439 sec, idle 3 sec]zabbix 2009 0.0 0.2 254808 3820 ? S 22:25 0:00 /usr/sbin/zabbix_server: proxy poller #1 [exchanged data with 0 proxies in 0.000005 sec, idle 5 sec]zabbix 2010 0.0 0.1 254808 2656 ? S 22:25 0:00 /usr/sbin/zabbix_server: self-monitoring [processed data in 0.000010 sec, idle 1 sec]zabbix 2011 0.0 0.1 254808 2876 ? S 22:25 0:00 /usr/sbin/zabbix_server: task manager [processed 0 task(s) in 0.000510 sec, idle 5 sec]root 2024 0.0 0.0 112720 984 pts/0 R+ 22:26 0:00 grep --color=auto zabbix
12.配置web端
windows浏览器输入服务器ip,看到如下图所示界面
点击下一步,检查看有没有fail选项:
提示没有设置时区,修改php配置文件/etc/php.ini,搜索timezone
date.timezone = Asia/Shanghai
如下图所示:
然后重新启动httpd
systemctl restart httpd
再次刷新windows浏览器,已经ok,点击下一步:
进行配置mysql数据库,填写对应信息,点击下一步:
填写name,即主机名,自定义填写即可,下一步:
显示全部配置信息,下一步:
提示成功安装,点击finish
跳转登录界面,可以登录了:使用默认账户密码:admin/zabbix
默认密码不太安全,我们去修改密码
点击admin
点击change password
设置新密码并且更改语言为中文,点击update按钮
修改完刷新页面,即可看到界面已经修改为中文
13.配置客户端
同步骤1,下载zabbix包,rpm命令安装
1)yum安装客户端
yum install -y zabbix-agent
2)修改客户端配置文件:/etc/zabbix/zabbix_agentd.conf
- Server=127.0.0.1修改为Server=192.168.248.130 //定义服务端的ip(被动模式)
- ServerActive=127.0.0.1修改为ServerActive=192.168.248.130 //定义服务端的ip(主动模式)
- Hostname=Zabbix server修改为Hostname=yolks //这是自定义的主机名,一会还需要在web界面下设置同样的主机名
3)启动客户端zabbix
systemctl start zabbix-agent
4)检查服务和端口号
[root@yolks2 src]# netstat -lntp|grep nginxtcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 830/nginx: master p tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 830/nginx: master p[root@yolks2 src]# ps aux |grep zabbixzabbix 1510 0.0 0.0 80704 1288 ? S 23:04 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.confzabbix 1511 0.0 0.0 80704 1332 ? S 23:04 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]zabbix 1512 0.0 0.0 80704 1848 ? S 23:04 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]zabbix 1513 0.0 0.0 80704 1848 ? S 23:04 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]zabbix 1514 0.0 0.0 80704 1848 ? S 23:04 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]zabbix 1515 0.0 0.1 80836 2220 ? S 23:04 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]root 1517 0.0 0.0 112720 984 pts/0 R+ 23:04 0:00 grep --color=auto zabbix
忘记Admin密码如何做
进入服务端mysql的zabbix库,查看users表
mysql> select * from users;+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+| userid | alias | name | surname | passwd | url | autologin | autologout | lang | refresh | type | theme | attempt_failed | attempt_ip | attempt_clock | rows_per_page |+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+| 1 | Admin | Zabbix | Administrator | 41a39905a68d2a32fbe318500acd205c | | 1 | 0 | zh_CN | 30 | 3 | default | 0 | | 0 | 50 || 2 | guest | | | d41d8cd98f00b204e9800998ecf8427e | | 0 | 900 | en_GB | 30 | 1 | default | 0 | | 0 | 50 |+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+2 rows in set (0.00 sec)
修改密码使用update语句修改即可
update users set passwd = md5('newpasswd') where alias = 'Admin';