利用zabbix软件,搭建自动化监控系统。

监控的目的:

报告系统运行状况:内容包括吞吐量、反应时间、使用率等。

提前发现问题:进行服务器性能调整、找出系统的瓶颈在何处。


监控的资源类别:

公开数据:

tcp或udp端口、web、ftp、ssh、数据库等。

私有数据:

cpu、内存、磁盘、网卡流量、用户进程等。


系统常用监控命令:

ps、uptime、free、swapon -s、df -h、ifconfig、netstat、ping、traceroute、iostat


自动化监控系统:

Cacti:基于SNMP协议,强大的绘图能力。

Nagios:基于Agent、强大的状态检查与报警机制、插件较多、支持自己写入监控脚本。

Zabbix:基于多种监控机制、支持分布式监控。


Zabbix简介:

是一个高度集成的监控解决方案。

可以实现企业级的开源分布式监控。

通过C/S模式采集监控数据。

通过B/S模式实现Web管理。

通过SNMP或Agent采集数据,并写入数据库中。

服务器使用LNMP架构实现Web前端管理。

被监控主机需要安装Agent,且网络设备支持SNMP。


准备安全监控系统环境:

搭建LNMP环境:

Nginx安装参考:https://teddyou.com/?p=171

注意!nginx配置文件的http{..}中需要添加如下内容,并启用PHP本地调用:

 fastcgi_buffers 8 16k;
 fastcgi_buffer_size 32k;
 fastcgi_connect_timeout 300;
 fastcgi_send_timeout 300;
 fastcgi_read_timeout 300;

MySQL数据库安装参考:https://teddyou.com/?p=85

Mariadb数据库安装运行:

yum -y install mariadb-server mariadb-devel
systemctl start mariadb

PHP安装运行:

yum -y install php-fpm php-mysql
systemctl start php-rpm


安装Zabbix:

下载:https://www.zabbix.com/cn/download_agents

yum -y install  net-snmp-devel curl-devel libevent-devel
tar xf zabbix-3.2.3.tar.gz
cd ./zabbix-3.2.3/
./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
make && make install


初始化Zabbix:

[root@localhost zabbix-3.2.3]# mysql
MariaDB [(none)]> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

[root@localhost zabbix-3.2.3]# cd database/mysql/
[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -pzabbix zabbix < data.sql

导入Web页面:

[root@localhost zabbix-3.2.3]# cp -rp frontends/php/ /usr/local/nginx/html/zabbix
[root@localhost zabbix-3.2.3]# chmod 777 -R /usr/local/nginx/html/zabbix/

访问Web页面:http://zabbix服务器的IP或域名/zabbix/setup.php

2019-02-11 11-47-04屏幕截图.png

点击下一步,出现报错信息,我们需要继续按照报错信息修改配置文件。

vim /etc/php.ini
 672 post_max_size = 16M
 384 max_execution_time = 300
 394 max_input_time = 300
 878 date.timezone = Asia/Shanghai
yum -y install php-gd php-xml php-ldap php-bcmath
systemctl restart php-fpm

刷新服务,即可进行初始化设置。初始化完成后默认登陆账户为admin,密码为zabbix


启用zabbix服务:

[root@localhost zabbix-3.2.3]# vim /usr/local/etc/zabbix_server.conf
 87 DBName=zabbix
103 DBUser=zabbix
111 DBPassword=zabbix

[root@localhost zabbix-3.2.3]# useradd zabbix
[root@localhost zabbix-3.2.3]# cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
[root@localhost zabbix-3.2.3]# chmod +x /etc/init.d/zabbix_server 
[root@localhost zabbix-3.2.3]# sed -i '22s;/usr/local;/usr/local/zabbix;' /etc/init.d/zabbix_server 
[root@localhost zabbix-3.2.3]# /etc/init.d/zabbix_server start
[root@localhost zabbix-3.2.3]# ss -nutlp | grep 10051

存在10051端口则说明服务被成功启动。


访问zabbix的web页面,在user的用户设置中可以将语言修改为中文(zh_CN)。



配置被监控的主机:

tar xf zabbix-3.2.3.tar.gz 
cd zabbix-3.2.3/
useradd -s /sbin/nologin zabbix
./configure  --prefix=/usr/local/zabbix --enable-agent && make && make install

vim /usr/local/zabbix/etc/zabbix_agentd.conf
 91 Server=127.0.0.1,192.168.2.5
 132 ServerActive=192.168.2.5:10051
 
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd 
sed -i '22s;/usr/local;/usr/local/zabbix;' /etc/init.d/zabbix_agentd 
/etc/init.d/zabbix_agentd start
ss -nutlp | grep 10050

查看端口10050被zabbix程序占用则说明服务启动成功。

配置完成,可在web管理页面中添加主机开始监控,部分模板存在冲突,请自行测试。



拓展:

打开自定义监控功能:

vim /usr/local/zabbix/etc/zabbix_agentd.conf
263 Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
278 UnsafeUserParameters=1
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/sumusers.conf
UserParameter=get_sum_users,wc -l /etc/passwd | awk '{print $1}'

创建新的监控模板即可调用。


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。