寻找loganalyzer docker

网上一搜,果然找到了有人已经build好了,戳这里。事情不会这么简单吧?docker运行起来发现,不会接收log。进一步定位发现,UDP的514端口根本没有打开,mysql/rsyslog都没有安装。看来这只是一个Webapp的空壳。

自己动手

既然这是一个Debian9的系统,那么是不是在上面安装配置好mysql/rsyslog,就可以用了呢?

  1. 本地服务器准备好挂载的目录
    mkdir -p /data/users/admin/data/
  2. 运行docker,挂载上一步创建目录,做两个端口映射
    $sudo docker run -d --name loganalyzer --restart=always -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -p 8181:80/tcp -p 514:514/udp -v /data/users/admin/data:/data vsc55/loganalyzer:latest
    $ docker ps
    CONTAINER ID   IMAGE  COMMAND   CREATED  STATUS  PORTS       NAMES
    f62e81c2ab1b  vsc55/loganalyzer:latest  "/entrypoint.sh start"   10 seconds ago    Up 9 seconds (healthy)   0.0.0.0:514->514/udp, 0.0.0.0:8181->80/tcp   loganalyzer
    $sudo docker cp /etc/localtime f62e81c2ab1b:/etc/
  3. 进入到docker中,安装常用软件
    $ docker exec -it loganalyzer bash
    root@f62e81c2ab1b:/var/www/html# 
    root@f62e81c2ab1b:/var/www/html# cat /etc/issue
    Debian GNU/Linux 9 \n \l
    root@f62e81c2ab1b:/var/www/html# apt update -y
    root@f62e81c2ab1b:/var/www/html# apt install net-tools tcpdump iproute2 vim -y
  4. docker中安装mysql和rsyslog
    root@f62e81c2ab1b:/var/www/html# apt -y install mysql-server mysql-client
    root@f62e81c2ab1b:/var/www/html# service mysql start
    [....] Starting MariaDB database server: mysqld. ok 
    root@f62e81c2ab1b:/var/www/html# 
    root@f62e81c2ab1b:/var/www/html# mysql_secure_installation
    #方便起见,就不设置密码了,步骤略
    ...
    Cleaning up...
    All done!  If you've completed all of the above steps, your MariaDB
    installation should now be secure.
    Thanks for using MariaDB!
    root@f62e81c2ab1b:/var/www/html#
    root@f62e81c2ab1b:/var/www/html# apt -y install rsyslog-mysql
    #安装过程中需要同意创建相关database,要求输入mysql的密码,直接回车即可
  5. 编辑rsyslog的config文件,放开UDP端口514(去掉前面的注释符)
    vim /etc/rsyslog.conf 
    # provides UDP syslog reception
    module(load="imudp")
    input(type="imudp" port="514")
  6. 编辑权限
    # vim /etc/group
    adm:x:4:www-data
  7. 重启rsyslog服务
    root@f62e81c2ab1b:/var/www/html# service rsyslog restart
    [....] Stopping enhanced syslogd: rsyslogd already stopped. ok 
    [....] Starting enhanced syslogd: rsyslogd. ok 
    root@f62e81c2ab1b:/var/www/html# 
    root@f62e81c2ab1b:/var/www/html# ss -apn | grep 514
    udp UNCONN 0 0 *:514   *:*   users:(("rsyslogd",pid=217,fd=3))
    udp UNCONN 0 0 :::514 :::*   users:(("rsyslogd",pid=217,fd=5))
    root@f62e81c2ab1b:/var/www/html#
  8. 相关文件夹和文件设置
    root@f62e81c2ab1b:/var/www/html# chmod -R 777 /data
    root@f62e81c2ab1b:/var/www/html# chmod -R 777 /var/log
    root@f62e81c2ab1b:/var/www/html# touch /var/log/syslog
  9. 打开web,端口8181,按照提示,一步一步进行;就类似这样一路next,最后看到运行界面,应该可以看到本机的syslog了。
    20201107080247504.png
    20201107080318756.png
    20201107081341314.png
  10. 后面遗留两个问题
    (1)时钟/时区同步
    (2)改成中文页面
  11. debian+rsyslog+docker_loganalyzer
    sudo vi /etc/rsyslog.conf
    //在最后添加
    //$template RemoteLogs, "/var/log/rsyslog/data.log"
    //*.*  ?RemoteLogs
    sudo mkdir -p /data/docker/logdata
    sudo docker run -d --name log --restart=always -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -p 8181:80/tcp -v /data/docker/logdata:/data -v /var/log/rsyslog:/var/log/rsyslog:ro vsc55/loganalyzer:latest
    sudo docker cp /etc/localtime f62e81c2ab1b:/etc/
  12. debian+rsyslog+docker_loganalyzer+mysql
    编辑 /etc/rsyslog.conf 配置文件
    vim /etc/rsyslog.conf
    $EscapeControlCharactersOnReceive off #关闭rsyslog默认转译ASCII<32的所有怪异字符,包括换行符等
     ####MODULES####
     $ModLoad ommysql      --> 加载ommysql模块以支持功能
     ####RULES####
     *.info;mail.none;       :ommysql:192.168.142.128,Syslog,sysloguser,123456

    或者编辑/etc/rsyslog.d/mysql.conf

    ### Configuration file for rsyslog-mysql
    ### Changes are preserved
    module (load="ommysql")
    *.notice action(type="ommysql" server="localhost" db="Syslog" uid="rsyslog" pwd="mULHyeznrat0")

    重启rsyslog服务systemctl restart rsyslog
    部署loganalyzer
    在第三步(Step 3),可以勾选, 并使用mysql做 loganalyzer 的用户数据库;
    1375972-20180617163821068-869492397.png
    1375972-20180617165037644-331123533.png
    请务必使用chrome, 点击MYSQL Native后, IE/ EDGE/ 360浏览器不会弹出下面的数据库选项框
    1375972-20180617165448084-1663676457.png