利用docker部署loganalyzer
寻找loganalyzer docker
网上一搜,果然找到了有人已经build好了,戳这里。事情不会这么简单吧?docker运行起来发现,不会接收log。进一步定位发现,UDP的514端口根本没有打开,mysql/rsyslog都没有安装。看来这只是一个Webapp的空壳。
自己动手
既然这是一个Debian9的系统,那么是不是在上面安装配置好mysql/rsyslog,就可以用了呢?
- 本地服务器准备好挂载的目录
mkdir -p /data/users/admin/data/
- 运行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/
- 进入到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
- 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的密码,直接回车即可
- 编辑rsyslog的config文件,放开UDP端口514(去掉前面的注释符)
vim /etc/rsyslog.conf # provides UDP syslog reception module(load="imudp") input(type="imudp" port="514")
- 编辑权限
# vim /etc/group adm:x:4:www-data
- 重启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#
- 相关文件夹和文件设置
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
- 打开web,端口8181,按照提示,一步一步进行;就类似这样一路next,最后看到运行界面,应该可以看到本机的syslog了。
- 后面遗留两个问题
(1)时钟/时区同步
(2)改成中文页面 - 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/
- 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 的用户数据库;
请务必使用chrome, 点击MYSQL Native后, IE/ EDGE/ 360浏览器不会弹出下面的数据库选项框
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。