Logstash sending same message to multiple indexes in ES

if [type] == "app1_app_log" or "app1_web_log" {

This doesn't mean what you think it means. Use either

if [type] in ["app1_app_log", "app1_web_log"] {

or

if [type] == "app1_app_log" or [type] == "app1_web_log" {

instead.