基于LNMP架构搭建zabbix监控
LNMP安装环境
1、安装nginx1.14
[root@localhost ~]# wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
[root@localhost ~]#vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
其中baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/,把“OS”替换成“rhel”或“centos”,把“OSERELESE”替换成“6”或“7”
[root@localhost ~]#yum clean all
[root@localhost ~]#yum list
[root@localhost ~]# yum -y install nginx
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl enable nginx
2、安装MySQL5.7
[root@localhost ~]# yum -y install mariadb-server mariadb
[root@localhost ~]# systemctl enable mariadb.service
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# mysql_secure_installation
...
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
...
Remove anonymous users? [Y/n] n
... skipping.
...
Disallow root login remotely? [Y/n] n
... skipping.
...
Remove test database and access to it? [Y/n] n
... skipping.
...
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
3、安装PHP
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
或
yum -y install epel-release
//yum仓库建立
[root@localhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
//等待时间取决于网络
yum -y install php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql
//查看版本号
php -v
4、配置nginx支持PHP
vim /etc/php-fpm.d/www.conf #修改php-fpm配置文件,把apache改为nginx
//8 usr = nginx
//10 group = nginx
vim /etc/nginx/conf.d/default.conf #配置location,在index中添加index.php。以支持index.php的首页
//10 index index.php index.html index.html;
//配置php请求被传送到后端的php-fpm模块,默认情况下php配置块事被注释的,此时去掉注释并修改
//30~36取消注释,并修改31和34行
30 location ~ \.php$ {
31 root /usr/share/nginx/html;
32 fastcgi_pass 127.0.0.1:9000;
33 fastcgi_index index.php;
34 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
35 include fastcgi_params;
36 }
//配置php
vim /etc/php.ini #修改php配置文件
//359 expose_php = Off
//202 short_open_tag = On
以下为zabbix配置要求:
//368 max_execution_time = 300 #执行时间
//378 max_input_time = 300 #接收数据等待时间
//389 memory_limit = 128M #每个脚本占用内存
//656 post_max_size = 16M #post数据大小
//799 upload_max_filedize = 2M #下载文件大小
//800 always_populate_raw_post_data = -1 #需要添加可以用$HTTP_RAW_POST_DATA接收post raw data(原始未处理数据)
//877 data.timezone = Asia/Shanghai #取消注释,设置时区
//启动php-fpm
systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx
netstat -natp | grep 9000
//测试首页
vim /usr/share/nginx/html/info.php
<?php
phpinfo();
?>
在浏览器登录http://192.168.28.40/info.php测试页面
//测试连接数据库
vim /usr/share/nginx/html/info.php
<?php
$link=mysqli_connect('127.0.0.1','root','123456');
if ($link) echo "连接成功!!!";
else echo "连接失败!!!";
?>
注意:mysql_connect扩展PHP5.5.0起已废弃,改用mysqli或pdo_mysql
mysql -u root -p
create database zabbix character set utf8 collate utf8_bin;
grant all priviliges on *.* to 'zabbix'@'%' identified by '123456';
flush privileges;
//collate的作用
对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要一个COLLATE类型来告知MySQL如何对该列进行排序和比较。
vim /usr/share/nginx/html/info.php
<?php
$link=mysqli_connect('127.0.0.1','zabbix','123456');
if ($link) echo "Zabbix数据库连接成功!";
else echo "Zabbix数据库连接失败!";
?>
//解决来凝结失败,无法登录的问题
select user,host from mysql.user; #有空用户名称占用导致本地无法登录,远程可登录
MariaDB [(none)]> select user,host from mysql.user;
+--------+-----------------------+
| user | host |
+--------+-----------------------+
| zabiix | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+--------+-----------------------+
7 rows in set (0.00 sec)
drop user ''@localhost;
drop user ''@cacti;
flush privileges;
5、部署zabbix server
zabbix官网http://www.zabbix.com/download
控制端
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
//网络问题,需要多安装几次
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
//导入数据库脚本
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
vim /etc/zabbix/zabbix-server-mysql*/create.sql.gz | grep -uzabbix -p zabbix #生成数据库文件,注意密码不要输成root的,最好是admin123,否则后面还要改配置文件
//38 LogFile=/var/log/zabbix/zabbix_server.log
//49 LogFileSize=0
//72 PidFile=/var/run/zabbix/zabbix_server.pid
//82 SocketDir=/var/run/zabbix
//91 DBName=zabbix
//101 DBHost=localhost
//116 DBUser=zabbix
//124 DBPassword=admin123
//356 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
//473 Timeout=4
//516 AlertScriptsPath=/usr/lib/zabbix/alertscripts
//527 ExternalScripts=/usr/lib/zabbix/externalscripts
//563 LogSlowQueries=3000
--------可选操作(可以不用做)---------
vim /usr/share/zabbix/include/defines.inc.php #修正图标中文乱码
:%s /graphfont/kaiti/g #从微软系统下复制相应的字体文件到/usr/share/zabbix/fonts目录中注意字体名称要对应配置文件,且注意大小写
cp STKAITI.TTF /usr/share/zabbix/fonts/
setenforce 0 #一定要关闭
cp -r /usr/share/zabbix/ /usr/share/nginx/html/
chown -R zabbix:zabbix /etc/zabbix/
chown -R zabbix:zabbix /usr/share/nginx/
chown -R zabbix:zabbix /usr/lib/zabbix/
chowd -R 755 /etc/zabbix/web/
chowd -R 777 /var/lib/php/session/
systemctl start zabbix-server
systemctl enable zabbix-server
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -anpl | grep 10051
systemctl restart php-fpm
systemctl restart nginx
http://192.168.28.40/zabbix/ #安装后登录 默认用户名Admin 密码:zabbix
在出现上图问题时,可以进行以下操作
1、根据提示,下载文件
2、复制文件到指定目录,并赋予权限
cp zabbix.conf.php /etc/zabbix/web/
chown zabbix.zabbix /etc/zabbix/web/zabbix.conf.php
代理端即被被控制端
如果服务器也需要被自己监控也需要安装—zabbix-agent
1、部署zabbix-agent
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum -y install zabbix-agent
2、修改配置文件
vim /etc/zabbix/zabbix_agentd.conf
//13 PidFile=/var/run/zabbix/zabbix_agentd.pid
//32 LogFile=/var/log/zabbix/zabbix_agentd.log
//43 LogFileSize=0
//98 Server=192.168.28.40 # 指向监控服务器
//139 ServerActive=192.168.28.40 # 指向监控服务器
//150 Hostname=mxx #指定名称
//268 Include=/etc/zabbix/zabbix_agentd.d/*.conf
3、开启服务并检查端口
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -natp | grep zabbix #查看10050端口
监控验证
在zabbix图形页面——配置——主机——创建主机(定义主机名称、添加群组、填写主机IP地址)——模板——选定要监控的模板(httpd sshd服务)——选择——添加(添加连接模板)——添加(添加主机)