您的位置:首页 > 运维架构 > Nginx

搭建nginx+mysql+loganalyzer+rsyslog日志服务器

2019-08-05 17:48 1241 查看
  1. 我们事先规划好两台主机,分别为:

  2. server-1:192.168.1.135

  3. server-2:192.168.1.136

  4. 将server-1作为客户端进行日志收集,导入到server-2的MySQL数据库中,并通过LogAnalyzer进行前端的web展示。

  5. 首先是对于server-2的配置

  6. 安装LNMP

  7.  yum install nginx php -php-fpm php-mysql mysql-server mysql -y

  8. //这里为啥要安装php-fpm,因为php-fpm,是nginx和php的桥梁,php-fpm(快速进程管理),php-fpm默认进程为127.0.0.1:9000,

  9. //一会php和php-fpm安装完成后,要配置nginx的配置文件,让其遇到客户端php请求是,转发给php-fpm(127.0.0.1:9000),php-fpm再让php解析完成,最后又给nginx.

  10. 启动数据库

  11. systemctl start mysqld

  12. 加入开机自启动

  13. systemctl enable mysqld

  14. 配置数据库密码

  15. [root@server-2 ~]# mysql
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 2
    Server version: 5.5.60-MariaDB MariaDB Server
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    MariaDB [mysql]> update user set password=password('123456') where user='root';
    Query OK, 4 rows affected (0.00 sec)
    Rows matched: 4  Changed: 4  Warnings: 0
    MariaDB [mysql]> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    MariaDB [(none)]> grant all on *.* to 'rsyslog'@'%' identified by 'password123';//创建用户并授予
    Query OK, 0 rows affected (0.02 sec)
    MariaDB [mysql]> exit;
    Bye
  16. 配置nginx

  17. [root@server-2 ~]# cd /etc/nginx/
    [root@server-2 nginx]# egrep -v "#|^$" nginx.conf.default >nginx.conf
    [root@server-2 nginx]# vim nginx.conf
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  localhost;
            location / {
                root   html;
                index  index.html index.htm;
            }
            location ~ \.php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
  18. 检查配置文件语法并启动

  19. [root@server-2 nginx]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@server-2 nginx]# nginx
    [root@server-2 nginx]# service php-fpm start
    Redirecting to /bin/systemctl start php-fpm.service
  20. 检查端口启动情况

  21. [root@server-2 nginx]# ss -lnt
    State      Recv-Q Send-Q                             Local Address:Port                                            Peer Address:Port              
    LISTEN     0      128                                    127.0.0.1:9000                                                       *:*                  
    LISTEN     0      50                                             *:3306                                                       *:*                  
    LISTEN     0      128                                            *:80                                                         *:*                  
    LISTEN     0      128                                            *:22                                                         *:*                  
    LISTEN     0      100                                    127.0.0.1:25                                                         *:*                  
    LISTEN     0      128                                           :::22                                                        :::*                  
    LISTEN     0      100                                          ::1:25                                                        :::*       
    在firewalld中允许端口80,3306,22通过
    [root@server-2 ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
    success
    [root@server-2 ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    success
    [root@server-2 ~]# firewall-cmd --zone=public --add-port=22/tcp --permanent
    success
    [root@server-2 ~]# firewall-cmd --reload
    success
  22. 查看防火墙开放端口列表

  23. [root@server-2 ~]# firewall-cmd --zone=public --list-ports

  24. 80/tcp 3306/tcp 22/tcp

  25. 关闭selinux

  26. [root@server-2 ~]# setenforce 0

  27. [root@server-2 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 

  28. 创建PHP测试页,检查nginx和php的连接情况;

  29. [root@server-2 html]# echo "<?php phpinfo(); ?>" >test.php

  30. 访问动态网页

  31. 客户端的配置

  32. 在客户端主机server-1上192.168.1.135

  33. 检查rsyslog是否安装,默认是安装过的

  34. [root@server-1 ~]# rpm -qa rsyslog

  35. rsyslog-8.24.0-34.el7.x86_64

  36. [root@server-1 ~]# yum install rsyslog-mysql mysql -y //rsyslog使用此模块将数据传入MySQL数据库,必须安装;最小化安装,没有mysql命令,此操作就是为了有mysql命令,可以连接数据库

  37. 导入库文件 ,使用rsyslog用户

  38. [root@server-1 ~]# mysql -h192.168.1.136 -ursyslog -ppassword123 </usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

  39. 登录数据库查看库是否存在

  40. vim /etc/rsyslog.conf
    .......
    #### MODULES ####
    # The imjournal module bellow is now used as a message source instead of imuxsock.
    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
    $ModLoad imjournal # provides access to the systemd journal
    $ModLoad ommysql
    #$ModLoad imklog # reads kernel messages (the same are read from journald)
    #$ModLoad immark  # provides --MARK-- message capability
    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514
    # Provides TCP syslog reception
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    ......
    #### RULES ####
    # Log all kernel messages to the console.
    # Logging much else clutters up the screen.
    #kern.*                                                 /dev/console
    # Log anything (except mail) of level info or higher.
    # Don't log private authentication messages!
    #*.info;mail.none;authpriv.none;cron.none                /var/log/messages
    *.info;mail.none;authpriv.none;cron.none :ommysql:192.168.1.136,Syslog,syslog,password123
    # The authpriv file has restricted access.
    .......

  41. 添加mysql模块ommysql

  42. 取消注释使用udp协议的514端口通信


  43. 指明发送的主机,数据库,用户名,密码

  44. 配置完毕,启动rsyslog

  45. systemctl start rsyslog

  46. 在server-2端192.168.1.136安装LogAnalyzer

  47. 下载LogAnalyzer v4.1.6    官网地址:http://loganalyzer.adiscon.com/downloads/

  48. [root@server-2 home]# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz    #下载安装包。

  49. 安装LogAnalyzer

  50. [root@server-2 home]# tar -xf loganalyzer-4.1.6.tar.gz 

  51. [root@server-2 home]# ll

  52. total 2788

  53. drwxrwxr-x. 5 root root      90 Nov  6  2017 loganalyzer-4.1.6

  54. -rw-r--r--. 1 root root 2852860 Nov  6  2017 loganalyzer-4.1.6.tar.gz

  55. 配置loganalyze 

  56. cp -r /home/loganalyzer-4.1.6/src/* /usr/share/nginx/html/
    cp -r /home/loganalyzer-4.1.6/contrib/* /usr/share/nginx/html/
    cd /usr/share/nginx/html/
    chmod +x *.sh
    ./configure.sh
    ./secure.sh
    chmod 666 config.php
  57. 访问http://192.168.1.136/index.php

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: